@nebula.js/sn-histogram 0.31.2 → 0.31.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../chart-modules/common/picasso/plugins/event-area.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component.jsx","../../../../chart-modules/common/nebula/lasso-icon.js","../../../../chart-modules/common/nebula/snapshot.js","../../src/binning-defaults.js","../../src/object-properties.js","../../src/histogram-data.js","../../../../node_modules/qlik-chart-modules/dist/qlik-chart-modules.esm.js","../../../../chart-modules/common/extra/class.js","../../../../chart-modules/common/extra/generate-id.js","../../../../chart-modules/common/picasso/chart-builder/components/util/axis-dock-util.js","../../../../chart-modules/common/extra/rtl-util.js","../../../../chart-modules/common/picasso/chart-builder/components/util/ref-line-util.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/constants.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/layout-settings.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/dimension-measure-chart.js","../../../../chart-modules/common/picasso/scroll/scroll-actions.js","../../../../chart-modules/common/picasso/chart-builder/scale.js","../../../../chart-modules/common/picasso/chart-builder/components/axis.js","../../../../chart-modules/common/picasso/chart-builder/components/text.js","../../../../chart-modules/common/picasso/chart-builder/components/util/range-util.js","../../../../chart-modules/common/picasso/chart-builder/layout-modes.js","../../../../chart-modules/common/picasso/chart-builder/components/labels.js","../../../../chart-modules/common/picasso/chart-builder/components/categorical-legend.js","../../../../chart-modules/common/picasso/chart-builder/chart-builder.js","../../../../chart-modules/common/picasso/chart-builder/components/box-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/point-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/scrollbar.js","../../../../chart-modules/common/picasso/chart-builder/components/lasso.js","../../../../chart-modules/common/picasso/chart-builder/components/range.js","../../../../chart-modules/common/picasso/chart-builder/components/range-area.js","../../../../chart-modules/common/picasso/chart-builder/components/sequential-legend.js","../../../../chart-modules/common/picasso/chart-builder/components/grid-line.js","../../../../chart-modules/common/picasso/chart-builder/components/interaction.js","../../../../chart-modules/common/picasso/chart-builder/components/ref-line.js","../../../../chart-modules/common/picasso/chart-builder/components/event-area.js","../../../../chart-modules/common/picasso/chart-builder/chart-presets.js","../../../../chart-modules/common/picasso/disclaimer/disclaimers-config.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-attributes-util.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component-helper.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer.js","../../../../chart-modules/common/picasso/chart-view.js","../../../../node_modules/picasso-plugin-q/node_modules/extend/index.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-s.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/stratify.js","../../../../node_modules/picasso-plugin-q/src/json-path-resolver.js","../../../../node_modules/picasso-plugin-q/src/data/util.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-t.js","../../../../node_modules/picasso-plugin-q/node_modules/number-format.js/lib/format.min.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-number-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/memoize.js","../../../../node_modules/picasso-plugin-q/src/formatter/numberFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/constants.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-date-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/timeFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/index.js","../../../../node_modules/picasso-plugin-q/src/data/field.js","../../../../node_modules/picasso-plugin-q/src/data/dataset.js","../../../../node_modules/picasso-plugin-q/src/brush/q-brush.js","../../../../node_modules/picasso-plugin-q/src/index.js","../../../../chart-modules/common/picasso/selections/selection-utils.js","../../../../chart-modules/common/picasso/selections/selections-handler.js","../../../../chart-modules/common/picasso/selections/selection-actions.js","../../../../chart-modules/common/picasso/tooltip/tooltip-actions.js","../../../../chart-modules/common/picasso/formatting.js","../../../../chart-modules/common/picasso/tooltip/tooltip-content.js","../../../../chart-modules/common/picasso/tooltip/tooltips-component.js","../../../../chart-modules/common/picasso/tooltip/tooltip-renderer.jsx","../../../../chart-modules/common/picasso/tooltip/tooltips-handler.js","../../../../chart-modules/common/picasso/derived-properties/hash/hash.js","../../../../chart-modules/common/extra/hash-from-string.js","../../../../chart-modules/common/picasso/derived-properties/hash/hash-builder.js","../../../../chart-modules/common/extra/json-patch.js","../../../../chart-modules/common/extra/soft-property-handler.js","../../../../chart-modules/common/extra/hard-properties-checker.js","../../../../chart-modules/common/picasso/derived-properties/save/save.js","../../../../chart-modules/common/picasso/derived-properties/input-validator/input-validator.js","../../../../chart-modules/common/picasso/derived-properties/derived-properties.js","../../../../chart-modules/common/picasso/expression-generator/expression-wrapper.js","../../../../chart-modules/common/picasso/expression-generator/expression-replacer.js","../../../../chart-modules/common/picasso/expression-generator/expression-generator.js","../../../../chart-modules/common/picasso/hypercube-def-generator/hypercube-def-generator.js","../../../../chart-modules/common/extra/is-numeric.js","../../../../chart-modules/common/extra/is-integer.js","../../src/histogram-utils.js","../../src/derived-properties/bin-size-calculator.js","../../src/derived-properties/histogram-mappings.js","../../src/derived-properties/histogram-cubes-generator.js","../../../../chart-modules/common/picasso/selections/gestures/on-component-checker.js","../../../../chart-modules/common/picasso/selections/gestures/lasso-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/measure-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/area-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/dimension-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/drag-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/navigational-button-gesture.js","../../../../chart-modules/common/picasso/selections/dependent-interactions.js","../../src/chart-settings/dimension-axis.js","../../src/chart-settings/dimension-scale.js","../../../../chart-modules/common/extra/css-colors.js","../../../../chart-modules/common/extra/color.js","../../../../chart-modules/common/extra/chart-style-utils.js","../../src/chart-settings/box-marker.js","../../src/chart-settings/label.js","../../src/chart-settings/chart-settings.js","../../src/histogram-view.js","../../src/backend-api.js","../../../../node_modules/qlik-object-conversion/dist/conversion.js","../../src/histogram-properties-logic.js","../../src/histogram-properties.js","../../src/histogram-explore-properties.js","../../src/histogram-export.js","../../src/ext.js","../../src/index.js","../../../../chart-modules/common/locale/index.js","../../../../chart-modules/common/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/use-environment.js","../../../../chart-modules/common/nebula/use-lasso.js","../../../../chart-modules/common/nebula/resize.js"],"sourcesContent":["export default function init(Picasso) {\n // Transparent component, placed on top of the data area and used to register event on\n Picasso.component('event-area', {\n mounted(element) {\n element.classList.add('event-area');\n element.style.pointerEvents = 'auto';\n element.style.zIndex = 1;\n },\n render() {\n const nodes = [];\n return nodes;\n },\n });\n}\n","/** @jsx h */\n\nfunction getStyle(dock, rect) {\n const style = {\n pointerEvents: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#7b7a78',\n fontStyle: 'italic',\n fontSize: '13px',\n };\n\n switch (dock) {\n case 'left':\n style.width = `${rect.height}px`;\n style.transform = `rotate(-90deg) translate(-${rect.height}px, 0)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'right':\n style.width = `${rect.height}px`;\n style.transform = `rotate(90deg) translate(0, -${rect.width}px)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'center':\n style.width = `${rect.width}px`;\n style.height = `${rect.height}px`;\n style.color = '#595959';\n style.fontStyle = 'normal';\n style.fontSize = '1.2em';\n style.textAlign = 'center';\n break;\n\n default:\n case 'top':\n case 'bottom':\n style.justifyContent = 'flex-start';\n style.alignItems = 'flex-start';\n break;\n }\n return style;\n}\n\nexport default {\n renderer: 'dom',\n disableTriggers: true,\n preferredSize: function preferredSize() {\n return 22;\n },\n render(h) {\n const {\n settings: { label, rtl },\n layout: { dock },\n } = this.settings;\n const dir = (dock === 'top' || dock === 'bottom') && rtl ? 'rtl' : 'ltr';\n const style = getStyle(dock, this.rect);\n\n const modifiedLabel = dock === 'center' ? label : `* ${label}`;\n\n const spanStyle = dock !== 'center' ? { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' } : {};\n\n return (\n <div style={style} dir={dir}>\n <span ref={this.alignToRef} style={spanStyle} title={modifiedLabel}>\n {modifiedLabel}\n </span>\n </div>\n );\n },\n};\n","const lassoIcon = {\n shapes: [\n {\n type: 'path',\n attrs: {\n d: 'M15.9488039,5.20769129 C16.0487326,6.70662306 15.3492311,8.30548361 14.050157,9.30477145 C12.651154,10.5039169 10.8524359,10.8037032 8.85386017,10.4039881 L7.3549284,10.0042729 L5.75606786,9.70448659 C5.75606786,9.90434416 5.65613907,10.0042729 5.4562815,10.2041305 C5.05656637,10.6038456 4.55692244,10.8037032 4.05727852,10.8037032 C3.75749217,10.8037032 3.45770582,10.7037744 3.15791946,10.6038456 C3.05799068,10.903632 3.15791946,11.2034184 3.45770582,11.7030623 C5.05656637,14.0014243 3.85742095,15.9000712 3.75749217,16 L2.2585604,15.3004985 C2.2585604,15.2005697 2.95806189,14.0014243 1.95877405,12.6024213 C1.6589877,12.0028486 1.15934378,11.0035608 1.55905891,10.0042729 C1.6589877,9.80441537 1.75891648,9.6045578 1.95877405,9.40470024 C1.6589877,8.90505631 1.55905891,8.30548361 1.85884527,7.7059109 C1.55905891,7.40612455 1.25927256,7.1063382 1.15934378,6.70662306 C0.859557424,5.90719279 0.959486209,4.5081898 1.6589877,3.30904439 C1.95877405,2.6095429 2.55834676,2.0099702 3.15791946,1.51032628 C3.95734974,0.91075357 4.95663758,0.610967217 6.15578299,0.311180864 C9.05371774,-0.388320626 11.9516525,0.111323295 13.9502282,1.61025506 C15.1493736,2.50961412 15.8488751,3.80868831 15.9488039,5.20769129 Z M13.0508691,8.10562604 C13.8502994,7.40612455 14.3499433,6.40683671 14.3499433,5.30762008 C14.2500145,4.20840345 13.550513,3.40897318 12.9509403,2.90932926 C12.1515101,2.40968533 11.252151,2.0099702 10.1529344,1.81011263 C8.95378895,1.61025506 7.75464354,1.71018384 6.45556935,1.91004141 C4.75678001,2.30975655 3.65756338,3.00925804 3.05799068,4.10847467 C2.55834676,5.00783373 2.65827554,5.90719279 2.75820433,6.20697914 C2.75820433,6.30690792 2.85813311,6.40683671 3.05799068,6.40683671 C3.15791946,6.40683671 3.25784825,6.40683671 3.35777703,6.40683671 C3.45770582,6.40683671 3.45770582,6.40683671 3.45770582,6.40683671 L3.5576346,6.40683671 L3.65756338,6.40683671 C4.65685123,6.40683671 5.4562815,6.90648063 5.85599664,7.80583969 L5.85599664,8.00569726 C6.35564056,8.10562604 7.05514205,8.30548361 7.75464354,8.50534118 L9.25357531,8.90505631 C10.0530056,9.0049851 10.7525071,9.0049851 11.4520086,8.80512753 C12.0515813,8.70519875 12.5512252,8.40541239 13.0508691,8.10562604 Z',\n },\n },\n ],\n};\n\nexport default lassoIcon;\n","import { onTakeSnapshot, useImperativeHandle } from '@nebula.js/stardust';\n\nconst setupSnapshot = (chartInstance) => {\n onTakeSnapshot((layout) => {\n if (!chartInstance) {\n return undefined;\n }\n\n return chartInstance.setSnapshotData(layout);\n });\n\n useImperativeHandle(\n () => ({\n getViewState() {\n if (!chartInstance) {\n return undefined;\n }\n return chartInstance.getViewState();\n },\n }),\n [chartInstance]\n );\n};\n\nexport default setupSnapshot;\n","const BINNING_DEFAULTS = {\n AUTO: true, // True means we calculate the BIN_SIZE to generate BIN_COUNT number of bins\n BIN_COUNT: 10, // The number of bins the user wants when AUTO = true\n BIN_SIZE: 10, // The size(width) of the bins the user wants when AUTO = false\n LABEL: 'x', // The label parameter to the Class function\n OFFSET: 0, // The offset parameter to the Class function\n COUNT_DISTINCT: false, // True means we only count distinct values\n BIN_MODE: 'maxCount', // \"maxCount\" means that we can only adjust the maximum amount of bins. \"size\" mean that we can adjust the width and offset\n};\n\nObject.freeze(BINNING_DEFAULTS);\n\nexport default BINNING_DEFAULTS;\n","import BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Color information structure. Holds the actual color and index in palette.\n * @typedef {object} paletteColor\n * @property {string} color - Color as hex string (mandatory if index: -1)\n * @property {number} index - Index in palette\n */\n\n/**\n * Styling settings for reference line\n * @typedef {object} refLineStyle\n * @property {number} [lineThickness=2] Set the thickness for this reference line.\n * @property {string} [lineType=''] Set the dash type for this reference line.\n */\n\n/**\n * @typedef {object} refLine\n * @property {boolean|ValueExpression} show=true Set to true to display this reference line.\n * @property {string} label Reference line label.\n * @property {boolean} [showLabel=true] Set to true to show the label of this reference line.\n * @property {boolean} [showValue=true] Set to true to show the value of this reference line.\n * @property {paletteColor} paletteColor\n * @property {refLineStyle} [style] - Styling settings for reference line\n * @property {boolean} [coloredBackground=false] Set to true to fill the label and/or value of this reference line with this color\n */\n\n/**\n * @namespace properties\n * @entry\n */\nconst properties = {\n /**\n * Current version of this generic object definition.\n * @type {string}\n * @default\n */\n version: process.env.PACKAGE_VERSION,\n\n /**\n * Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.\n * @extends {HyperCubeDef}\n */\n qHyperCubeDef: {\n qDimensions: [],\n qMeasures: [],\n qMode: 'S',\n qAlwaysFullyExpanded: true,\n qSuppressZero: false,\n qSuppressMissing: true,\n },\n /**\n * Bin settings.\n * @type {object}\n */\n bins: {\n /**\n * Auto mode generates a nice looking histogram without special parameters.\n * @type {boolean}\n * @default\n */\n auto: BINNING_DEFAULTS.AUTO,\n /**\n * Number of bars to be displayed, used when binMode is set to 'maxCount'.\n * @type {number}\n * @default\n */\n binCount: '',\n /**\n * The width of the bars, used when binMode is set to 'size'.\n * @type {number}\n * @default\n */\n binSize: BINNING_DEFAULTS.BIN_SIZE,\n /**\n * Used to know where to start displaying bars on x-axis.\n * @type {number}\n * @default\n */\n offset: BINNING_DEFAULTS.OFFSET,\n /**\n * Shows unique values.\n * @type {boolean}\n * @default\n */\n countDistinct: BINNING_DEFAULTS.COUNT_DISTINCT,\n /**\n * MaxCount - Able to adjust the maximum number of bars to be displayed. size - Able to adjust size of bars and offset from x-axis.\n * @type {string}\n * @default\n */\n binMode: BINNING_DEFAULTS.BIN_MODE,\n },\n /**\n * Color settings.\n * @type {object}\n */\n color: {\n /**\n * @type {object}\n */\n bar: {\n /**\n * The paletteColor object is used to define the bar color.\n * @type {paletteColor}\n * @default { index: 6 }\n */\n paletteColor: {\n index: 6,\n color: '#4477aa',\n },\n },\n },\n /**\n * Data points\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels on bars\n * @type {boolean}\n * @default\n */\n showLabels: false,\n },\n /**\n * Dimension axis settings.\n * @type {object}\n */\n dimensionAxis: {\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label orientation\n * @type {'auto'}\n * @default\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n */\n show: 'all',\n },\n /**\n * Measure axis settings.\n * @type {object}\n */\n measureAxis: {\n /**\n * Automatic max/min\n * @type {boolean}\n * @default\n */\n autoMinMax: true,\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label to show on the measure axis, if left empty it defaults to 'Frequency'\n * @type {(string|StringExpression)=}\n * @default\n */\n label: '',\n /**\n * Axis max value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"max\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n max: 10,\n /**\n * Axis min value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"min\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n min: 0,\n /**\n * Set custom max/min\n * @type {'min'|'max'|'minMax'}\n * @default \"min\"\n */\n minMax: 'min',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n * @default \"all\"\n */\n show: 'all',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\n },\n /**\n * Grid lines settings.\n * @type {object}\n */\n gridlines: {\n /**\n * Automatic grid line spacing.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Grid line spacing. Used only when auto is set to false.\n * @type {0|2|3}\n * @default\n */\n spacing: 2,\n },\n /**\n * Reference lines settings\n * @type {object}\n */\n refLine: {\n /**\n * Array of measure based reference line definitions\n * @type {refLine[]}\n */\n refLines: [],\n },\n /**\n * Wrapper for sorting properties which will be set on the outer dimension.\n * @type {object}\n */\n sorting: {\n /**\n * Sort automatically\n * @type {true}\n * @default\n */\n autoSort: true,\n },\n /**\n * Show title for the visualization.\n * @type {boolean=}\n * @default\n */\n showTitles: true,\n /**\n * Visualization subtitle.\n * @type {(string|StringExpression)=}\n * @default\n */\n subtitle: '',\n /**\n * Visualization title.\n * @type {(string|StringExpression)=}\n * @default\n */\n title: '',\n /**\n * Visualization footnote.\n * @type {(string|StringExpression)=}\n * @default\n */\n footnote: '',\n};\n\nexport default properties;\n","export default function data(env) {\n const { translator } = env;\n\n const dimensions = {\n min: 1,\n max: 1,\n description() {\n return translator.get('Visualization.Histogram.Binning');\n },\n };\n const measures = {\n min: 0,\n max: 0,\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","/*\n* qlik-chart-modules v0.20.1\n* Copyright (c) 2021 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(t)}function t(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(e){return void n(e)}u.done?t(l):Promise.resolve(l).then(r,o)}function n(e){return function(){var n=this,r=arguments;return new Promise((function(o,i){var a=e.apply(n,r);function u(e){t(a,o,i,u,l,\"next\",e)}function l(e){t(a,o,i,u,l,\"throw\",e)}u(void 0)}))}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||c(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e,t){if(e){if(\"string\"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=Object.prototype.hasOwnProperty,d=Object.prototype.toString,p=Object.defineProperty,v=Object.getOwnPropertyDescriptor,h=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===d.call(e)},m=function(e){if(!e||\"[object Object]\"!==d.call(e))return!1;var t,n=f.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&f.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||f.call(e,t)},g=function(e,t){p&&\"__proto__\"===t.name?p(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},y=function(e,t){if(\"__proto__\"===t){if(!f.call(e,t))return;if(v)return v(e,t).value}return e[t]},b=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=y(u,n),u!==(o=y(t,n))&&(s&&o&&(m(o)||(i=h(o)))?(i?(i=!1,a=r&&h(r)?r:[]):a=r&&m(r)?r:{},g(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&g(u,{name:n,newValue:o}));return u};function x(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function q(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function w(e,t,n,r,o){var i,a=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>((null===(i=e.hc.qDataPages[0])||void 0===i?void 0:i.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var l=t.pic.extract({field:r.key(),trackBy:r.value}).length;return a(r,l)}return{}}function k(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function D(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function C(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function M(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function S(){}var I=1/.7,A=\"\\\\s*([+-]?\\\\d+)\\\\s*\",O=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",N=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",E=/^#([0-9a-f]{3,8})$/,P=new RegExp(\"^rgb\\\\(\"+[A,A,A]+\"\\\\)$\"),j=new RegExp(\"^rgb\\\\(\"+[N,N,N]+\"\\\\)$\"),T=new RegExp(\"^rgba\\\\(\"+[A,A,A,O]+\"\\\\)$\"),F=new RegExp(\"^rgba\\\\(\"+[N,N,N,O]+\"\\\\)$\"),L=new RegExp(\"^hsl\\\\(\"+[O,N,N]+\"\\\\)$\"),H=new RegExp(\"^hsla\\\\(\"+[O,N,N,O]+\"\\\\)$\"),z={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function R(){return this.rgb().formatHex()}function V(){return this.rgb().formatRgb()}function B(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=E.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?_(t):3===n?new $(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?U(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?U(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=P.exec(e))?new $(t[1],t[2],t[3],1):(t=j.exec(e))?new $(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=T.exec(e))?U(t[1],t[2],t[3],t[4]):(t=F.exec(e))?U(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=L.exec(e))?Q(t[1],t[2]/100,t[3]/100,1):(t=H.exec(e))?Q(t[1],t[2]/100,t[3]/100,t[4]):z.hasOwnProperty(e)?_(z[e]):\"transparent\"===e?new $(NaN,NaN,NaN,0):null}function _(e){return new $(e>>16&255,e>>8&255,255&e,1)}function U(e,t,n,r){return r<=0&&(e=t=n=NaN),new $(e,t,n,r)}function K(e){return e instanceof S||(e=B(e)),e?new $((e=e.rgb()).r,e.g,e.b,e.opacity):new $}function Y(e,t,n,r){return 1===arguments.length?K(e):new $(e,t,n,null==r?1:r)}function $(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function W(){return\"#\"+G(this.r)+G(this.g)+G(this.b)}function J(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?\")\":\", \"+e+\")\")}function G(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?\"0\":\"\")+e.toString(16)}function Q(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Z(e,t,n,r)}function X(e){if(e instanceof Z)return new Z(e.h,e.s,e.l,e.opacity);if(e instanceof S||(e=B(e)),!e)return new Z;if(e instanceof Z)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,u=i-o,l=(i+o)/2;return u?(a=t===i?(n-r)/u+6*(n<r):n===i?(r-t)/u+2:(t-n)/u+4,u/=l<.5?i+o:2-i-o,a*=60):u=l>0&&l<1?0:a,new Z(a,u,l,e.opacity)}function Z(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ee(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function te(e){return function(){return e}}function ne(e){return 1==(e=+e)?re:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):te(isNaN(t)?n:t)}}function re(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):te(isNaN(e)?t:e)}C(S,B,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:R,formatHex:R,formatHsl:function(){return X(this).formatHsl()},formatRgb:V,toString:V}),C($,Y,M(S,{brighter:function(e){return e=null==e?I:Math.pow(I,e),new $(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new $(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:W,formatHex:W,formatRgb:J,toString:J})),C(Z,(function(e,t,n,r){return 1===arguments.length?X(e):new Z(e,t,n,null==r?1:r)}),M(S,{brighter:function(e){return e=null==e?I:Math.pow(I,e),new Z(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Z(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new $(ee(e>=240?e-240:e+120,o,r),ee(e,o,r),ee(e<120?e+240:e-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===e?\")\":\", \"+e+\")\")}}));var oe=function e(t){var n=ne(t);function r(e,t){var r=n((e=Y(e)).r,(t=Y(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=re(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),ie=/^class(-pyramid)?/,ae=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,u=i,c=t.limits,s={},f=\"percent\"===t.limitType?c.map((function(e){return o+(i-o)*e})):c,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(l(f))),i=Math.max.apply(Math,[i].concat(l(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var u=0;u<r.length;u++)if(t<r[u]){i.push(o[u]);break}}for(var l=0;l<r.length;l++)t<r[l]&&r[l]<n&&(a.push(r[l]),i.push(o[l]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:u,range:d,limits:\"percent\"===t.limitType?f:c}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var v=0;v<f.length;v+=1)if(p[v]){var h=d[v],m=d[v+1],g=oe(h,m)(.5);s.range.push(g),s.domain.push(f[v]),v<f.length-1&&p[v+1]&&(s.range.push(d[v+1]),s.domain.push((f[v]+f[v+1])/2))}else s.range.push(d[v]),s.range.push(d[v+1]),s.domain.push(f[v]),s.domain.push(f[v]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function ue(e,t,n,r,o){var i,a,u,l=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),u=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(u)||(c[u]?c[u]+=1:c[u]=1);for(i=0;i<c.length;i+=1)c[i]&&(l+=1);return l<=r||l>=o?Math.max(l,r):ue(e,t,n,r+1,o)}var le=function(e,t,n,r){var o,i,a=t.theme,u=t.hc,c=r.f,s={mode:\"field\",fieldType:\"measure\",field:c?c.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(c){if(Number.isNaN(+c.min())||Number.isNaN(+c.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:c.key()},exclude:{fields:u.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,l(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(c&&!d)s.min=c.min(),s.max=c.max();else if(c){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,l(f)),s.max=Math.max.apply(Math,l(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&ie.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,l(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var v=d?ue(s.max,s.min,f,1,i):i,h=(s.max-s.min)/v,m=[],g=0;g<v+1;g+=1)m.push(s.min+h*g);s.domain=m,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",v),n=Math.max(1,Math.floor(t.length/v)),r=[],o=0;o<v;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function ce(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function se(e){var t,n=e.cm,r=e.defaults,o=e.index,a=e.input,u=e.pic;if(!a||!a.on)return null;var l=null!==(t=a.mode)&&void 0!==t?t:\"primary\";return\"primary\"===l?function(e,t,n){var r=n.primary;return void 0!==t.paletteColor&&t.paletteColor&&(r=e.resolveUIColor(t.paletteColor)),i(i({},n),{},{mode:\"constant\",type:\"constant\",primary:r})}(n,a,r):\"byExpression\"===l?function(e,t,n){var r=\"qMeasureInfo/\".concat(e,\"/\"),o=t.field((function(e){return e.id().startsWith(r)&&\"colorByMeasureExpression\"===e.raw().id})),a=o;return i(i({},n),{},a?{mode:\"field\",fieldType:\"expression\",field:o?o.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:n.nil})}(o,u,r):null}function fe(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function de(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var u=n.indexOf(i);-1===u?(n.push(i),r.push(a.primary)):r[u]=a.primary,e[i]=null}else if(a){o.push(i);var l=n.indexOf(i);-1!==l&&(n.splice(l,1),r.splice(l,1))}}return{domain:n,range:r,exclude:o}}function pe(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?ce:i,u=n.input.byMeasureDef||{activeMeasureIndex:0},l=a(n,u),c=le(0,{theme:r,hc:o},n,{f:l});if(c.invalid)return c;(\"expression\"===u.type||u.activeMeasureIndex<0)&&(c.label=u.label,l&&\"color.altLabel\"===l.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&l&&(c.label=l.title());var s=u.activeMeasureIndex>=0?l:null;if(!s&&l&&void 0!==l.raw().matchMeasure&&l.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[l.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===u.type)if(s){var f=s.raw().coloring;f&&f.gradient&&b(c,ae(e,f.gradient,c,s))}else c.auxiliary=u;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?k:o,a=r.getCByField,u=void 0===a?D:a,l=r.getPersistence,c=void 0===l?w:l,s=i(t,n),f=u(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var v={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(v.label=s.label,\"color.altLabel\"===d.labelExpRef&&(v.label=n.input.altLabel)),!v.label&&f&&(v.label=f.title()),n.input.dimensionScheme&&(v.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(v.auxiliary=s),b(v,c(t,n,s,f,{byRow:q,byElemNo:x})),v}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,u=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!(u&&u.raw().qFallbackTitle&&(Number.isFinite(u.raw().qMin)&&Number.isFinite(u.raw().qMax)||n.input.expressionIsColor)))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:u?u.key():void 0,type:\"color\"};var l=le(0,{hc:o,theme:i},n,{f:u});return l.invalid||(l.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),l}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,u=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(u=\"measure\"),\"measure\"===u){var l=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){l.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:l.length?{domain:l,range:c}:void 0}}if(\"dimension\"===u){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var v=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(v=e.resolveUIColor(n.input.paletteColor));else{var h=n.input.singleColor;\"number\"!=typeof h||Number.isNaN(h)||(v=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][h])}return{mode:\"constant\",type:\"constant\",primary:v}}(e,n,t,r)}return{}}function ve(e,t,n,r){var o=pe(e,t,n,r);return t.input.measureOverrides?(o.measureOverrides=t.input.measureOverrides.map((function(n,o){return se({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(fe(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=de(e.measureOverrides,e.explicit),fe(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=de(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(o,n)):o}function he(e){var t=i({hc:null,colorProps:null,layout:null,theme:null},e),n={},r={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},o={auto:function(e){return e?(r.auto=e,o):r.auto},getDimensionColorMap:function(e){return e?(r.getDimensionColorMap=e,o):r.getDimensionColorMap},getAttributeDimension:function(e){return e?(r.getAttributeDimension=e,o):r.getAttributeDimension},getMeasure:function(e){return e?(r.getMeasure=e,o):r.getMeasure},set:function(e){var o;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(b(t,e),(n={pic:t.picasso.data(\"q\")({data:t.hc,config:{localeInfo:t.localeInfo}}),input:t.colorProps}).input.auto){var i=r.auto(e.layout);n.input=b(!0,{},n.input,i,{auto:!1});var a=t.theme?t.theme.getDataColorPalettes():[];a[0]&&(n.input.dimensionScheme=a[0].key);var u=0;n.input.byDimDef&&+n.input.byDimDef.activeDimensionIndex>=0&&(u=+n.input.byDimDef.activeDimensionIndex),t.hc&&t.hc.qDimensionInfo[u]&&t.hc.qDimensionInfo[u].coloring&&t.hc.qDimensionInfo[u].coloring.colorMapRef&&n.input.byDimDef&&(n.input.byDimDef.type=\"libraryItem\",n.input.byDimDef.key=t.hc.qDimensionInfo[u].coloring.colorMapRef)}null!==(o=n.input.measureOverrides)&&void 0!==o&&o.every((function(e){return!e||!e.on}))&&(n.input=b(!1,{},n.input,{measureOverrides:null}))},palettes:function(){if(!n.palettes){var e=t.theme,r=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){r.push({key:\"ui\",colors:e.colors})})),n.palettes=r}return n.palettes},getAuxiliaryData:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var o=e.auxiliary||{},i=o.key;if(\"measure\"===e.fieldType)return r.getMeasure(i,t).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(n,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?r.getAttributeDimension(a,t).catch((function(){})):Promise.resolve(),i?r.getDimensionColorMap(i,t).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,r){var o=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,r).then((function(r){if(!r)return{};if(\"measure\"===e.fieldType){if(r.coloring&&r.coloring.gradient){var a=n.pic.field(e.field);return ae(o,r.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var u={nil:e.nil,others:e.others},l=r[0],c=r[1]?r[1].colorMap:null;if(l){var s=t.picasso.data(\"q\")({data:{qDimensionInfo:[n.pic.field(e.field).raw(),n.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:l,qInterColumnSortOrder:[0,1],qMode:\"S\"}});u.legendDataset=s}return c?function(e,t,n,r){var o=r.external,a=r.field,u=i({},e);b(u,x(a,a.raw().qCardinal));var l=o.theme?o.theme.getDataColorPalettes()[0]:null;return t.nul&&(u.nil=n.resolveUIColor(t.nul)),t.oth&&(u.others=n.resolveUIColor(t.oth)),t.usePal?(u.palettes={categorical:t.pal},l&&!t.pal&&(u.palettes.categorical=l.key,b(u,x(a)))):!1===t.autoFill&&t.single?u.range=[n.resolveUIColor(t.single)]:t.autoFill&&(l&&(u.palettes={categorical:l.key}),b(u,x(a))),t.colors&&t.colors.length&&(u.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var u=0;u<o.items.length;u++){var l=o.items[u],c=(l.text||l).label;r[c]&&-1===a.indexOf(l.value)&&(a.push(l.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(t.colors,n,u)),u}(u,c,o,{external:t,field:n.pic.field(e.field)}):u}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===n.uiPalette&&(n.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!n.uiPalette)return e.color;var t=\"none\"===n.uiPalette.colors[0]?e.index:e.index-1;return void 0===n.uiPalette.colors[t]?e.color:n.uiPalette.colors[t]},settings:function(){if(this.palettes(),!n.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},r=t.theme;r&&(e=i(i({},e),r.getDataColorSpecials())),n.settings=b(e,ve(this,n,t,e))}return n.settings}};return o}var me=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},ge=function(e){throw e.isHandled=!0,e},ye=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},be=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},xe=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(ge)}return Promise.reject()};function qe(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function we(t){return function(n){return\"object\"===e(n.datum[t])?n.datum[t].value:void 0}}function ke(t){return\"object\"===e(t.datum.isNull)?t.datum.isNull.value:-2===t.datum.value}function De(e){return-3===e.datum.value}var Ce=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},Me=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Se(e,t){var n=e.styleReference,r=e.chart,o=e.rtl,i=t.legendProps,a=t.coloring,u=t.theme,l=t.hc;return{layout:{minimumLayoutMode:\"MEDIUM\",dock:Ce(i,r,o)},show:\"function\"==typeof i.show?function(){return Me(i,l,a)}:Me(i,l,a),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==i.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:a.label||\"\",fill:u?u.getStyle(n,\"legend.title\",\"color\"):void 0,fontSize:u?u.getStyle(n,\"legend.title\",\"fontSize\"):\"16px\",fontFamily:u?u.getStyle(n,\"legend.title\",\"fontFamily\"):\"QlikView Sans, sans-serif\"}}}}function Ie(e,t,n){return\"categorical\"===t.coloring.type?function(e,t,n){var r=Se(e,t);if(!r.show)return!1;var o=e.key,i=e.styleReference,a=e.viewState,u=e.rtl,l=e.settings,c=e.style,s=t.scaleKey,f=t.theme,d=t.scales,p={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"},v=\"\".concat(s,\"Legend\");return b(!0,r,{type:\"legend-cat\",key:\"\".concat(o,\"-cat\"),scale:v in d?v:s,settings:{layout:{scrollOffset:function(){return a?a.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(r.layout.dock)?2:1,direction:u?\"rtl\":\"ltr\",horizontal:20},item:{show:function(e){return-2!==e.datum.value},label:{fill:f?f.getStyle(i,\"legend.label\",\"color\"):void 0,fontSize:f?f.getStyle(i,\"legend.label\",\"fontSize\"):void 0,fontFamily:f?f.getStyle(i,\"legend.label\",\"fontFamily\"):\"QlikView Sans, sans-serif\"}},navigation:{disabled:n,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:p[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",o],style:{inactive:{opacity:.3}}}]}},{settings:l,style:c})}(e,t,n):\"continuous\"===t.coloring.type&&function(e,t){var n=e.key,r=e.styleReference,o=e.rtl,i=e.settings,a=e.style,u=t.scaleKey,l=t.theme,c=Se(e,t);return!!c.show&&b(!0,c,{type:\"legend-seq\",key:\"\".concat(n,\"-seq\"),settings:{fill:u,major:\"\".concat(u,\"Range\"),length:1,tick:{fill:l?l.getStyle(r,\"legend.label\",\"color\"):void 0,fontSize:l?l.getStyle(r,\"legend.label\",\"fontSize\"):void 0,fontFamily:l?l.getStyle(r,\"legend.label\",\"fontFamily\"):\"QlikView Sans, sans-serif\"},title:{anchor:!o||\"top\"!==c.layout.dock&&\"bottom\"!==c.layout.dock?void 0:\"right\",padding:parseFloat(c.settings.title.fontSize)||16}}},{settings:i,style:a})}(e,t)}function Ae(e,t,n){var o=[],i=[],a=Ie(e,t,n&&n.navigationDisabled);return o.push(a),a&&\"legend-cat\"===a.type&&(i.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),i.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,o=t.key,i=t.requireFailure,a=t.recognizeWith,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(o),type:\"Pan\",requireFailure:i,recognizeWith:a,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var r;return this.started===n||!t||!(null!=u&&null!==(r=u.interact)&&void 0!==r&&r.enabled&&!u.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(o,\"-cat\")}))}},events:(e={},r(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panstart\",e))})),r(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panmove\",e)})),r(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:i,components:o}}var Oe=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function Ne(e){var t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=he(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return ye(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return be(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return xe(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=me,n}({resources:e}),n={},o={},a=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=t.settings()),o.settings},u={config:function(r){if(n=i({},r),o={},!n.key)throw new Error(\"Missing key\");t.set(i(i({},e),n))},auto:function(e){return e?(t.auto(e),u):t.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):t.getAuxiliarySettings(a(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=i(i({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return t.getAuxiliaryData(a())},getSnapshotData:function(e){var n=a();return t.getAuxiliaryData(n,e).then((function(e){return t.getSnapshotData(n,e)}))},resolveUIColor:function(e){return t.resolveUIColor(e)},settings:function(){var e=a();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=a().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(a(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var u=n.palettes.metric||t.measureScheme,c=r.getDataColorScales().filter((function(e){return e.key===u}))[0];if(c){var s=c.colors[0]?c.colors:[[]].concat(l(c.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:a(),colorProps:n.colorProps,theme:n.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hc,n=e.coloring,r=e.rtl,o=e.key,a=e.source,u=e.picasso,c={},s=o;if(n){var f={override:!0,domain:n.explicit&&\"function\"==typeof n.explicit.domain?n.explicit.domain:[].concat(l((n.explicit||{}).domain||[]),[-3,-2]),range:n.explicit&&\"function\"==typeof n.explicit.range?n.explicit.range:[].concat(l((n.explicit||{}).range||[]),[n.others,n.nil])};if(\"field\"===n.mode){if(\"dimension\"===n.fieldType){var d,p=qe({hc:t,source:a,coloring:n}).data;if(n.legendDataset){var v=0,h={};u.data(\"q\")({data:t}).extract({field:n.field,trackBy:n.valueAccessor,reduce:function(e){var t=e[0];return h[t]=v++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return h[e.qElemNumber]}}}}}}var m={data:p,range:n.range,domain:n.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};c[s]=m,d&&(c[\"\".concat(s,\"Legend\")]=i(i({},m),{},{data:d})),t&&t.qHasOtherValues&&d&&((d||m.data).amend=[{label:t.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===n.fieldType){var g={data:{field:n.field},min:n.min,max:n.max};c[s]=b({},g,{type:\"categorical\"===n.type?\"threshold-color\":\"sequential-color\",range:n.range,domain:n.domain,invert:n.reverse}),\"sequential-color\"===c[s].type&&(c[\"\".concat(s,\"Range\")]=b({},g,{invert:!!r}))}else if(\"color\"!==n.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===n.mode){var y={data:t.qDimensionInfo.map((function(e,t){return t})),label:function(e){return t.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};c[s]=y}else if(\"measure\"===n.mode){var x={data:t.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,r;return!(null!==(t=n.explicit)&&void 0!==t&&null!==(r=t.exclude)&&void 0!==r&&r.includes(e))})),label:function(e){return t.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};c[s]=x}}return c}({hc:n.hc,coloring:a(),key:n.key,source:n.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=we(r),i=we(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,u=e.mode,l=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return De(e)||i(e)?c:l}:n[t]?function(e){return De(e)?c:ke(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?l:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===u?function(e){return De(e)||i(e)?c:ke(e)?l:s}:\"color\"===f?function(e){return De(e)||i(e)?c:ke(e)?l:o(e)||c}:null},u=a(t,r);if(t.measureOverrides){var l=we(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=l(e);return c[t]?c[t](e):u(e)}}return u}({coloring:a(),scales:this.scales(),key:n.key}),o.color},datumProps:function(e){return function(e){var t,n,o=e.hc,i=e.coloring,a=e.scales,u=e.key,l=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=u,f=i.nil;\"field\"===i.mode&&i.field?t=i.field:a[u]&&\"field\"===i.mode&&(t=a[u].data.field||i.field),t?(n={field:t,reduce:\"first\"},\"color\"===i.type&&(n.value=function(e){return\"NaN\"!==e.qNum?Oe(e.qNum):e.qText&&B(e.qText)?e.qText:f})):\"dimension\"===i.mode?n=void 0!==i.field?i.field:o.qDimensionInfo.length-1:\"measure\"===i.mode&&(n=c);var d=r({},s,n);return o.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:o.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),l&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:n.key,hc:n.hc,addMeasureIx:a().measureOverrides},e)},data:function(){var e=a(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:n.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,r=e.key,o=e.viewState,i=e.chart,u=e.rtl,l=e.styleReference,c=void 0===l?\"object.legend\":l,s=e.settings,f=void 0===s?{}:s,d=e.style,p=void 0===d?{}:d,v=arguments.length>1?arguments[1]:void 0;return Ae({eventName:t,key:r,rtl:u,viewState:o,chart:i,styleReference:c,settings:f,style:p},{legendProps:n.legendProps,scaleKey:n.key,coloring:a(),theme:n.theme,hc:n.hc,scales:this.scales()},v)}};return u}var Ee=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Pe(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(Ee),i=r.some(Ee),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i(i(i({},e),t),{},{colorProps:i(i({},e.colorProps),t.colorProps||{})});return n}var Te=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Fe(e){var t,n=e.qHyperCube.qDimensionInfo.some(Te),r=e.qHyperCube.qMeasureInfo.some(Te),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var Le=function(){};function He(e){var t,n,r,o,a=e.picasso,u=e.model,l=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?Le:d,v=e.config,h=void 0===v?{}:v,m=e.custom,g=void 0===m?{}:m,y=h.localeInfo,b=h.key,x=h.theme,q=void 0===x?void 0:x,w=h.auto,k=void 0===w?void 0:w,D=h.definitionPath,C=null==f||null===(t=f.getLayout)||void 0===t?void 0:t.call(f),M={theme:q,key:b,localeInfo:y,layout:C,hc:null==f||null===(n=f.getHyperCube)||void 0===n?void 0:n.call(f),legendProps:null==f||null===(r=f.getLayoutValue)||void 0===r?void 0:r.call(f,\"legend\"),colorProps:i(i({},null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"color\")),{},{useBaseColors:C?Pe(C):void 0})},S=Ne({picasso:a,model:u,app:l,translator:c,auto:k});!1!==k&&S.auto((function(e){return k?k({layout:e,defaultAuto:Fe}):Fe(e)}));var I=!1;return{getColor:function(){return S.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return S.resolveUIColor({index:t,color:n})},getData:function(){return S.data()},getDatumProps:function(e){return S.datumProps(e)},getSnapshotData:function(){return S.getSnapshotData(D)},getSettingsForMeasure:function(e){return S.settingsForMeasure(e)},getSettings:function(){return S.settings()},getLegend:function(e,t){return S.legend(e,t)},getScales:function(){return S.scales()},getPalettes:function(){return S.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return S.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:i({},g),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:Pe}),o=je(M,r);S.config(o);var i=S.getAuxiliarySettings(D).then((function(){I=!0}));return i}}}function ze(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var Re=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function Ve(e){var t=e.width,n=e.height,r=Re.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var Be={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function _e(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?Be[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:Be[i],start:a,end:Be[a]}}function Ue(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=o.logicalSize,a=void 0!==i&&i,u=o.rtl,l=void 0!==u&&u,c={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},s={type:\"x-y\",meta:c,update:function(e){c.chart.size={width:e.width,height:e.height},c.chart.mode=Ve(e);var t=_e({orientation:\"horizontal\",dock:n.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:l}),r=t.current,o=t.opposite;c.x.dock=r,c.x.opposite=o,c.x.size=e.width;var i=_e({orientation:\"vertical\",dock:n.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:l}),a=i.current,u=i.opposite;c.y.dock=a,c.y.opposite=u,c.y.size=e.height}};return s.update(ze({chart:t,logicalSize:a})),s}var Ke=\"vertical\",Ye=\"horizontal\";function $e(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i,u=o.logicalSize,l=void 0!==u&&u,c=o.rtl,s=void 0!==c&&c,f=a.fallback===Ke?Ke:Ye,d=!!a.invert,p=a.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],v={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},h={type:\"major-minor\",meta:v,update:function(e){v.chart.orientation=n.getLayoutValue(\"orientation\",f),v.chart.size={width:e.width,height:e.height},v.chart.mode=Ve(e),v.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?Ye:r?n===Ke?Ye:Ke:n}({layoutService:n,chartOrientation:v.chart.orientation,invert:d});var t=_e({orientation:v.major.orientation,dock:n.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:s}),r=t.current,o=t.opposite;v.major.dock=r,v.major.opposite=o,v.major.size=v.major.orientation===Ke?e.height:e.width,p.forEach((function(t){var r={};r.orientation=v.major.orientation===Ke?Ye:Ke;var o=_e({orientation:r.orientation,dock:n.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:s}),i=o.current,a=o.opposite,u=o.start,l=o.end;r.dock=i,r.opposite=a,r.start=u,r.end=l,r.size=r.orientation===Ke?e.height:e.width,v[t.name]=r}))}};return h.update(ze({chart:t,logicalSize:l})),h}function We(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?Ue:$e)({chart:t,layoutService:n,config:o,typeConfig:a})}function Je(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}function Ge(e,t,n){if(void 0!==e&&void 0!==t){for(var r=t.split(\".\"),o=r[r.length-1],i=e,a=0;a<r.length-1;++a){var u=r[a];void 0===i[u]&&(i[u]=Number.isNaN(+r[a+1])?{}:[]),i=i[u]}void 0!==n?i[o]=n:delete i[o]}}function Qe(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function Xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=Qe();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function Ze(e){var t=i({},e),n={},r={},o=!1,a={get:function(e){return t[e]},set:function(e,i){var a=t[e];!o&&n[e]?t[e]=n[e](i,a):t[e]=i,!o&&r[e]&&r[e](t[e],a)},preventSet:function(e,t){o=!0,a.set(e,t),o=!1},intercept:function(e,t){n[e]=t},onChanged:function(e,t){r[e]=t}};return a}function et(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var u=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(u,n)}}function tt(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,u=new Array(a),l=0;l<a;l++)u[l]=arguments[l];n=u;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}function nt(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,u=void 0===a?0:a,l=r.qSelected;return i+u+(void 0===l?0:l)}))}function rt(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:nt(e)}}}(e);case\"K\":return function(e){var t=nt(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=nt(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function ot(e){var t=e.source,n=e.metaAdditionsFn,r=b(!0,{},t),o=rt(r),a=function(){return function(e){var t=e.layout,n=e.additionsFn,r=void 0===n?function(){return{}}:n,o=e.additionsProps,a=void 0===o?{}:o,u=t.qHyperCube,l=u.qDimensionInfo,c=u.qMeasureInfo,s=u.qMode,f=l.length,d=c.length,p=i({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return i(i({},p),r({layout:t,meta:p}))}({layout:r,additionsFn:n,additionsProps:{size:o.size}})},u={refs:i({},o.refs),meta:a(),getLayout:function(){return r},getLayoutValue:function(e,t){return Je(r,e,t)},setLayoutValue:function(e,t){Ge(r,e,t),o=rt(r),u.meta=a()},getHyperCube:function(){return r.qHyperCube},getHyperCubeValue:function(e,t){return Je(r.qHyperCube,e,t)},setHyperCubeValue:function(e,t){Ge(r.qHyperCube,e,t),o=rt(r),u.meta=a()},getDataPages:function(){return Je(r,o.refs.dataPages)},setDataPages:function(e){Ge(r,o.refs.dataPages,e),u.meta=a()}};return u}function it(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function at(t){var r=t.picassoInstance,o=t.plugins,a=t.pluginArgs,c=void 0===a?{}:a,s={initialized:!1,definitions:[]};return{initialize:function(){return n(regeneratorRuntime.mark((function t(){var a,u,f,d;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!s.initialized){t.next=2;break}return t.abrupt(\"return\");case 2:return u=Promise.all(o.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var t=n(regeneratorRuntime.mark((function t(n){var o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.info.componentName){t.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return t.next=4,n.fn(i({},c));case 4:if(\"object\"===e(o=t.sent)){t.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:r.component(n.info.componentName,o);case 8:case\"end\":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())),f=Promise.all(o.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(i({},c))}))),t.next=6,Promise.all([u,f]);case 6:d=t.sent,s.initialized=!0,(a=s.definitions).push.apply(a,l(d[1]));case 9:case\"end\":return t.stop()}}),t)})))()},extendComponents:function(t){return s.initialized?(s.definitions.filter(Boolean).forEach((function(n){var r=u(t.filter((function(e){return e.key&&e.key===n.key})),1)[0];if(r){var o=b(!0,{},r.brush);b(!0,r,n),n.brush&&(r.brush=function(t,n){return\"object\"===e(t)&&Object.keys(t).length?(Array.isArray(n.consume)&&(t.consume=it({originalArray:t.consume,newArray:n.consume,matchKey:\"context\"})),Array.isArray(n.trigger)&&(t.trigger=it({originalArray:t.trigger,newArray:n.trigger,matchKey:\"on\"})),t):n}(o,n.brush))}else t.push(n)})),t):t}}}function ut(e){return(ut=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function lt(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function ct(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function st(e,t,n){return t&&ct(e.prototype,t),n&&ct(e,n),e}function ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dt(Object(n),!0).forEach((function(t){ft(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function vt(e,t){return(vt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ht(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function mt(e,t,n){return(mt=ht()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&vt(o,n.prototype),o}).apply(null,arguments)}function gt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||bt(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function yt(e){return function(e){if(Array.isArray(e))return xt(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||bt(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function bt(e,t){if(e){if(\"string\"==typeof e)return xt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xt(e,t):void 0}}function xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var qt=Object.prototype.hasOwnProperty,wt=Object.prototype.toString,kt=Object.defineProperty,Dt=Object.getOwnPropertyDescriptor,Ct=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===wt.call(e)},Mt=function(e){if(!e||\"[object Object]\"!==wt.call(e))return!1;var t,n=qt.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&qt.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||qt.call(e,t)},St=function(e,t){kt&&\"__proto__\"===t.name?kt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},It=function(e,t){if(\"__proto__\"===t){if(!qt.call(e,t))return;if(Dt)return Dt(e,t).value}return e[t]},At=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=It(u,n),u!==(o=It(t,n))&&(s&&o&&(Mt(o)||(i=Ct(o)))?(i?(i=!1,a=r&&Ct(r)?r:[]):a=r&&Mt(r)?r:{},St(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&St(u,{name:n,newValue:o}));return u};function Ot(e,t,n){if(!e)return-1;var r=n.cache,o=e.origin?e.origin():null;o&&(e=o);var i=r.fields.indexOf(e),a=-1,u=-1;if(-1===i)for(var l=0;l<r.wrappedFields.length;l++)if(u=r.wrappedFields[l].attrDims.map((function(e){return e.instance})).indexOf(e),a=r.wrappedFields[l].attrExps.map((function(e){return e.instance})).indexOf(e),-1!==u||-1!==a){i=l;break}return(i-=t.qArea.qLeft)<0||i>=t.qArea.qWidth?-1:u>=0?function(e){return e[i].qAttrDims.qValues[u]}:a>=0?function(e){return e[i].qAttrExps.qValues[a]}:function(e){return e[i]}}function Nt(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Et(e){var t=e.cache,n=e.f,r=e.mainCell,o=e.p;e.prop;var i=e.page,a=e.rowIdx,u=e.row,l=e.sourceKey,c=e.target,s=e.targetProp,f=r;if(o.field&&o.field!==n){var d=Ot(o.field,i,{cache:t});if(-1===d)return;f=At({qRow:a},d(u))}c[s]=Nt(o,f,{key:l})}function Pt(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){for(var u=t.raw(),l=t.key(),c=\"object\"===ut(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=!!o[a].trackBy,h=ut(o[a].trackBy),m={},g=[],y=[],b=0;b<u.qDataPages.length;b++){var x=Ot(c,u.qDataPages[b],{cache:n});if(-1!==x)for(var q=0;q<u.qDataPages[b].qMatrix.length;q++){var w=u.qDataPages[b].qArea.qTop+q,k=At({qRow:w},x(u.qDataPages[b].qMatrix[q])),D=Nt(d,k,{key:l});if(!(d.filter&&!d.filter(k))){for(var C=0;C<p.length;C++){var M=f[p[C]],S=M.fields||[M];M.fields&&(D[p[C]]=[]);for(var I=0;I<S.length;I++)Et({cache:n,f:c,mainCell:k,p:S[I],prop:p[C],props:f,page:u.qDataPages[b],rowIdx:w,row:u.qDataPages[b].qMatrix[q],sourceKey:l,target:M.fields?D[p[C]]:D,targetProp:M.fields?I:p[C]});if(M.fields){var A=D[p[C]].map((function(e){return e.value})),O=D[p[C]].map((function(e){return e.label}));D[p[C]]={value:\"function\"==typeof M.value?M.value(A):void 0!==M.value?M.value:A,label:\"function\"==typeof M.label?M.label(O):void 0!==M.label?String(M.label):String(D[p[C]].value)}}}v&&r.track({cfg:o[a],itemData:k,obj:D,target:g,tracker:m,trackType:h}),y.push(D)}}}v?i.push.apply(i,yt(r.collect(g,{main:d,propsArr:p,props:f}))):i.push.apply(i,y)}return i}function jt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Tt(e,t){var n,r,o,i,a,u=new zt(e),l=+e.value&&(u.value=e.value),c=[u];for(null==t&&(t=Ft);n=c.pop();)if(l&&(n.value=+n.data.value),(o=t(n.data))&&(a=o.length))for(n.children=new Array(a),i=a-1;i>=0;--i)c.push(r=n.children[i]=new zt(o[i])),r.parent=n,r.depth=n.depth+1;return u.eachBefore(Ht)}function Ft(e){return e.children}function Lt(e){e.data=e.data.data}function Ht(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function zt(e){this.data=e,this.depth=this.height=0,this.parent=null}function Rt(e){if(\"function\"!=typeof e)throw new Error;return e}zt.prototype=Tt.prototype={constructor:zt,count:function(){return this.eachAfter(jt)},each:function(e){var t,n,r,o,i=this,a=[i];do{for(t=a.reverse(),a=[];i=t.pop();)if(e(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r])}while(a.length);return this},eachAfter:function(e){for(var t,n,r,o=this,i=[o],a=[];o=i.pop();)if(a.push(o),t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n]);for(;o=a.pop();)e(o);return this},eachBefore:function(e){for(var t,n,r=this,o=[r];r=o.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)o.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){var e=[];return this.each((function(t){e.push(t)})),e},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Tt(this).eachBefore(Lt)}};var Vt={depth:-1},Bt={};function _t(e){return e.id}function Ut(e){return e.parentId}function Kt(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));for(var n,r=e.split(\"/\"),o=t,i=0;i<r.length;i++){if(\"*\"===r[i]&&Array.isArray(o)){var a=[];n=r.slice(i+1).join(\"/\");for(var u=0;u<o.length;u++){var l=Kt(n,o[u]);Array.isArray(l)?a.push.apply(a,yt(l)):a.push(l)}return a}if(!r[i]&&Array.isArray(o)){var c=new Array(o.length);n=r.slice(i+1).join(\"/\");for(var s=0;s<o.length;s++)c[s]=Kt(n,o[s]);return c}r[i]in o&&(o=o[r[i]])}return o}function Yt(e,t,n){var r=[];if(!e||!e.length)return r;if(t<=0){var o=n>=0?[e[n]]:e;r.push.apply(r,yt(o))}else for(var i=0;i<e.length;i++)e[i].children&&e[i].children.length&&r.push.apply(r,yt(Yt(e[i].children,t-1,n)));return r}function $t(e,t,n){if(e===t)return function(e){return e};if(e>t){var r=Math.max(0,Math.min(100,e-t)),o=yt(Array(r)).map(String.prototype.valueOf,\"parent\").join(\".\");return Function(\"node\",\"return node.\".concat(o,\";\"))}if(t>e){var i=Math.max(0,Math.min(100,t-e));return function(e){return Yt(e.children,i-1,n)}}return!1}function Wt(e,t){var n=t.cache;if(\"number\"==typeof e)return n.fields[e];var r=n.allFields;if(\"function\"==typeof e){for(var o=0;o<r.length;o++)if(e(r[o]))return r[o];return!1}if(\"string\"==typeof e){for(var i=0;i<r.length;i++)if(r[i].key()===e||r[i].title()===e)return r[i]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}var Jt=/^qDimensionInfo(?:\\/(\\d+))?/,Gt=/^\\/?qMeasureInfo\\/(\\d+)/,Qt=/\\/qAttrExprInfo\\/(\\d+)/,Xt=/\\/qAttrDimInfo\\/(\\d+)/;function Zt(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map((function(e,t){return t}))).filter((function(t){return t<e.qDimensionInfo.length}))}function en(e,t){var n=t.cube;if(!e)return-1;var r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,u=-1,l=-1,c=-1,s=r,f=n.qEffectiveInterColumnSortOrder,d=Zt(n);return Jt.test(s)&&(o=!0,i=+Jt.exec(s)[1],s=r.replace(Jt,\"\")),Gt.test(s)&&(\"K\"===n.qMode?l=+Gt.exec(s)[1]:f&&-1!==f.indexOf(-1)?(l=+Gt.exec(s)[1],c=0):c=+Gt.exec(s)[1],s=s.replace(Gt,\"\")),s&&(Xt.exec(s)?u=+Xt.exec(s)[1]:Qt.exec(s)&&(a=+Qt.exec(s)[1])),{fieldDepth:(o?\"S\"===n.qMode?d[i]:f?f.indexOf(i):i:f&&-1!==f.indexOf(-1)?f.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1))+1,pseudoMeasureIndex:l,measureIdx:c,attrDimIdx:u,attrIdx:a}}function tn(e,t){var n,r,o=$t(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?function(e){return e.data.qValues[t.measureIdx]}:function(e){return e.data},t.attrDimIdx>=0?r=function(e){var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=function(e){var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function nn(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function rn(e){for(var t=e.propsArr,n=e.props,r=e.item,o=e.itemData,i=e.ret,a=e.sourceKey,u=0;u<t.length;u++){var l=n[t[u]],c=l.fields||[l],s=void 0,f=void 0;l.fields&&(s=[],f=[]);for(var d=function(e){var n=c[e],d=void 0,p=void 0,v=void 0,h=void 0,m=void 0,g=void 0;if(\"primitive\"===n.type?(v=n.value,g=String(n.value)):(\"function\"==typeof n.value&&(d=function(e){return n.value(e,r)}),\"function\"==typeof n.label&&(p=function(e){return n.label(e,r)}),n.accessor?(h=n.accessor(r),Array.isArray(h)?(m=h.map(n.valueAccessor),n.attrAccessor&&(m=m.map(n.attrAccessor)),d&&(v=m.map(d),d=null),p&&(g=m.map(p),p=null),v=n.reduce?n.reduce(v):v,g=n.reduceLabel?n.reduceLabel(g,v):String(v)):g=v=n.attrAccessor?n.attrAccessor(n.valueAccessor(h)):n.valueAccessor(h)):(v=o,g=o)),l.fields){var y=d?d(v):v;s.push(y),f.push(p&&null!=g?p(g):null!=g?g:String(y))}else{var b=d?d(v):v;i[t[u]]={value:b,label:p?p(g):null!=g?g:String(b)},n.field&&(i[t[u]].source={field:n.field.key(),key:a})}},p=0;p<c.length;p++)d(p);s&&(i[t[u]]={value:\"function\"==typeof l.value?l.value(s,r):s,label:\"function\"==typeof l.label?l.label(f,r):f})}}var on=function(e,t,n){var r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=Kt(r,e);return i&&i[0]?(t.tree=Tt(i[0],n.children||function(e){return e[o]}),t.tree):null};function an(e){for(var t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){var t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map((function(e,t){return t}))}(e),r=e.fields(),o=e.fields().filter((function(e){return\"dimension\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),i=e.fields().filter((function(e){return\"measure\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),a={__root:{__id:\"__root\",qValues:[]}},u=0;u<t.length;u++){for(var l=t[u],c=\"__root\",s=!1,f=0;f<o.length;f++){var d=l[o[f]],p=\"\".concat(c,\"__\").concat(d.qText);a[p]||(a[p]=pt({__id:p,__parent:c,qValues:[]},d),s=!0),c=p}if(s)for(var v=0;v<i.length;v++){var h=l[i[v]];a[c].qValues.push(h)}}var m=Object.keys(a).map((function(e){return a[e]}));return function(){var e=_t,t=Ut;function n(n){var r,o,i,a,u,l,c,s=n.length,f=new Array(s),d={};for(o=0;o<s;++o)r=n[o],u=f[o]=new zt(r),null!=(l=e(r,o,n))&&(l+=\"\")&&(d[c=\"$\"+(u.id=l)]=c in d?Bt:u);for(o=0;o<s;++o)if(u=f[o],null!=(l=t(n[o],o,n))&&(l+=\"\")){if(!(a=d[\"$\"+l]))throw new Error(\"missing: \"+l);if(a===Bt)throw new Error(\"ambiguous: \"+l);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(i)throw new Error(\"multiple roots\");i=u}if(!i)throw new Error(\"no root\");if(i.parent=Vt,i.eachBefore((function(e){e.depth=e.parent.depth+1,--s})).eachBefore(Ht),i.parent=null,s>0)throw new Error(\"cycle\");return i}return n.id=function(t){return arguments.length?(e=Rt(t),n):e},n.parentId=function(e){return arguments.length?(t=Rt(e),n):t},n}().id((function(e){return e.__id})).parentId((function(e){return e.__parent}))(m)}var un=function(e){for(var t=e.propsArr,n=e.props,r=e.cube,o=e.cache,i=e.itemDepthObject,a=e.f,u=0;u<t.length;u++)for(var l=n[t[u]],c=l.fields?l.fields:[l],s=0;s<c.length;s++){var f=c[s];if(f.field!==a){var d=tn(i,en(f.field,{cube:r,cache:o}));f.accessor=d.nodeFn,f.valueAccessor=d.valueFn,f.attrAccessor=d.attrFn}}};function ln(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=t.raw(),i=t.key(),a=\"S\"===o.qMode?an(t):on(o,n,e);if(!a)return null;for(var u=a.height,l=[],c=0;c<=u;c++){var s=null;if(c>0)if(\"S\"===o.qMode){var f=Zt(o),d=f[c-1];s=n.fields[d]}else{var p=o.qEffectiveInterColumnSortOrder[c-1];c>o.qEffectiveInterColumnSortOrder.length&&(p=o.qDimensionInfo.length),s=n.fields[p]}var v=r.normalizeConfig(pt(pt({},e),{},{field:s?s.key():void 0}),t),h=v.props,m=v.main,g=Object.keys(h);l[c]={propsArr:g,props:h,main:m};var y=s?en(s,{cube:o,cache:n}):{fieldDepth:0};un({propsArr:g,props:h,cube:o,cache:n,itemDepthObject:y,f:s})}for(var b=a.copy(),x=b.descendants(),q=a.descendants(),w=0;w<q.length;w++){var k=l[q[w].depth].propsArr,D=l[q[w].depth].props,C=l[q[w].depth].main,M=x[w],S=M.data,I=nn(C,S,{key:i});rn({propsArr:k,props:D,item:M,itemData:S,ret:I,sourceKey:i,isTree:!0}),q[w].data=I}return a}function cn(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){var u=t.raw(),l=t.key();if(!on(u,n,e))continue;var c=\"object\"===ut(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=en(c,{cube:u,cache:n}),h=tn({fieldDepth:0},v),m=h.nodeFn,g=h.attrFn,y=h.valueFn;un({propsArr:p,props:f,cube:u,cache:n,itemDepthObject:v,f:c});for(var b=!!o[a].trackBy,x=ut(o[a].trackBy),q={},w=[],k=m(n.tree),D=[],C=0;C<k.length;C++){var M=k[C],S=g?g(y(M)):y(M);if(!(d.filter&&!d.filter(S))){var I=nn(d,S,{key:l});rn({propsArr:p,props:f,item:M,itemData:S,ret:I,sourceKey:l}),b&&r.track({cfg:o[a],itemData:S,obj:I,target:w,tracker:q,trackType:x}),D.push(I)}}b?i.push.apply(i,yt(r.collect(w,{main:d,propsArr:p,props:f}))):i.push.apply(i,D)}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var sn,fn=(function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,u,l,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),v=p>0?e.substring(0,p):\"\",h=e.split(\"\").reverse().join(\"\"),m=h.search(/[0-9\\-\\+#]/),g=d-m,y=e.substring(g,g+1),b=g+(\".\"===y||\",\"===y?1:0),x=m>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",u=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=u)&&(t=(+t).toFixed(u+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],l=s[1]&&s[s.length-1].length){for(h=\"\",g=(f=t[0]).length%l,d=f.length,b=0;b<d;b++)h+=f.charAt(b),!((b-g+1)%l)&&b<d-l&&(h+=i);t[0]=h}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),v+(n?\"-\":\"\")+r+x}}(sn={exports:{}},sn.exports),sn.exports);function dn(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}var pn={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},vn=/%$/,hn=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,mn=/^\\(oct\\)/i,gn=/^\\(dec\\)/i,yn=/^\\(hex\\)/i,bn=/^\\(bin\\)/i,xn=/^\\(rom\\)/i,qn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,wn=/#|0/g;function kn(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Dn(e,t,n){var r;return hn.test(t)?e=kn(e,Number(/\\d{2}/.exec(t)[0]),t,n):mn.test(t)?e=kn(e,8,t,n):gn.test(t)?e=kn(e,10,t,n):yn.test(t)?e=kn(e,16,t,n):bn.test(t)?e=kn(e,2,t,n):xn.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),e=0===(e=Math.floor(e))?\"0\":e<=5e5?r+(e=function(e,t){for(var n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),u=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=u[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t)):t+r+e.toExponential(0)),e}function Cn(e,t,n){var r=dn(e);return n?r:new RegExp(r||\"\",t)}function Mn(e,t,n){var r,o,i,a,u,l,c,s,f,d,p,v=e.pattern;v.indexOf(\"A\")>=0&&(v=v.replace(\"A\",\"\"),e.abbreviate=!0),d=t,(p=n)&&(p=dn(p)),d&&(d=dn(d)),f=new RegExp(\"(?:[#0]+\".concat(d,\")?[#0]+(?:\").concat(p,\"[#0]+)?\")),a=(i=(i=v.match(f))?i[0]:\"\")?v.substr(0,v.indexOf(i)):v,u=i?v.substring(v.indexOf(i)+i.length):\"\",i||(i=v?\"#\":\"##########\"),t&&t===n&&(o=(r=i.split(n)).pop(),i=r.join(\"\")+n+o,t=\"\"),l=t,t=/,/.test(n)?\"¤\":\",\",l&&(i=i.replace(Cn(l,\"g\"),t)),c=n,n=\".\",c&&(i=i.replace(Cn(c,\"g\"),n)),s=(s=i.match(/#/g))?s.length:0;var h,m=v.split(c);m[1]&&(h=m[1].match(wn)),e.prefix=a||\"\",e.postfix=u||\"\",e.pattern=v,e.maxPrecision=h?h.length:2,e.percentage=vn.test(v),e.numericPattern=i||\"\",e.numericRegex=new RegExp(\"\".concat(Cn(t,null,!0),\"|\").concat(Cn(n,null,!0)),\"g\"),e.groupTemp=l,e.decTemp=c,e.t=t,e.d=n,e.temp=s}var Sn=function(){function e(t,n,r,o,i){lt(this,e),this.localeInfo=t,this.pattern=n,this.thousandDelimiter=r||\",\",this.decimalDelimiter=o||\".\",this.type=i||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return pn;var n={};return e.qNumericalAbbreviation.split(t).forEach((function(e){var t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(t,this.patternSeparator),this.prepare()}return st(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}},{key:\"prepare\",value:function(e,t,n){var r;void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),e?(this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],qn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?qn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?qn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1,r.positive.isFunctional||Mn(r.positive,t,n),r.negative&&!r.negative.isFunctional&&Mn(r.negative,t,n),r.zero&&!r.zero.isFunctional&&Mn(r.zero,t,n)):this._prepared={pattern:!1}}},{key:\"formatValue\",value:function(e){var t,n,r,o,i,a,u,l,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return(s=s.zero).pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Dn(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){var v,h,m=Object.keys(this.abbreviations).map((function(e){return parseInt(e,10)})).sort((function(e,t){return e-t})),g=m[0];for(u=0,n=Number(Number(e).toExponential().split(\"e\")[1]);g<=n&&u<m.length;)g=m[++u];u>0&&(v=m[u-1]),v&&n>0&&v>0?h=v:(n<0&&v<0||!v)&&(g<0&&g-n<=s.maxPrecision?h=g:v<=n&&!(g>0&&-n<=s.maxPrecision)&&(h=v)),h&&(f=this.abbreviations[h],e/=Math.pow(10,h))}if(r=Math.abs(e),t=s.temp,c=(l=s.numericPattern).split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==l.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{var y=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]),b=l.split(i)[0];if(e=fn(b+=i,y)||\"0\",c){var x=Math.max(0,Math.min(14,c.length)),q=c.replace(/#+$/,\"\").length,w=(\"I\"===this.type?0:r%1).toFixed(x).slice(2).replace(/0+$/,\"\");for(u=w.length;u<q;u++)w+=\"0\";w&&(e+=i+w)}else 0===y&&(o=0)}else if(r>=Math.pow(10,t)||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(l+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),u=0;u<t;u++)l+=\"#\";e=fn(l,e)}e=e.replace(s.numericRegex,(function(e){return e===a?s.groupTemp:e===i?s.decTemp:\"\"})),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}}],[{key:\"getStaticFormatter\",value:function(){return{prepare:function(){},formatValue:function(e){return\"\".concat(e)}}}}]),e}();function In(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size,i=void 0===o?5e3:o,a=r.multipleArguments,u=void 0!==a&&a,l=r.toKey,c=void 0===l?function(e){return e}:l,s=Object.create(null),f=Object.create(null),d=0,p=0;return(t=u?function(){return n=c.apply(void 0,arguments),t.has(n)?t.get(n):t.set(n,e.apply(void 0,arguments))}:function(r){return n=c(r),t.has(n)?t.get(n):t.set(n,e(r))}).set=function(e,t){return d>=i&&(delete s[f[p]],delete f[p],d--,p++),s[e]=t,f[d]=e,d++,t},t.get=function(e){return s[e]},t.has=function(e){return e in s},t.clear=function(){s=Object.create(null),f=Object.create(null),d=0,p=0},t.size=function(){return d},t}function An(e,t,n,r,o){var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return mt(Sn,t)}(o,e,t,n,r),a=In(i.formatValue.bind(i),{toKey:function(e){return isNaN(e)?e:+e}});function u(e){return a(e)}return u.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},u.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},u}var On=\"D\",Nn=\"T\",En=\"TS\",Pn=\"IV\",jn=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],Tn=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],Fn=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],Ln=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function Hn(e,t){for(var n=e.length;n<t;n++)e=\"0\".concat(e);return e}function zn(e){var t=e.toString().split(\".\");return t[1]?t=Number(\"0.\".concat(t[1])):0}function Rn(e,t){var n,r=function(e){var t=e,n=24*zn(t),r=60*zn(n),o=60*zn(r),i=1e3*zn(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,u=r.s,l=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(u+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0)<0&&(c=6);var s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:u,f:l,t:s}}var Vn=function(){function e(t,n,r){lt(this,e);var o,i=t||{};(i.qCalendarStrings||(i.qCalendarStrings={qLongDayNames:jn,qDayNames:Tn,qLongMonthNames:Fn,qMonthNames:Ln}),this.localeInfo=i,this.locale_days=i.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=i.qCalendarStrings.qDayNames.slice(),this.locale_months=i.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=i.qCalendarStrings.qMonthNames.slice(),n)||(n=(ft(o={},Nn,i.qTimeFmt||\"hh:mm:ss\"),ft(o,On,i.qDateFmt||\"YYYY-MM-DD\"),ft(o,En,i.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"),o)[r]);this.pattern=n}return st(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");var n,r,o,i,a,u=/t+/gi.test(t);e instanceof Date?(o=u,i=(r=e).getUTCHours(),a=r.getUTCDay()-1,o&&((i%=12)||(i=12)),a<0&&(a=6),n={year:r.getUTCFullYear(),month:r.getUTCMonth(),day:a,date:r.getUTCDate(),h:i,m:r.getUTCMinutes(),s:r.getUTCSeconds(),f:r.getUTCMilliseconds(),t:r.getUTCHours()>=12?\"pm\":\"am\"}):(e<0&&(e=-e,t=\"-\".concat(t)),n=Rn(e,t));var l=function(e,t){return{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(t.year).slice(-2))),YY:Hn(\"\".concat(t.year).slice(-2),2),YYY:Hn(\"\".concat(t.year).slice(-3),3),def:function(e){return Hn(\"\".concat(t.year),e.length)}},\"M+\":{M:t.month+1,MM:Hn(\"\".concat(t.month+1),2),MMM:e.locale_months_abbr[t.month],def:e.locale_months[t.month]},\"W+|w+\":{W:t.day,WW:Hn(\"\".concat(t.day),2),WWW:e.locale_days_abbr[t.day],def:e.locale_days[t.day]},\"D+|d+\":{D:t.date,def:function(e){return Hn(\"\".concat(t.date),e.length)}},\"h+|H+\":{h:t.h,def:function(e){return Hn(\"\".concat(t.h),e.length)}},\"m+\":{m:t.m,def:function(e){return Hn(\"\".concat(t.m),e.length)}},\"s+|S+\":{s:t.s,def:function(e){return Hn(\"\".concat(t.s),e.length)}},\"f+|F+\":{def:function(e){var n=\"\".concat(t.f),r=e.length-n.length;if(r>0)for(var o=0;o<r;o++)n+=\"0\";else r<0&&(n=n.slice(0,e.length));return n}},\"t{1,2}|T{1,2}\":{def:function(e){var n=t.t;return e[0].toUpperCase()===e[0]&&(n=n.toUpperCase()),n.slice(0,e.length)}}}}(this,n),c=[];for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&c.push(s);var f=new RegExp(c.join(\"|\"),\"g\");return t.replace(f,(function(e){var t,n,r;for(n in l)if(Object.prototype.hasOwnProperty.call(l,n)&&(t=new RegExp(n)).test(e))break;if(!t)return\"\";for(var o in l[n])if(o===e||o.toLowerCase()===e){void 0===(r=l[n][o])&&(r=l[n][o.toLowerCase()]);break}return void 0===r&&(r=l[n].def),\"function\"==typeof r&&(r=r(e)),r}))}}]),e}();function Bn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return mt(Vn,t)}function _n(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function Un(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=Bn(n,e,t),o=In(r.format.bind(r),{toKey:function(e){return\"object\"===ut(e)&&\"function\"==typeof e.getTime?e.getTime():e}});function i(e){return t!==Pn?_n(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=Bn(n,e,t),o=In(r.format.bind(r),{toKey:function(e){return\"object\"===ut(e)?e.getTime():e}}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function Kn(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return Un(e.qNumFormat.qFmt,e.qNumFormat.qType,t);var n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##A\"),i=\"U\"),An(n,r,o,i,t)}function Yn(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.meta,r=t.id,o=t.key,i=t.localeInfo,a=t.fieldExtractor,u=t.value,l=t.type,c=t.sourceField,s=u||(\"dimension\"===l?function(e){return e.qElemNo}:function(e){return e.qValue}),f=function(e){return e.qText||\"\"},d=\"dimension\"===l?\"first\":\"avg\",p=Kn(n,i),v=\"dimension\"===l?\"first\":function(e,t){return p(t)},h={id:function(){return r},key:function(){return o},raw:function(){return n},title:function(){return n.qFallbackTitle||n.label},type:function(){return l},origin:function(){return c},items:function(){return e||(e=a(h)),e},min:function(){return n.qMin},max:function(){return n.qMax},value:s,label:f,reduce:d,reduceLabel:v,formatter:function(){return p},tags:function(){return n.qTags}};return h}function $n(e,t,n,r,o){return(t[e]||[]).map((function(t,i){var a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),u={instance:Yn(At({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return u.attrDims=$n(\"qAttrDimInfo\",t,n,a,At({},o,{value:function(e){return e.qElemNo},type:\"dimension\"})),u.attrExps=$n(\"qAttrExprInfo\",t,n,a,At({},o,{value:function(e){return e.qNum},type:\"measure\"})),u.measures=$n(\"qMeasureInfo\",t,n,a,At({},o,{value:function(e){return e.qValue},type:\"measure\"})),u}))}function Wn(){var e,t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.key,i=r.data,a=r.config,u=void 0===a?{}:a,l={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},c=i;if(!c)throw new Error('Missing \"data\" input');if(!c.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');var s=Wn.util,f={cache:l,cube:c,localeInfo:u.localeInfo,fieldExtractor:null,pages:null,hierarchy:function(){return null},virtualFields:u.virtualFields},d={key:function(){return o},raw:function(){return c},field:function(e){return Wt(e,f)},fields:function(){return l.fields.slice()},extract:function(e){return f.extractor(e,d,l,s)},hierarchy:function(e){return f.hierarchy(e,d,l,s)},_cache:function(){return l}};\"K\"===c.qMode||\"T\"===c.qMode||!c.qMode&&c.qNodesOnDim?(f.extractor=cn,f.hierarchy=ln,f.pages=\"K\"===c.qMode?c.qStackedDataPages:c.qTreeDataPages):\"S\"===c.qMode?(f.extractor=Pt,f.pages=c.qDataPages,f.hierarchy=ln):f.extractor=function(){return[]},f.fieldExtractor=function(e){return f.extractor({field:e},d,l,s)};var p=\"S\"===c.qMode?function(e){return e.qElemNumber}:void 0,v=\"S\"===c.qMode?function(e){return e.qNum}:void 0;(e=l.wrappedFields).push.apply(e,yt($n(\"qDimensionInfo\",c,o,\"\",At({},f,{value:p,type:\"dimension\"})))),(t=l.wrappedFields).push.apply(t,yt($n(\"qMeasureInfo\",c,o,\"\",At({},f,{value:v,type:\"measure\"})))),l.fields=l.wrappedFields.map((function(e){return e.instance}));var h=function e(t){t.forEach((function(t){l.allFields.push(t.instance),e(t.measures),e(t.attrDims),e(t.attrExps)}))};return h(l.wrappedFields),(u.virtualFields||[]).forEach((function(e){var t=d.field(e.from),n=Yn(pt({meta:t.raw(),id:\"\".concat(o,\"/\").concat(e.key),sourceField:t,fieldExtractor:function(e){return f.extractor({field:e},d,l,s)},key:e.key,type:t.type(),localeInfo:f.localeInfo,value:t.value},e.override||{}));l.virtualFields.push(n)})),(n=l.allFields).push.apply(n,yt(l.virtualFields)),d}var Jn=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],Gn=/\\/qDimensionInfo(?:\\/(\\d+))?/,Qn=/\\/qMeasureInfo\\/(\\d+)/,Xn=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,Zn=/\\/qAttrExprInfo\\/(\\d+)/,er=/\\/?qHyperCube/,tr=/\\/?qTreeData/,nr=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14))},rr=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13))};function or(e,t){var n=e,r=-1,o=-1,i=\"\",a=function(e){return e};er.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=nr):tr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=rr);var u=!0;if(Gn.test(e)&&(r=+Gn.exec(e)[1]),Qn.test(e)&&(o=+Qn.exec(e)[1]),Xn.test(e)){o=-1,r=0;var l=+Xn.exec(n)[2];isNaN(l)||(r=l,n=n.replace(/\\/\\d+$/,\"\")),u=!1}if(Zn.test(e)){var c=o;if(t){o=0;var s=Kt(i,t);o+=(s.qMeasureInfo||[]).length,r>-1?(o=s.qDimensionInfo.slice(0,r).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),r=-1):(o=s.qDimensionInfo.reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),o=s.qMeasureInfo.slice(0,c).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o)),o+=+Zn.exec(n)[1]}else r>-1?(r=-1,o=+Zn.exec(n)[1]):o+=+Zn.exec(n)[1]+1}return Jn.forEach((function(e){var t=gt(e,2),r=t[0],o=t[1];n=n.replace(r,o)})),u&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function ir(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=n.byCells,i=n.primarySource,a=[],u={},l=e.isActive(),c=!1;if(e.brushes().forEach((function(e){var t=or(e.id,r);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){var n=e.brush.ranges();n.length&&(c=!0,u.multiRangeSelectTreeDataValues||(u.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((function(e){return u.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}else{if(\"range\"===e.type&&t.measureIdx>-1){var l=e.brush.ranges();l.length&&(c=!0,u.rangeSelectHyperCubeValues||(u.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),l.forEach((function(e){return u.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}if(\"range\"===e.type&&t.dimensionIdx>-1){var s=e.brush.ranges();s.length&&(c=!0,u.selectHyperCubeContinuousRange||(u.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),s.forEach((function(e){return u.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}})})))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(o)if(r&&r.qHyperCube&&(\"P\"===r.qHyperCube.qMode||\"T\"===r.qHyperCube.qMode||\"K\"===r.qHyperCube.qMode)){var f=r.qHyperCube,d=f.qNoOfLeftDims,p=f.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(u.selectPivotCells||(u.selectPivotCells={path:t.path,cells:[]}),e.id===i||!i){var v=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));(0===d||p>=d)&&d>-1?v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:p-d})})):v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),c=!!u.selectPivotCells.cells.length}}else u.selectHyperCubeCells||(u.selectHyperCubeCells={path:t.path,cols:[]}),u.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==i&&(i||u.selectHyperCubeCells.values)||(u.selectHyperCubeCells.values=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)})),c=!!u.selectHyperCubeCells.values.length);else{var h=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));c=!!h.length,a.push({params:[t.path,t.dimensionIdx,h,!1],method:\"selectHyperCubeValues\"})}}})),!c&&l)return[{method:\"resetMadeSelections\",params:[]}];u.rangeSelectHyperCubeValues&&a.push({method:\"rangeSelectHyperCubeValues\",params:[u.rangeSelectHyperCubeValues.path,u.rangeSelectHyperCubeValues.ranges,[],null===(t=n.orMode)||void 0===t||t]});return u.selectHyperCubeContinuousRange&&a.push({method:\"selectHyperCubeContinuousRange\",params:[u.selectHyperCubeContinuousRange.path,u.selectHyperCubeContinuousRange.ranges]}),u.selectHyperCubeCells&&a.push({method:\"selectHyperCubeCells\",params:[u.selectHyperCubeCells.path,u.selectHyperCubeCells.values,u.selectHyperCubeCells.cols]}),u.selectPivotCells&&a.push({method:\"selectPivotCells\",params:[u.selectPivotCells.path,u.selectPivotCells.cells]}),u.multiRangeSelectTreeDataValues&&a.push({method:\"multiRangeSelectTreeDataValues\",params:[u.multiRangeSelectTreeDataValues.path,u.multiRangeSelectTreeDataValues.ranges]}),a}function ar(e){Wn.util=e.data(\"matrix\").util,e.data(\"q\",Wn),e.formatter(\"q-number\",An),e.formatter(\"q-time\",Un)}function ur(e){var t=Je(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function lr(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,u={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var l=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===l?[]:l;return u.lockedDimensions=c.map((function(e){return!!e.qLocked})),u.singleSelectDimensions=c.map((function(e,t){return ur({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),u.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),u.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),u.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),u}function cr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==t||!t.length)return!1;var n=t.filter((function(t){return\"object\"===e(t.data)&&Array.isArray(t.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return n}function sr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}ar.qBrushHelper=ir,ar.selections=ir;var fr=\"Enter\",dr=\"Escape\",pr=\"Esc\",vr=\"Shift\";function hr(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,u=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var c=e.filter((function(e){return-2!==e.value}));return c.length>1?function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=ur({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,l(i))})),a.filter(Boolean)}({layout:u,values:c}):c},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var mr=[],gr=0,yr=function(e){var t=mr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===fr?t.forEach((function(e){return e.selections.confirm()})):e.key!==dr&&e.key!==pr||t.forEach((function(e){return e.selections.cancel()})))},br=function(){document.addEventListener(\"keyup\",yr)},xr=function(){document.removeEventListener(\"keyup\",yr)},qr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},wr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function kr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Dr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,u=void 0===a?\"selection\":a,l=e.emit,c=void 0===l?\"rangeClear\":l,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof u&&t.brush(u).clear(),d)}function Cr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,u=void 0===a?\"discrete-range-brush\":a,l=e.cleared;return Dr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,emit:\"areaClear\",brushName:e.brushName})}function Mr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,u=void 0===a?\"continuous-range-brush\":a,l=e.cleared;return Dr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,brushName:e.brushName})}function Sr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,u=void 0===a?\"minorRange\":a,l=e.cleared,c=void 0!==l&&l,s=e.brushName,f=Dr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:u,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,v=d.brush,h=n.scale(p).data().fields.map((function(e){return e.id()})),m=n.brush(v),g=m.brushes().filter((function(e){return\"range\"===e.type&&h.some((function(t){return t===e.id}))}));m&&g.length&&g.forEach((function(e){m.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function Ir(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,u=e.cleared;Dr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function Ar(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,u=void 0===a?[]:a;if(n&&i.includes(n.event)){var l=n.currentComponent;n.previousComponent!==l&&(r.clear(),u.forEach((function(e){return t.brush(e).end()})))}}function Or(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,u=e.componentName,l=void 0===u?\"legend-range-brush\":u,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Dr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:l,brushName:void 0!==f&&f})&&o.clear()}var Nr=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=a(e,[\"chart\",\"document\",\"selections\",\"selectionInfo\"]);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function Er(e){var t=e.selectionEvents,n=e.selections,r=e.selectionInfo,o=e.clear,a=e.chart,u=e.document,l=t.start,c={selections:n,selectionInfo:r,chart:a,document:u},s=function(e){return Object.assign(r,e||{})},f=function(e){var t=e.event,n=e.components;return function(){return function(e){var t=e.selectionInfo,n=void 0===t?{}:t,r=e.setSelectionInfo,o=e.clear,a=e.event,u=e.components,l=void 0===u?[]:u;r(i(i({},n),{},{event:a,components:l.map((function(e){return e.key})).filter(Boolean)})),o()}({event:t,components:n,clear:o,chart:a,selectionInfo:r,setSelectionInfo:s})}};return\"function\"==typeof l?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];l(i(i({defaultFunc:f({event:e,components:t}),setSelectionInfo:s,clear:o},c),{},{event:e,components:t}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function Pr(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function jr(e){var t,n=e.chart,r=e.selectionInfo,o=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===o||!1===s)return function(){};var f=(l||{}).lasso,d=void 0!==f&&f,p=o.reset,v=void 0===p?Pr:p,h=o.clear,m=!1!==h&&function(e){var t=e.clear,n=void 0===t?Nr:t,r=e.selections,o=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,t={selections:r,selectionInfo:o,chart:a,document:document,cleared:e};return n(i({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Cr(i(i({},t),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Mr(i(i({},t),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Sr(i(i({},t),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Ir(i(i({},t),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Ar(i(i({},t),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Or(i(i({},t),e))}},t))}}({clear:h,selections:c,selectionInfo:r,chart:n}),g=function(e){var t=e.chart,n=e.lasso,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){r({e:e,lasso:n})},canceled:function(e){r({e:e,lasso:n}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:n,clear:m,reset:v,lasso:d}),y={};Object.entries(g).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];y[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var b=Er({selectionEvents:s,selections:c,selectionInfo:r,clear:m,chart:n,document:document});return null==l||null===(t=l.select)||void 0===t||t.on(\"start\",b),Object.entries(y).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",b),Object.entries(y).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function Tr(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=jr({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==vr||(t.lasso.action(!0),n=!0)},o=function(e){e.key===vr&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var Fr=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function Lr(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,c=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=(d=void 0===d?{}:d).clear,v=d.reset,h=i.selectionEvents,m=void 0===h?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:h,g=i.brushEvents,y=void 0===g?{}:g,b=i.brushName,x=void 0===b?\"selection\":b,q=i.brushMaxListeners,w=void 0===q?20:q,k=i.brushRanges,D=void 0!==k&&k,C=i.interceptors,M=void 0===C?{}:C,S=i.selectionsFn,I=void 0===S?o.selections:S,A=t.brush(x);if(\"number\"==typeof w&&A.setMaxListeners(w),D){var O=!0===D?Fr:D;A.configure({ranges:O})}var N={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,singleSelectDims:[],selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},E=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,l=void 0===u?\"/qHyperCubeDef\":u;if(!n)return{layout:function(){},allowSimultaneous:function(){},release:function(){}};var c=++gr,s=null,f=[],d={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var p=hr({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:f}}}),v=p.rangeInterceptor,h=p.interceptor;r.intercept(\"set-ranges\",v),r.intercept(\"toggle-ranges\",v),r.intercept(\"toggle-values\",h),r.intercept(\"set-values\",h),r.intercept(\"add-values\",h),r.on(\"start\",(function(){return n.begin(l)}));var m={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};qr(n,m);var g=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(d=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){a(r,d,s).forEach((function(e){kr(e,i.select.brushSelectionIncludeMax,g),n.select(e)}))}))):r.on(\"update\",(function(){a(r,d,s).forEach((function(e){return n.select(e)}))})),0===mr.length&&br(),mr.push({key:c,selections:n}),{layout:function(e){s=e},allowSimultaneous:function(e){f=e},release:function(){s=null;var e=mr.indexOf(mr.filter((function(e){return e.key===c}))[0]);-1!==e&&mr.splice(e,1),mr.length||xr(),wr(n,m)}}}({brush:A,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:I});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:A,interceptors:M});var P=Tr({chart:t,brush:A,actions:n,selections:r,selectionInfo:N.selectionInfo,selectionActions:{clear:p,reset:v},selectionEvents:m,brushEvents:y});if(c){var j=!0===c?l(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):c;E.allowSimultaneous(j)}return{unbindEvents:P,state:N,picassoSelections:E,brush:A}}function Hr(e){var t=e.chart,n=e.selections,r=e.actions,o=void 0!==r&&r,u=e.config,l=void 0===u?{}:u,c=Lr({chart:t,actions:o,selections:n,picassoQ:ar,config:l}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,v=l.custom,h=void 0===v?{}:v,m=l.legendAlias,g=void 0===m?void 0:m,y=l.setBrushAliases,b=void 0===y?sr:y;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==n||null===(t=n.isLocked)||void 0===t?void 0:t.call(n))&&void 0!==e?e:cr(r)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=lr({selections:n,picassoSelections:d,layout:e});Object.assign(f,t)},setBrushAliases:function(e){var t=e.colorField,n=e.useLegendCube,r=void 0!==n&&n,o=a(e,[\"colorField\",\"useLegendCube\"]),u=i({useLegendCube:r,colorField:t,brush:p,legendAlias:g},o);b(i(i({},u),{},{defaultFunc:function(){return sr(u)}}))},destroy:function(){s(),d.release()},custom:i({},h)}}var zr=\"QlikView Sans, sans-serif\",Rr=\"#333333\",Vr=\"#595959\",Br=\"#737373\",_r=\"#cccccc\",Ur=\"#e6e6e6\";function Kr(e){var t={};return[].concat(l(e),l([[\"\",\"\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",zr],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.label.name\",\"fontFamily\",zr],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.label.name\",\"color\",Vr],[\"object\",\"axis.line.major\",\"color\",_r],[\"object\",\"axis.line.minor\",\"color\",Ur],[\"object\",\"grid.line.major\",\"color\",_r],[\"object\",\"grid.line.minor\",\"color\",Ur],[\"object\",\"grid.line.highContrast\",\"color\",Ur],[\"object\",\"referenceLine.label.name\",\"fontFamily\",zr],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.label.name\",\"color\",Rr],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",zr],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",Ur],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",Br,function(e){return\"transparent\"===e?Br:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}function Yr(e,t){var n={};return e.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],a=r[2],l=r[3],c=r[4],s=(void 0===c?function(e){return e}:c)(function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;if(!e||!1===t)return o;var i=e.getStyle(t,n,r);return void 0===i?o:i}(t,o,i,a,l));Ge(n,[i,a].filter(Boolean).join(\".\"),s)})),n}function $r(e){var t=e.theme,n=e.styleMatrix,r={theme:t,styleMatrix:Kr(void 0===n?[]:n),styles:void 0};return r.styles=Yr(r.styleMatrix,t),{getStyles:function(){return r.styles},getTheme:function(){return r.theme},setTheme:function(e){r.theme=e,r.styles=Yr(r.styleMatrix,e)}}}var Wr={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var Jr=\"chart-modules-tooltip\",Gr=\"#\".concat(Jr);function Qr(){if(!document.querySelector(Gr)){var e=document.createElement(\"div\");e.id=Jr,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function Xr(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){Qr()},beforeUpdate:function(){Qr()},destroyed:function(){var e;null!=(e=document.querySelector(Gr))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(Gr)},direction:e.rtl?\"rtl\":\"ltr\"},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"QlikView Sans, sans-serif\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var Zr={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},eo=function(e){return e.data.value},to=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function no(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=e.triggerer,a=r.from,c={chart:t,nodes:n,collectConfig:r,collectibles:o,triggerer:i};switch(\"function\"==typeof a?\"custom\":a){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(c);case\"position\":return function(e){return e.nodes}(c);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,c=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?eo:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?to:r,a=Zr[n.type]||n.type;return e.push.apply(e,l(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(c)}(c);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0].localBounds,a=r.distance,l=r.filter,c=\"function\"==typeof l?l:function(){return!0},s=o.map((function(e){return e.key})),f=u(s,1)[0],d=t.component(f).rect,p=d.scaleRatio,v=d.computedInner,h=i.width*p.x,m=i.height*p.y,g=i.x*p.x+h/2+v.x,y=i.y*p.y+m/2+v.y,b=void 0===a?Math.max(h,m):a;return t.shapesAt({cx:g,cy:y,r:b},{components:s.map((function(e){return{key:e}}))}).filter((function(e){return c({data:e.data})}))}(c);case\"custom\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.triggerer;return r.from({chart:t,nodes:n,meta:{triggerer:o}})}(c);default:return[]}}var ro=Number.MAX_VALUE;function oo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:ro,xMax:-ro,yMin:ro,yMax:-ro}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function io(e){var t=e.chart,n=e.config,r=e.placementConfig,o=e.hovered,i=e.collected,a=e.triggerer,l=function(e){for(var t=e.chart,n=e.config,r=e.placementConfig,o=e.hovered,i=e.collected,a=u(o,1)[0],l=Array.isArray(r)?r:[r],c={bounds:a.bounds,key:a.key},s=0;s<l.length;s++){var f=l[s];if(\"function\"==typeof f){var d=f({chart:t,node:a,nodes:i});if(d)return d}if(\"trigger\"===f)return c;if(\"collectible\"===f){var p=n.main.placements.collectible;return{bounds:\"function\"==typeof p?p({nodes:i}):oo({nodes:i}),key:i[0].key}}}return c}({chart:t,config:n,placementConfig:r,hovered:o,collected:i}),c=l.bounds,s=l.key,f=u(i,1)[0].desc;return[{bounds:c,nodes:i,data:i.map((function(e){return e.data})),key:s,meta:{triggerer:a},desc:f}]}function ao(e){var t=e.chart,n=e.config,r=e.nodes;if(!r.length)return[];var o=u(r,1)[0].key,i=n.main.collectibles;if(!i.length)return[];var a=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(o)}))||{},l=a.collect,c=a.placement;if(!l||!l.from||!c)return[];var s=no({chart:t,nodes:r,collectConfig:l,collectibles:i,triggerer:o}).map((function(e){return e.children.length?e.children[0]:e}));return s.length?io({chart:t,config:n,placementConfig:c,hovered:r,collected:s,triggerer:o}):[]}var uo=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",lo=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",co=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),so=new RegExp(uo),fo=new RegExp(lo),po=function(e){return co.test(e)},vo=function(e){return so.test(e)||fo.test(e)};function ho(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if(po(r))return\"ltr\";if(vo(r))return\"rtl\"}return\"ltr\"}function mo(e){var t=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:i(i({},{count:!1}),t)}}function go(e){var t=e.config,n=e.h,r=e.context,o=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=t.rtl,f={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:i(i({},{count:!0}),c)},d=t.getColorSettings();if(\"color\"===d.type||!d.fieldType)return f;var p=u(o,1)[0];if(f.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node.data[r];if(o){var i=n.resources.dataset(o.source.key).field(o.source.field).formatter(),a=o.value,u=o.label,l=t.getColorSettings();if(i&&\"measure\"===l.fieldType)return Number.isNaN(+a)?\"-\":i(o.value);var c=u||a;return void 0===c||Number.isNaN(c)||\"NaN\"===c?\"-\":c}}({config:t,context:r,property:a,node:p}),void 0===f.value)return f;f.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var u=n.resources.dataset,l=a.source,c=l.key,s=l.field;return u(c).field(s).title()}}({config:t,context:r,property:a,node:p});var v=n(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:p}),margin:\"0 8px\"}});return f.content.push({content:s?[\":\",f.label]:[f.label,\":\"],style:{\"text-align\":s?\"right\":\"left\",direction:ho(f.label)}},{content:s?[f.value,v]:[v,f.value],style:{\"text-align\":s?\"left\":\"right\",\"vertical-align\":\"middle\",direction:ho(f.value)}}),f}function yo(e){var t=e.config,n=e.h,r=e.context;return{section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var n=e.value,r=e.style,o=e.visibility;return function(e){var t=e.config,n=e.value,r=e.style,o=(r=void 0===r?{}:r).bold,a=void 0!==o&&o,u=r.italic,l=void 0!==u&&u,c=e.visibility;return{type:\"text\",content:[{content:n,style:{\"font-weight\":a?\"bold\":\"normal\",\"font-style\":l?\"italic\":\"normal\",\"text-align\":t.rtl?\"right\":\"left\",direction:ho(n)},colspan:2}],visibility:i(i({},{count:!0}),c)}}({config:t,value:n,style:r,visibility:o})},measure:function(e){var n=e.label,r=e.value,o=e.style,a=e.survive,u=e.visibility;return function(e){var t,n,r,o,a=e.config,u=e.label,l=e.value,c=e.style,s=e.survive,f=e.visibility,d=a.rtl;return{type:\"measure\",label:u,value:l,content:[{content:d?[\":\",u]:[u,\":\"],style:{\"text-align\":d?\"right\":\"left\",\"font-weight\":null!=c&&null!==(t=c.label)&&void 0!==t&&t.bold?\"bold\":\"normal\",\"font-style\":null!=c&&null!==(n=c.label)&&void 0!==n&&n.italic?\"italic\":\"normal\",direction:ho(u)}},{content:l,style:{\"text-align\":d?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=c&&null!==(r=c.value)&&void 0!==r&&r.bold?\"bold\":\"normal\",\"font-style\":null!=c&&null!==(o=c.value)&&void 0!==o&&o.italic?\"italic\":\"normal\",direction:ho(l)}}],survive:i(i({},{color:!1,duplicate:!1}),s),visibility:i(i({},{count:!0}),f)}}({config:t,label:n,value:r,style:o,survive:a,visibility:u})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return mo({visibility:t})},row:function(e){return function(e){var t=e.content,n=e.style,r=e.colspan,o=e.visibility;return{type:\"row\",content:[{content:t,style:n,colspan:r}],visibility:i(i({},{count:!0}),o)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var t=e.value,n=e.visibility;return{type:\"raw\",content:t,visibility:i(i({},{count:!0}),n)}}({value:e.value,visibility:e.visibility})},color:function(e){var o=e.nodes,i=e.property,a=e.filter,u=void 0===a||a,l=e.visibility;return go({config:t,h:n,context:r,nodes:o,property:i,filter:u,visibility:l})}}}function bo(e){var t=e.translator,n=e.config,r=e.templates,o=function(e){var t=e.limit,n=e.grouping,r={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var o=e.visibility,i=e.index;if(r.count>=t){if(!n)return r.overflow++,!1;if(r.index.started!==i)return r.index.group!==i&&(r.overflow++,r.index.group=i),!1}return o.count&&r.count++,n&&(r.index.started=i),!0},overflow:function(){return r.overflow}}}({limit:n.main.layout.rows,grouping:n.main.layout.grouping}),i=r.reduce((function(e,t,n){var i=t.type,a=t.content;\"section\"===i&&(void 0===a?[]:a).forEach((function(t){o.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var u=n===r.length-1;return\"divider\"!==i||u||o.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),a=o.overflow();return a&&i.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=ho(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:a})),i}function xo(e){var t=e.chart,n=e.translator,r=e.config,o=e.h,a=e.data,c=e.style,s=u(a,1)[0],f=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]=[]),e[r].push(n),e}),{});return Object.keys(n).map((function(e){return n[e]}))}({config:r,nodes:s.node.nodes}),d=function(e){var t=e.chart,n=e.config,r=e.h,o=e.context,i=e.groups,a=o.node.meta,u=o.resources,c=u.dataset,s=u.formatter,f=yo({config:n,h:r,context:o}),d=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:c}),p=i.map((function(e){var t=f.section({content:l((n.main.section({h:r,nodes:e,dataset:c,formatter:s,meta:a,create:f,util:d})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,h:r,nodes:o.node.nodes,dataset:c,formatter:s,meta:a,create:f,util:d,sections:p}),p.filter(Boolean)}({chart:t,config:r,h:o,context:s,groups:f}),p=bo({translator:n,config:r,h:o,templates:d});return p.length?function(e){var t=e.h,n=e.style;return e.rows.map((function(e){return t(\"tr\",{},e.map((function(e){var r={style:i(i({},n.cell||{}),e.style||{}),class:e.class};return e.colspan&&(r.colspan=e.colspan),t(\"td\",r,e.content)})))}))}({h:o,style:c,rows:p}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:o})}function qo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando;if(!r.main.key)return!1;var i=r.main,a=i.delay,u=i.duration,l=Qe(),c=Xr({key:r.main.key,rtl:r.rtl}),s=r.main.events.tooltip,f=s.afterShow,d=s.afterHide,p=function(){return{expando:o,nodes:l.get(\"collected\")}};return b(!0,c,{settings:{filter:function(e){return ao({chart:t,config:r,nodes:e})},extract:function(e){return l.set(\"collected\",e.node.nodes),e},content:function(e){var o=e.h,i=e.data,a=e.style;return xo({chart:t,translator:n,config:r,h:o,data:i,style:a})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},delay:a,duration:u,afterShow:function(){return f(p())},afterHide:function(){return d(p())}},style:{arrow:{color:r.style.background},content:r.style}})}function wo(e){var t=e.config,n=t.legend.keys;if(!n.tooltip||!n.component)return!1;if(\"categorical\"!==t.getColorSettings().type)return!1;var r=Xr({key:n.tooltip,rtl:t.rtl});return b(!0,r,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===n.component}))},extract:function(e){return e},content:function(e){var t=e.h,n=e.data;return[t(\"tr\",{},[t(\"td\",{style:i(i({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},n[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:t.style.background},content:t.style}})}function ko(e){var t=e.chart,n=e.e,r=t.element.getBoundingClientRect(),o=r.left,i=r.top;return{x:(n.center?n.center.x:n.clientX)-o,y:(n.center?n.center.y:n.clientY)-i}}function Do(e){var t=e.chart,n=e.config,o=e.expando,i=e.facade,a=n.main.triggers.reduce((function(e,t){return e.push.apply(e,l(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==a.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:r({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType){var r=t.component(n.main.key);if(r&&r.show){var a=ko({chart:t,e:e}),u=t.shapesAt(a);u.length?n.main.events.tooltip.beforeShow({expando:o,event:e,collectNodes:function(){return i.collectNodes({nodes:u})}}).then((function(){r.emit(\"show\",e,{nodes:u})})).catch((function(){})):r.emit(\"hide\")}}}))}}function Co(e){var t=e.config,n=e.expando,r=e.facade,o=t.main.events.tooltip.beforeShow,i={ongoing:{},latest:void 0};return function(e){var t=e.event,a=e.tooltip,u=e.nodes,l=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){return{key:e.key,bounds:e.bounds,value:e.data.value}})))}({nodes:u});i.ongoing[l]||(i.ongoing[l]=!0,i.latest=l,o({expando:n,event:t,collectNodes:function(){return r.collectNodes({nodes:u})}}).then((function(){l===i.latest&&a.emit(\"show\",t,{nodes:u})})).catch((function(){})).finally((function(){delete i.ongoing[l],l===i.latest&&(i.latest=void 0)})))}}function Mo(e){var t=e.chart,n=e.config,r=e.expando,o=e.facade,i=Co({config:n,expando:r,facade:o}),a=[n.main.key,n.legend.keys.tooltip].filter(Boolean),u=function(){a.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))},c=n.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r;e[n]=\"radius\"===(null===(r=t.collect)||void 0===r?void 0:r.from)})),e}),{});return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),o=t.component(n.main.key);if(o&&o.show){var a=r.filter((function(e){return void 0!==c[e.key]})).reduce((function(e,t){return e.any=!0,(c[t.key]?e.radius:e.position).push(t.key),e}),{any:!1,radius:[],position:[]});if(a.any){var u=ko({chart:t,e:e}),s=u.x,f=u.y,d=[];if(a.position.length&&d.push.apply(d,l(t.shapesAt({x:s,y:f},{components:a.position.map((function(e){return{key:e}}))}))),!d.length&&a.radius.length){var p=t.shapesAt({cx:s,cy:f,r:n.main.distance},{components:a.radius.map((function(e){return{key:e}}))});p.length&&d.push(function(e){var t=e.nodes,n=e.origin,r=e.offset,o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2+r.x)),o=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2+r.y));return Math.sqrt(t*t+o*o)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:p,origin:{x:s,y:f},offset:r.filter((function(e){return e.key===a.radius[0]}))[0].rect.computedInner}))}if(!d.length)return void o.emit(\"hide\");i({event:e,tooltip:o,nodes:d})}else o.emit(\"hide\")}var v=n.legend;if(v.keys.tooltip&&v.keys.component){var h=t.component(v.keys.tooltip);h&&h.show&&(r.some((function(e){return e.key===v.keys.component}))?h.emit(\"show\",e):h.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&u()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),u()},wheel:function(){u()}}}}function So(e){var t=e.chart,n=e.config,r=e.expando,o=function(e){var t=e.chart,n=e.config;return{collectNodes:function(e){var r=e.nodes;return u(ao({chart:t,config:n,nodes:r}),1)[0].nodes}}}({chart:t,config:n});return{gestures:[Do({chart:t,config:n,expando:r,facade:o})],native:Mo({chart:t,config:n,expando:r,facade:o})}}function Io(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return b(!0,{},{rtl:!1,enable:Wr.FALSE,getColorSettings:Wr.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},main:{key:void 0,suppress:Wr.FALSE,getGroupByValue:Wr.NOOP,delay:500,duration:8e3,distance:4,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1},section:Wr.ARRAY,sections:Wr.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:Wr.NOOP,afterHide:Wr.NOOP},interaction:{mouseleave:Wr.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=Qe(),i={components:void 0,interactions:void 0};return{getComponents:function(){return i.components||(i.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[qo({chart:t,translator:n,config:r,expando:e.expando}),wo({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o})),i.components},getInteractions:function(){return i.interactions||(i.interactions=So({chart:t,config:r,expando:o})),i.interactions},expando:o}}export{Qe as cache,He as colorService,et as debouncer,We as dockService,Je as getValue,ot as layoutService,Xe as memoize,at as pluginService,Hr as selectionService,Ge as setValue,Ze as storage,$r as themeService,tt as throttler,Io as tooltipService};\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: -10,\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction axis(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'axis.line.major', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const labelsFill = options.theme.getStyle(chartID, 'axis.label.name', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'axis.label.name', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n const labelsFontFamily = options.theme.getStyle(chartID, 'axis.label.name', 'fontFamily');\n\n const defaultSettings = {\n key: 'axis',\n type: 'axis',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl),\n brush: { trigger: [], consume: [] },\n settings: {\n title: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n line: {\n show: true,\n strokeWidth: 1,\n stroke: axisLineStroke,\n },\n labels: {\n fill: labelsFill,\n fontSize: labelsFontSize,\n fontFamily: labelsFontFamily,\n tiltAngle: isRtl ? -40 : 40,\n maxEdgeBleed: 75,\n maxSize: 150,\n mode: 'auto',\n },\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxis(settings, options) {\n const defaultSettings = {\n key: 'x-axis',\n scale: 'x',\n };\n const xAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(xAxisSettings, options);\n}\n\nfunction yAxis(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis',\n scale: 'y',\n dock: axisDockUtil.getYAxisDock(dock, isRtl),\n };\n const yAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(yAxisSettings, options);\n}\n\naxis.xAxis = xAxis;\naxis.yAxis = yAxis;\n\nexport default axis;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction text(settings, options) {\n const chartID = options && options.chartID;\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n\n const defaultSettings = {\n key: 'text',\n type: 'text',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl) || 'bottom',\n displayOrder: 0, // TODO: This can be removed when picasso set displayOrder for text component to 0. Currently picasso set it to 99.\n style: {\n text: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxisTitle(settings, options) {\n const defaultSettings = {\n key: 'x-axis-title',\n };\n const xAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(xAxisTitleSettings, options);\n}\n\nfunction yAxisTitle(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis-title',\n dock: axisDockUtil.getYAxisDock(dock, isRtl) || 'left',\n };\n const yAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(yAxisTitleSettings, options);\n}\n\ntext.xAxisTitle = xAxisTitle;\ntext.yAxisTitle = yAxisTitle;\n\nexport default text;\n","function getBublesAlign(isHorizontal, dock, isRtl) {\n let isAlignStart = (isHorizontal && dock !== 'far') || (!isHorizontal && dock === 'far');\n if (!isHorizontal && isRtl) {\n isAlignStart = !isAlignStart;\n }\n return isAlignStart ? 'start' : 'end';\n}\n\nfunction getDock(brushAxis, brushArea) {\n const dockTargets = [];\n let dockT;\n if (brushAxis) {\n dockTargets.push(`@${brushAxis}`);\n }\n if (brushArea) {\n dockTargets.push(`@${brushArea}`);\n }\n if (dockTargets.length) {\n dockT = dockTargets.join(',');\n }\n return dockT;\n}\n\nexport default {\n getBublesAlign,\n getDock,\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nconst layoutModes = {\n SPARK: { width: 0, height: 0 },\n XSMALL: { width: 150, height: 75 },\n SMALL: { width: 300, height: 150 },\n MEDIUM: { width: 400, height: 220 },\n FULL: { width: 550, height: 450 },\n};\n\nfunction LayoutModes() {\n return layoutModes;\n}\n\nLayoutModes.getLayoutModeKeys = function () {\n const layoutModeKeys = [];\n let modeKey;\n\n for (modeKey in layoutModes) {\n layoutModeKeys.push(modeKey);\n }\n return layoutModeKeys;\n};\n\nexport default LayoutModes;\n","import extend from 'extend';\n\nfunction getLabel(context) {\n const end = context.data.end;\n const formatter = context.dataset(end.source.key).field(end.source.field).formatter();\n return formatter(end.value);\n}\n\nfunction labels(settings, options) {\n const chartID = options && options.chartID;\n const labelsFill = options.theme.getStyle(chartID, 'label.value', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'label.value', 'fontSize');\n const labelsFontFamily = options.theme.getStyle(chartID, 'label.value', 'fontFamily');\n\n const defaultSettings = {\n key: 'labels',\n type: 'labels',\n displayOrder: 1,\n settings: {\n sources: [\n {\n component: 'box-marker', // Connects with the matching \"key:\" attribute in the visualizations\n selector: 'rect',\n strategy: {\n type: 'bar',\n settings: {\n direction: 'up',\n fontFamily: labelsFontFamily,\n fontSize: parseFloat(labelsFontSize),\n align: 0.5,\n labels: [\n {\n placements: [\n {\n position: 'outside',\n fill: labelsFill,\n justify: 0,\n },\n {\n position: 'inside',\n fill: settings && settings.settings.sources[0].strategy.settings.labels[0].placements[1].fill,\n justify: 1,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default labels;\n","import extend from 'extend';\n\nconst directions = {\n left: 'left',\n right: 'right',\n up: 'top',\n down: 'bottom',\n};\n\nfunction legend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = (options && options.dock) || 'auto';\n const show = options && options.show;\n\n if (dock === 'auto') {\n dock = options.chartHeight / options.chartWidth < 1 ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const itemFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const itemFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const itemFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n const defaultSettings = {\n key: 'legend',\n type: 'legend-cat',\n dock,\n show,\n\n scale: {\n type: 'color',\n },\n settings: {\n title: {\n anchor: 'middle',\n },\n layout: {\n direction: isRtl ? 'rtl' : 'ltr',\n size: dock === 'top' || dock === 'bottom' ? 2 : 1,\n vertical: dock === 'top' || dock === 'bottom' ? 16 : 8,\n },\n navigation: {\n button: {\n class: {\n 'lui-fade-button': true,\n },\n content(h, state) {\n const c = ['lui-button__icon', 'lui-icon', `lui-icon--triangle-${directions[state.direction]}`];\n return h('span', {\n style: {\n pointerEvents: 'none',\n },\n class: c.join(' '),\n });\n },\n },\n },\n },\n style: {\n item: {\n label: {\n fontSize: itemFontSize,\n fontFamily: itemFontFamily,\n fill: itemFill,\n lineHeight: 1,\n wordBreak: 'break-word',\n },\n margin: {\n top: 5,\n left: 10,\n right: 10,\n bottom: 10,\n },\n shape: {\n type: options.type ? options.type : 'square',\n size: (parseInt(itemFontSize, 10) * 3) / 4, // To make it consistent with non-picasso charts\n },\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings);\n}\n\nexport default legend;\n","import extend from 'extend';\nimport ChartPresets from './chart-presets';\nimport scale from './scale';\nimport axis from './components/axis';\nimport boxMarker from './components/box-marker';\nimport eventArea from './components/event-area';\nimport gridLine from './components/grid-line';\nimport interaction from './components/interaction';\nimport pointMarker from './components/point-marker';\nimport scrollbar from './components/scrollbar';\nimport text from './components/text';\nimport lasso from './components/lasso';\nimport range from './components/range';\nimport refLine from './components/ref-line';\nimport layoutModes from './layout-modes';\nimport labels from './components/labels';\nimport categoricalLegend from './components/categorical-legend';\nimport sequentialLegend from './components/sequential-legend';\nimport rangeArea from './components/range-area';\n\nfunction createComponent(type, settings, options) {\n switch (type) {\n // Picasso components\n case 'scale':\n return scale(settings, options);\n case 'measure-scale':\n return scale.measureScale(settings, options);\n case 'dimension-scale':\n return scale.dimensionScale(settings, options);\n case 'axis':\n return axis(settings, options);\n case 'box-marker':\n return boxMarker(settings, options);\n case 'point-marker':\n return pointMarker(settings, options);\n case 'scrollbar':\n return scrollbar(settings, options);\n case 'text':\n return text(settings, options);\n case 'lasso':\n return lasso(settings, options);\n case 'range':\n return range(settings, options);\n case 'range-area':\n return rangeArea(settings, options);\n case 'categorical-legend':\n return categoricalLegend(settings, options);\n case 'sequential-legend':\n return sequentialLegend(settings, options);\n // Wrapepd picasso components\n case 'x-axis':\n return axis.xAxis(settings, options);\n case 'y-axis':\n return axis.yAxis(settings, options);\n case 'x-axis-title':\n return text.xAxisTitle(settings, options);\n case 'y-axis-title':\n return text.yAxisTitle(settings, options);\n case 'grid-line':\n return gridLine(settings, options);\n case 'interaction':\n return interaction(settings, options);\n case 'ref-line':\n return refLine(settings, options);\n // Custom components\n case 'event-area':\n return eventArea(settings, options);\n case 'labels':\n return labels(settings, options);\n default:\n return undefined;\n }\n}\n\nfunction ChartBuilder(options) {\n this.options = options || {};\n\n this.settings = {\n dockLayout: {\n layoutModes: layoutModes(),\n },\n components: [],\n scales: {},\n };\n}\n\nChartBuilder.prototype.addComponent = function addComponent(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent(type, settings, extendedOptions);\n this.settings.components.push(component);\n return component;\n};\n\nChartBuilder.prototype.addInteraction = function addInteraction(settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent('interaction', settings, extendedOptions);\n if (!this.settings.interactions) {\n this.settings.interactions = [];\n }\n this.settings.interactions.push(component);\n return component;\n};\n\nChartBuilder.prototype.addScale = function addScale(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const scale = createComponent(type, settings, extendedOptions);\n this.settings.scales[scale.name] = scale.component;\n};\n\nChartBuilder.prototype.getSettings = function getSettings() {\n return this.settings;\n};\n\nChartBuilder.prototype.getComponent = function getComponent(key) {\n return this.settings.components.filter((component) => component.key === key)[0];\n};\n\nChartBuilder.prototype.addPreset = function addPreset(type, options) {\n ChartPresets(type, this, options);\n};\n\nChartBuilder.validateComponentKeys = function validateComponentKeys(components) {\n const keys = {};\n return components\n .map((component) => {\n const key = component.key;\n if (!key) {\n return `Missing key for component ${component.type}`;\n }\n if (keys[key]) {\n return `Duplicate key for component ${component.type}`;\n }\n keys[key] = true;\n return null;\n })\n .filter((msg) => !!msg);\n};\n\n/*\n * Factory function\n */\nChartBuilder.create = function (options) {\n return new ChartBuilder(options);\n};\n\nChartBuilder.createComponent = createComponent;\n\nexport default ChartBuilder;\n","import extend from 'extend';\n\nfunction boxMarker(settings) {\n const defaultSettings = {\n key: 'box-marker',\n type: 'box-marker',\n settings: {\n minor: { scale: 'x' },\n orientation: 'horizontal',\n },\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default boxMarker;\n","import extend from 'extend';\n\nfunction pointMarker(settings) {\n const defaultSettings = {\n key: 'point-marker',\n type: 'point-marker',\n settings: {},\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default pointMarker;\n","import extend from 'extend';\n\nfunction scrollbar(settings, options) {\n const isRtl = options && options.isRtl;\n const chartID = options && options.chartID;\n const isHorizontal = options && options.isHorizontal;\n const defaultSettings = {\n key: 'scrollbar',\n type: 'scrollbar',\n scroll: 'dimension',\n dock: isHorizontal ? 'bottom' : isRtl ? 'left' : 'right',\n settings: {\n backgroundColor: options.theme.getStyle(chartID, '', 'backgroundColor'),\n invert: isRtl && isHorizontal,\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default scrollbar;\n","import extend from 'extend';\n\nfunction lasso(settings, options) {\n const brushKey = options && options.brushKey;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n\n const defaultSettings = {\n type: 'brush-lasso',\n key: 'lasso',\n displayOrder: 99,\n settings: {\n brush: {\n components: [],\n },\n lasso: {\n fill: 'rgba(0, 0, 0, 0)',\n stroke: 'rgba(102,102,102,1)',\n strokeWidth: 2,\n opacity: 1,\n strokeDasharray: null, // '10, 4',\n },\n startPoint: {\n r: 10,\n fill: 'rgba(0, 152, 69, 1)',\n strokeWidth: 0,\n opacity: 1,\n },\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default lasso;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction range(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushArea = options && options.brushArea;\n const brushScale = options && options.brushScale;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n\n const defaultSettings = {\n type: 'brush-range',\n key: 'range',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: brushKey,\n fill: 'rgba(0, 0, 0, 0)',\n scale: brushScale,\n multiple: options && options.multiple === false ? options.multiple : true,\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default range;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction rangeArea(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n const brushArea = options && options.brushArea;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const chartInstance = options && options.chartInstance;\n let isStartBorder = true;\n\n const defaultSettings = {\n type: 'brush-area-dir',\n key: 'area',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: {\n components: [],\n },\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n label(data) {\n if (isStartBorder) {\n isStartBorder = false;\n const formattedStartValue = chartInstance\n .dataset(data.binStart.source.key)\n .field(data.binStart.source.field)\n .formatter()(data.binStart.value);\n return formattedStartValue;\n }\n isStartBorder = true;\n const formattedEndValue = chartInstance\n .dataset(data.binEnd.source.key)\n .field(data.binEnd.source.field)\n .formatter()(data.binEnd.value);\n return formattedEndValue;\n },\n },\n multiple: options && options.multiple === false ? options.multiple : true,\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n action: 'add',\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default rangeArea;\n","import extend from 'extend';\n\nfunction sequentialLegend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = options.dock || 'auto';\n\n if (dock === 'auto') {\n dock = options.chartHeight < options.chartWidth ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const tickFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const tickFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const tickFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n function getAlignValue(word) {\n switch (word) {\n case 'left':\n return 0;\n case 'right':\n return 1;\n case 'middle':\n default:\n return 0.5;\n }\n }\n\n const defaultSettings = {\n key: 'seqlegend',\n type: 'legend-seq',\n dock,\n\n // Settings to position the legend outside of the axis\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n\n settings: {\n align: isRtl ? getAlignValue('right') : getAlignValue('left'),\n major: {\n invert: dock === 'left' || dock === 'right' || isRtl,\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n tick: {\n fill: tickFill,\n fontSize: tickFontSize,\n fontFamily: tickFontFamily,\n },\n },\n };\n const finalSettings = extend(true, {}, defaultSettings, settings);\n return finalSettings;\n}\n\nexport default sequentialLegend;\n","import extend from 'extend';\n\nfunction gridLine(settings, options) {\n const chartID = options && options.chartID;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'grid.line.major', 'color');\n\n const defaultSettings = {\n displayOrder: -1,\n key: 'grid-line',\n type: 'grid-line',\n x: null,\n y: null,\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default gridLine;\n","import extend from 'extend';\n\nfunction interaction(settings, options) {\n const gestures = (options && options.gestures) || [];\n const defaultSettings = {\n type: 'hammer',\n key: 'hammered',\n gestures,\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default interaction;\n","import extend from 'extend';\n\nfunction refLine(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const oobColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'color');\n const oobBackgroundColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'backgroundColor');\n\n const defaultSettings = {\n key: 'ref-line',\n type: 'ref-line',\n dock: 'center',\n prioOrder: -1,\n lines: {\n x: [],\n y: [],\n },\n style: {\n oob: {\n width: 7,\n fill: oobBackgroundColor,\n text: {\n fill: oobColor,\n },\n padding: {\n x: 7,\n y: 5,\n },\n },\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default refLine;\n","import extend from 'extend';\n\nfunction eventArea(settings) {\n const defaultSettings = {\n type: 'event-area',\n key: 'event-area',\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default eventArea;\n","import DimensionMeasureChart from './presets/dimension-measure-chart/dimension-measure-chart';\n\nfunction ChartPresets(type, chartBuilder, options) {\n switch (type) {\n case 'dimension-measure-chart':\n DimensionMeasureChart(chartBuilder, options);\n break;\n default:\n throw Error('There is no chart preset with that type');\n }\n}\n\nexport default ChartPresets;\n","/**\n * Configuration for disclaimers\n *\n */\n\n/**\n * Placement on chart\n */\nconst ALIGNMENT = {\n CENTER: 0,\n BOTTOM: 1,\n};\n\n/**\n * Configuration of all disclaimers\n *\n * label - key for translation\n * alignment - Placement on chart\n * default - Supported by default. If 'false' the disclaimer needs to be set to 'true' in supportedDisclaimers to be valid\n */\nconst DISCLAIMERS = [\n {\n label: 'NoDataExist',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'RequireNumericDimension',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'OnlyNanData',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'OnlyNegativeOrZeroValues',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'LimitedData',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'OnlyNanColor',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'NegativeOrZeroValues',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'DataRangeIncludingZero',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n];\n\nexport default {\n DISCLAIMERS,\n ALIGNMENT,\n};\n","/**\n * Disclaimer utility for setting attributes needed for the disclaimer component\n *\n * @exports objects.picasso/disclaimer/disclaimer-attributes-utils\n */\nimport DisclaimersConfig from './disclaimers-config';\n\n/**\n * Checks if the data range in measures and axis spans over the value 0\n * @ignore\n * @param measureAxis\n * @param measureInfo\n * @returns {boolean} True if the data range in any measure or the given axis spans over 0\n */\nfunction hasDataRangeIncludingZero(measureAxis, measureInfo) {\n const len = measureInfo.length;\n let i;\n let explicitMinOn;\n let explicitMaxOn;\n let min;\n let max;\n if (measureAxis) {\n explicitMinOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'min' || measureAxis.minMax === 'minMax') &&\n measureAxis.min !== null &&\n !Number.isNaN(+measureAxis.min);\n explicitMaxOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'max' || measureAxis.minMax === 'minMax') &&\n measureAxis.max !== null &&\n !Number.isNaN(+measureAxis.max);\n }\n min = Number.MAX_VALUE;\n max = -Number.MAX_VALUE;\n\n // return true if data contains zero\n for (i = 0; i < len; i++) {\n min = Math.min(min, measureInfo[i].qMin);\n max = Math.max(max, measureInfo[i].qMax);\n if (min <= 0 && max >= 0) {\n return true;\n }\n }\n\n // return true if axis explicits contains zero\n min = explicitMinOn ? measureAxis.min : min;\n max = explicitMaxOn ? measureAxis.max : max;\n return min <= 0 && max >= 0;\n}\n\nfunction hasSubNodes(stackedDataPages) {\n return (\n stackedDataPages && stackedDataPages[0] && stackedDataPages[0].qData[0] && stackedDataPages[0].qData[0].qSubNodes\n );\n}\n\nconst util = {\n getNoDataExistAttribute(qHyperCube) {\n return qHyperCube.qSize.qcy * qHyperCube.qSize.qcx === 0;\n },\n\n getLimitedDataAttribute(qHyperCube, opts) {\n let result = false;\n let maxNbrOfDimensions;\n if (!qHyperCube) {\n result = opts.explicitLimitedData === true;\n } else if (opts.explicitLimitedData !== undefined) {\n result = opts.explicitLimitedData === true;\n } else if (qHyperCube.qDataPages && qHyperCube.qDataPages[0]) {\n result = !opts.paging && qHyperCube.qSize.qcy > qHyperCube.qDataPages[0].qMatrix.length;\n } else if (hasSubNodes(qHyperCube.qStackedDataPages)) {\n maxNbrOfDimensions = opts.maxNbrOfDimensions ? opts.maxNbrOfDimensions : 2;\n if (qHyperCube.qDimensionInfo.length >= maxNbrOfDimensions) {\n result = qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.some((node) => node.qDown > 0);\n } else {\n result =\n qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.length < qHyperCube.qStackedDataPages[0].qArea.qHeight;\n }\n }\n return result;\n },\n\n getNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return !opts.supportNegative && qHyperCube.qMeasureInfo.some((measure) => measure.qMin <= 0);\n },\n\n getOnlyNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return (\n (!opts.supportNegative &&\n qHyperCube.qMeasureInfo.every((measure) => measure.qMax <= 0 && measure.qMax >= measure.qMin)) ||\n qHyperCube.qSize.qcy === 0\n );\n },\n\n getOnlyNanDataAttribute(qHyperCube, opts) {\n if (opts.explicitOnlyNanData !== undefined) {\n return opts.explicitOnlyNanData;\n }\n\n return qHyperCube.qMeasureInfo.every((measure) => measure.qMax < measure.qMin || measure.qMax === 'NaN');\n },\n\n getDataRangeIncludingZeroAttribute(data, opts) {\n return !opts.supportRangeOverZero && hasDataRangeIncludingZero(data.measureAxis, data.qHyperCube.qMeasureInfo);\n },\n\n /**\n * Apply attributes that configures disclaimers for a charts\n * @param {Object} options - Options\n * @param {Object} data - Layout data\n * @returns {Object}\n */\n applyAttributes(options, data) {\n const opts = options || {};\n const dataAttributes = {};\n\n opts.supportNegative = opts.supportNegative === undefined ? true : opts.supportNegative;\n opts.supportRangeOverZero = opts.supportRangeOverZero === undefined ? true : opts.supportRangeOverZero;\n\n DisclaimersConfig.DISCLAIMERS.forEach((config) => {\n dataAttributes[config.label] = false;\n });\n if (!data || !data.qHyperCube) {\n return dataAttributes;\n }\n dataAttributes.NoDataExist = this.getNoDataExistAttribute(data.qHyperCube);\n if (dataAttributes.NoDataExist) {\n return dataAttributes;\n }\n dataAttributes.RequireNumericDimension = opts.explicitRequireNumericDimension;\n if (dataAttributes.RequireNumericDimension) {\n return dataAttributes;\n }\n dataAttributes.LimitedData = this.getLimitedDataAttribute(data.qHyperCube, opts);\n dataAttributes.NegativeOrZeroValues = this.getNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNegativeOrZeroValues = this.getOnlyNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNanData = this.getOnlyNanDataAttribute(data.qHyperCube, opts);\n dataAttributes.DataRangeIncludingZero = this.getDataRangeIncludingZeroAttribute(data, opts);\n\n return dataAttributes;\n },\n};\nexport default util;\n","/**\n * Helper for disclaimer component\n *\n */\n\n/**\n * Create new Helper for disclaimer\n * @param disclaimersConfig {Array} List of disclaimer config objects\n * @param dataAttributes {Object} Config for which disclaimers that are valid to show\n * @param supportedDisclaimers {Object} Config for which disclaimers that are supported\n * @constructor\n */\nfunction Helper(disclaimersConfig, dataAttributes, supportedDisclaimers) {\n this.disclaimersConfig = disclaimersConfig;\n this.dataAttributes = dataAttributes;\n this.supportedDisclaimers = supportedDisclaimers;\n}\n\nfunction isValid(label, list) {\n return label && list && list[label];\n}\n\n/**\n * Returns true if disclaimer config is valid, supported and has an alignment\n * @param disclaimer {Object} Configuration for a disclaimer\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isValidAndSupported = function (disclaimer, alignment) {\n return (\n isValid(disclaimer.label, this.dataAttributes) &&\n (disclaimer.default || isValid(disclaimer.label, this.supportedDisclaimers)) &&\n alignment !== undefined &&\n disclaimer.alignment === alignment\n );\n};\n\n/**\n * Returns true if there are any valid disclaimers for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isAnyValidDisclaimer = function (alignment) {\n let result = false;\n const self = this;\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n result = true;\n }\n });\n return result;\n};\n\n/**\n * Gets all translated disclaimer messages for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @param translator {Object} Translator component\n * @returns {string}\n */\nHelper.prototype.getMessage = function (alignment, translator) {\n let str = '';\n const self = this;\n if (translator) {\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n str += `${translator.get(`Object.Disclaimer.${config.label}`)} `;\n }\n });\n }\n return str;\n};\n\nexport default Helper;\n","/**\n * Disclaimer component for Picasso base charts\n *\n * @exports objects.picasso/disclaimer/disclaimer\n */\n\nimport extend from 'extend';\nimport DisclaimersConfig from './disclaimers-config';\nimport AttributesUtil from './disclaimer-attributes-util';\nimport DisclaimerComponentHelper from './disclaimer-component-helper';\n\nDisclaimer.ERRORS = {\n SET: 'Calling Disclaimer.set() without attributes',\n DISPLAY: 'Calling Disclaimer.display() before attributes are applied',\n};\n\n/**\n * Create new disclaimer component\n * @param {Object} options - A reference to chart options\n * @constructor\n */\nfunction Disclaimer(environment) {\n this.environment = environment;\n this.clear();\n}\n\nDisclaimer._applyDefaultSupport = function (supportedDisclaimers, disclaimersConfig) {\n let supported = supportedDisclaimers;\n if (!supported) {\n supported = {};\n }\n disclaimersConfig.forEach((config) => {\n if (supported[config.label] === undefined) {\n supported[config.label] = config.default;\n }\n });\n return supported;\n};\n\nDisclaimer.prototype.getComponentSettings = function () {\n const { translator } = this.environment;\n const supportedDisclaimers = extend(true, {}, this.vizAttributes.supportedDisclaimers);\n const helper = new DisclaimerComponentHelper(\n DisclaimersConfig.DISCLAIMERS,\n this.dataAttributes,\n supportedDisclaimers\n );\n\n let message;\n let dock;\n if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.CENTER)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.CENTER, translator);\n dock = 'center';\n } else if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.BOTTOM)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.BOTTOM, translator);\n dock = 'bottom';\n } else {\n return undefined;\n }\n\n return {\n key: 'disclaimer',\n type: 'disclaimer',\n layout: {\n displayOrder: 1000,\n dock,\n },\n settings: {\n label: message,\n rtl: this.environment?.options?.direction === 'rtl',\n },\n };\n};\n\n/**\n * Set attributes that configures disclaimers for a charts\n * @param {Object} attributes - Disclaimer settings for a chart\n */\nDisclaimer.prototype.set = function (attributes) {\n this.clear();\n if (attributes) {\n this.vizAttributes = attributes;\n this.dataAttributes = AttributesUtil.applyAttributes(this.vizAttributes.options, this.vizAttributes.data);\n } else {\n throw new Error(Disclaimer.ERRORS.SET);\n }\n};\n\n/**\n * Clears disclaimer settings\n */\nDisclaimer.prototype.clear = function () {\n this.vizAttributes = null;\n this.dataAttributes = null;\n};\n\nexport default Disclaimer;\n","import extend from 'extend';\nimport { getValue } from 'qlik-chart-modules';\n\nimport Class from '../extra/class';\nimport ChartBuilder from './chart-builder/chart-builder';\nimport Disclaimer from './disclaimer/disclaimer';\n\nfunction getData(backendApi, hyperCube, rect) {\n let page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n let dataPagesPath;\n\n if (rect) {\n const width = rect.width || hyperCube.qSize.qcx;\n const maxHeight = Math.floor(10000 / width);\n page = {\n qTop: rect.top || 0,\n qLeft: rect.left || 0,\n qWidth: width,\n qHeight: rect.height ? Math.min(rect.height, maxHeight) : maxHeight,\n };\n } else {\n page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n }\n\n switch (hyperCube.qMode) {\n case 'K': // Stacked mode\n dataPagesPath = 'qStackedDataPages';\n break;\n case 'S': // Straight table mode\n default:\n dataPagesPath = 'qDataPages';\n break;\n }\n\n return backendApi.getData([page], null, hyperCube).then((pages) => {\n hyperCube[dataPagesPath] = pages;\n });\n}\n\nconst ChartView = Class.extend({\n init(picasso, $element, environment, backendApi, selectionsApi) {\n this.$element = $element;\n this.environment = environment;\n this.backendApi = backendApi;\n\n this._selectionsApi = selectionsApi;\n this._on = false;\n this._disclaimer = new Disclaimer(environment);\n this._dataPaths = ['qHyperCube'];\n\n const self = this;\n\n // Set properties that should be available in subclasses\n\n this.picassoElement = $element[0];\n this.picassoElement.className += ' picasso-chart';\n\n // Paint a visually empty Picasso chart containing an event-area component\n this.chartInstance = picasso.chart({\n element: this.picassoElement,\n settings: {\n components: [\n ChartBuilder.createComponent('event-area', {\n mounted(element) {\n // Mounted is run synchronously so this.dataAreaElem will be available in subclass constructors\n self.dataAreaElem = element;\n },\n }),\n ],\n },\n });\n },\n\n updateEnvironment(environment) {\n this.environment = environment;\n },\n\n isRtl() {\n return this.environment.options?.direction === 'rtl';\n },\n\n setDataPaths(dataPaths) {\n this._dataPaths = dataPaths;\n },\n\n getData(backendApi, hyperCube, rect) {\n return getData(backendApi, hyperCube, rect);\n },\n\n hasValidData() {\n return true;\n },\n\n paint() {\n // Use this.layout\n if (this.hasValidData()) {\n this._disclaimer.set(this.getDisclaimerAttributes(this.layout));\n const disclaimerComponent = this._disclaimer.getComponentSettings();\n const isSuppressingDisc = disclaimerComponent?.layout?.dock === 'center';\n\n const chartSettings = this.createChartSettings(this.layout);\n if (isSuppressingDisc) {\n chartSettings.components = [disclaimerComponent];\n } else if (disclaimerComponent) {\n chartSettings.components.push(disclaimerComponent);\n }\n ChartBuilder.validateComponentKeys(chartSettings.components).forEach((errorMsg) => {\n console.error(errorMsg);\n });\n\n this.updateChart(this.layout, chartSettings);\n this._painted = true;\n }\n return Promise.resolve();\n },\n\n resize() {\n // Use this.layout\n if (!this.layout) {\n // There are cases where resize is run before updateData, therefore layout is undefined\n return undefined;\n }\n return this.paint();\n },\n\n createChartSettings() {\n throw new Error('Subclass must implement \"createChartSettings\" function');\n },\n\n addSnapshotChartSettings(settings, layout) {\n const { freeResize } = this.environment.options;\n if (!freeResize && layout.snapshotData) {\n settings.dockLayout.logicalSize = {\n width: layout.snapshotData.content.size.w,\n height: layout.snapshotData.content.size.h,\n preserveAspectRatio: true,\n };\n }\n },\n\n updateData(layout) {\n // clone the layout so that updates ignored by suppressOnPaint does not affect it.\n if (this._destroyed) {\n return Promise.reject();\n }\n\n this.layout = extend(true, {}, layout);\n this.layout.permissions = layout.permissions;\n return Promise.resolve();\n },\n\n updateChart(layout, settings, isPartialData) {\n const localeInfo = this.environment.appLayout?.qLocaleInfo ?? {};\n const data = this._dataPaths.map((path) => ({\n type: 'q',\n key: path,\n config: {\n localeInfo,\n },\n data: getValue(layout, path.replace(/\\//g, '.')),\n }));\n if (this.colorService) {\n data.push(...this.colorService.getData());\n }\n\n this.chartInstance.update({\n data,\n settings,\n partialData: isPartialData,\n });\n\n const STATE_DATA_UPDATED = 2;\n this.picassoElement.setAttribute('data-state', STATE_DATA_UPDATED); // For integration test\n },\n\n destroy() {\n this._destroyed = true;\n this.off();\n this.chartInstance.destroy();\n },\n\n getViewState() {\n return {};\n },\n\n isLassoDisabled() {\n return true;\n },\n\n setSnapshotData(snapshotLayout) {\n if (!snapshotLayout.snapshotData) {\n snapshotLayout.snapshotData = {};\n }\n snapshotLayout.snapshotData.content = {\n // eslint-disable-line no-param-reassign\n chartData: {},\n size: {\n w: this.$element.width(),\n h: this.$element.height(),\n },\n };\n },\n\n getDisclaimerAttributes(layout) {\n return {\n data: layout,\n };\n },\n});\n\nexport default ChartView;\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/* eslint no-nested-ternary: 0 */\n\nimport extend from 'extend';\n\nexport function getFieldAccessor(field, page, deps) {\n if (!field) {\n return -1;\n }\n const cache = deps.cache;\n const origin = field.origin ? field.origin() : null;\n if (origin) {\n field = origin;\n }\n let fieldIdx = cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n if (fieldIdx === -1) {\n for (let i = 0; i < cache.wrappedFields.length; i++) {\n attrDimIdx = cache.wrappedFields[i].attrDims.map((v) => v.instance).indexOf(field);\n attrIdx = cache.wrappedFields[i].attrExps.map((v) => v.instance).indexOf(field);\n if (attrDimIdx !== -1 || attrIdx !== -1) {\n fieldIdx = i;\n break;\n }\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n if (fieldIdx < 0 || fieldIdx >= page.qArea.qWidth) {\n // throw new Error('Field out of range');\n return -1;\n }\n\n if (attrDimIdx >= 0) {\n return (row) => row[fieldIdx].qAttrDims.qValues[attrDimIdx];\n }\n if (attrIdx >= 0) {\n return (row) => row[fieldIdx].qAttrExps.qValues[attrIdx];\n }\n\n return (row) => row[fieldIdx];\n}\n\n// TODO - handle 'other' value\n// const specialTextValues = {\n// '-3': (meta) => {\n// if ('othersLabel' in meta) {\n// return meta.othersLabel;\n// }\n// return '';\n// }\n// };\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction cellToValue({ cache, f, mainCell, p, prop, page, rowIdx, row, sourceKey, target, targetProp }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache });\n if (propCellFn === -1) {\n return;\n }\n propCell = extend({ qRow: rowIdx }, propCellFn(row));\n }\n target[targetProp] = datumExtract(p, propCell, { key: sourceKey }, prop);\n}\n\nexport default function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let i = 0; i < cfgs.length; i++) {\n if (typeof cfgs[i].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const f = typeof cfgs[i].field === 'object' ? cfgs[i].field : dataset.field(cfgs[i].field);\n const { props, main } = util.normalizeConfig(cfgs[i], dataset);\n const propsArr = Object.keys(props);\n\n const track = !!cfgs[i].trackBy;\n const trackType = typeof cfgs[i].trackBy;\n const tracker = {};\n const trackedItems = [];\n const items = [];\n\n for (let j = 0; j < cube.qDataPages.length; j++) {\n const fn = getFieldAccessor(f, cube.qDataPages[j], { cache });\n if (fn === -1) {\n continue;\n }\n for (let k = 0; k < cube.qDataPages[j].qMatrix.length; k++) {\n const rowIdx = cube.qDataPages[j].qArea.qTop + k;\n const mainCell = extend({ qRow: rowIdx }, fn(cube.qDataPages[j].qMatrix[k]));\n const ret = datumExtract(main, mainCell, { key: sourceKey });\n const exclude = main.filter && !main.filter(mainCell);\n if (exclude) {\n continue;\n }\n\n for (let l = 0; l < propsArr.length; l++) {\n const p = props[propsArr[l]];\n let arr = p.fields || [p];\n\n if (p.fields) {\n ret[propsArr[l]] = [];\n }\n\n // loop through all props that need to be mapped and\n // assign 'value' and 'source' to each property\n for (let m = 0; m < arr.length; m++) {\n cellToValue({\n cache,\n f,\n mainCell,\n p: arr[m],\n prop: propsArr[l],\n props,\n page: cube.qDataPages[j],\n rowIdx,\n row: cube.qDataPages[j].qMatrix[k],\n sourceKey,\n target: p.fields ? ret[propsArr[l]] : ret,\n targetProp: p.fields ? m : propsArr[l],\n });\n }\n\n if (p.fields) {\n const fieldValues = ret[propsArr[l]].map((v) => v.value);\n const fieldLabels = ret[propsArr[l]].map((v) => v.label);\n ret[propsArr[l]] = {\n value:\n typeof p.value === 'function'\n ? p.value(fieldValues)\n : typeof p.value !== 'undefined'\n ? p.value\n : fieldValues,\n label:\n typeof p.label === 'function'\n ? p.label(fieldLabels)\n : typeof p.label !== 'undefined'\n ? String(p.label)\n : String(ret[propsArr[l]].value),\n };\n }\n }\n\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[i],\n itemData: mainCell,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n\n items.push(ret);\n }\n }\n\n // reduce if items have been grouped\n if (track) {\n dataItems.push(\n ...util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n );\n } else {\n dataItems.push(...items);\n }\n }\n }\n return dataItems;\n}\n","function 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\nexport default function() {\n return this.eachAfter(count);\n}\n","export default 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","export default 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","export default 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","export default 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","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default 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","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default 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","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function 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\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function 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: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","/**\n * Resolves the value at the given JSON path\n * @private\n * @param {String} path [description]\n * @param {Object} obj [description]\n * @return {Object} [description]\n *\n * @example\n * let path = \"/path/to/paradise\";\n * let obj = {\n * path: {\n * to: { paradise: \"heaven\"},\n * from: {...}\n * }\n * };\n * resolve( path, obj ); // \"heaven\"\n */\nexport default function resolve(path, obj) {\n if (path.charAt(0) === '/') {\n path = path.substring(1);\n }\n const arr = path.split('/');\n let subpath;\n let container = obj;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] === '*' && Array.isArray(container)) {\n const carr = [];\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n let v = resolve(subpath, container[c]);\n // v.forEach(_ => _._parent = container[c]);\n if (Array.isArray(v)) {\n carr.push(...v);\n } else {\n carr.push(v);\n }\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (!arr[i] && Array.isArray(container)) {\n const carr = new Array(container.length);\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n carr[c] = resolve(subpath, container[c]);\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (arr[i] in container) {\n container = container[arr[i]];\n }\n }\n\n return container;\n}\n","function flattenTree(children, steps, arrIndexAtTargetDepth) {\n const arr = [];\n if (!children || !children.length) {\n return arr;\n }\n if (steps <= 0) {\n const nodes = arrIndexAtTargetDepth >= 0 ? [children[arrIndexAtTargetDepth]] : children;\n arr.push(...nodes);\n } else {\n for (let i = 0; i < children.length; i++) {\n if (children[i].children && children[i].children.length) {\n arr.push(...flattenTree(children[i].children, steps - 1, arrIndexAtTargetDepth));\n }\n }\n }\n return arr;\n}\n\nexport function treeAccessor(sourceDepth, targetDepth, arrIndexAtTargetDepth) {\n if (sourceDepth === targetDepth) {\n return (d) => d;\n }\n if (sourceDepth > targetDepth) {\n // traverse upwards\n const steps = Math.max(0, Math.min(100, sourceDepth - targetDepth));\n return (node) => {\n let n = node;\n for (let i = 0; i < steps; ++i) {\n n = n.parent;\n }\n return n;\n };\n }\n if (targetDepth > sourceDepth) {\n // flatten descendants\n const steps = Math.max(0, Math.min(100, targetDepth - sourceDepth));\n return (node) => flattenTree(node.children, steps - 1, arrIndexAtTargetDepth);\n }\n return false;\n}\n\nexport function findField(query, { cache }) {\n if (typeof query === 'number') {\n return cache.fields[query];\n }\n\n const allFields = cache.allFields;\n if (typeof query === 'function') {\n for (let i = 0; i < allFields.length; i++) {\n if (query(allFields[i])) {\n return allFields[i];\n }\n }\n return false;\n }\n if (typeof query === 'string') {\n for (let i = 0; i < allFields.length; i++) {\n if (allFields[i].key() === query || allFields[i].title() === query) {\n return allFields[i];\n }\n }\n } else if (query && allFields.indexOf(query) !== -1) {\n // assume 'query' is a field instance\n return query;\n }\n\n throw Error(`Field not found: ${query}`);\n}\n","/* eslint no-nested-ternary: 0 */\n\nimport { hierarchy, stratify } from 'd3-hierarchy';\n\nimport picker from '../json-path-resolver';\n\nimport { treeAccessor } from './util';\n\nconst DIM_RX = /^qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /^\\/?qMeasureInfo\\/(\\d+)/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)/;\n\nfunction getColumnOrder(dataset) {\n const qColumnOrder = dataset.raw().qColumnOrder;\n const fields = dataset.fields();\n\n return qColumnOrder && qColumnOrder.length === fields.length ? qColumnOrder : fields.map((f, i) => i);\n}\n\nfunction getDimensionColumnOrder(cube) {\n const order =\n cube.qColumnOrder && cube.qColumnOrder.length ? cube.qColumnOrder : cube.qDimensionInfo.map((d, ii) => ii);\n\n return order.filter((ii) => ii < cube.qDimensionInfo.length);\n}\n\nexport function getFieldDepth(field, { cube }) {\n if (!field) {\n return -1;\n }\n\n let key = field.origin && field.origin() ? field.origin().key() : field.key();\n let isFieldDimension = false;\n let fieldIdx = -1; // cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n let fieldDepth = -1;\n let pseudoMeasureIndex = -1;\n let measureIdx = -1;\n let remainder = key;\n\n const treeOrder = cube.qEffectiveInterColumnSortOrder;\n const columnOrder = getDimensionColumnOrder(cube);\n\n if (DIM_RX.test(remainder)) {\n isFieldDimension = true;\n fieldIdx = +DIM_RX.exec(remainder)[1];\n remainder = key.replace(DIM_RX, '');\n }\n\n if (M_RX.test(remainder)) {\n if (cube.qMode === 'K') {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n measureIdx = 0;\n } else {\n measureIdx = +M_RX.exec(remainder)[1];\n }\n remainder = remainder.replace(M_RX, '');\n }\n\n if (remainder) {\n if (ATTR_DIM_RX.exec(remainder)) {\n attrDimIdx = +ATTR_DIM_RX.exec(remainder)[1];\n } else if (ATTR_EXPR_RX.exec(remainder)) {\n attrIdx = +ATTR_EXPR_RX.exec(remainder)[1];\n }\n }\n\n if (isFieldDimension) {\n if (cube.qMode === 'S') {\n fieldDepth = columnOrder[fieldIdx];\n } else {\n fieldDepth = treeOrder ? treeOrder.indexOf(fieldIdx) : fieldIdx;\n }\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n // if pseudo dimension exists in sort order\n fieldDepth = treeOrder.indexOf(-1); // depth of pesudodimension\n } else {\n // assume measure is at the bottom of the tree\n fieldDepth = cube.qDimensionInfo.length - (cube.qMode === 'K' ? 0 : 1);\n }\n\n return {\n fieldDepth: fieldDepth + 1, // +1 due to root node\n pseudoMeasureIndex,\n measureIdx,\n attrDimIdx,\n attrIdx,\n };\n}\n\nfunction getFieldAccessor(sourceDepthObject, targetDepthObject) {\n let nodeFn = treeAccessor(\n sourceDepthObject.fieldDepth,\n targetDepthObject.fieldDepth,\n targetDepthObject.pseudoMeasureIndex\n );\n let valueFn;\n\n if (targetDepthObject.measureIdx >= 0) {\n valueFn = (node) => node.data.qValues[targetDepthObject.measureIdx];\n } else {\n valueFn = (node) => node.data;\n }\n let attrFn;\n\n if (targetDepthObject.attrDimIdx >= 0) {\n attrFn = (data) => data?.qAttrDims?.qValues[targetDepthObject.attrDimIdx];\n } else if (targetDepthObject.attrIdx >= 0) {\n attrFn = (data) => data?.qAttrExps?.qValues[targetDepthObject.attrIdx];\n }\n\n return {\n nodeFn,\n attrFn,\n valueFn,\n };\n}\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction doIt({ propsArr, props, item, itemData, ret, sourceKey }) {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields || [pCfg];\n let coll;\n let collStr;\n if (pCfg.fields) {\n coll = [];\n collStr = [];\n }\n\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n let fn;\n let str;\n let value;\n let nodes;\n let cells;\n let label;\n if (p.type === 'primitive') {\n value = p.value;\n label = String(p.value);\n } else {\n if (typeof p.value === 'function') {\n fn = (v) => p.value(v, item);\n }\n if (typeof p.label === 'function') {\n str = (v) => p.label(v, item);\n }\n if (p.accessor) {\n nodes = p.accessor(item);\n if (Array.isArray(nodes)) {\n // propably descendants\n cells = nodes.map(p.valueAccessor);\n if (p.attrAccessor) {\n cells = cells.map(p.attrAccessor);\n }\n if (fn) {\n value = cells.map(fn);\n fn = null;\n }\n if (str) {\n label = cells.map(str);\n str = null;\n }\n value = p.reduce ? p.reduce(value) : value;\n label = p.reduceLabel ? p.reduceLabel(label, value) : String(value);\n } else {\n value = p.attrAccessor ? p.attrAccessor(p.valueAccessor(nodes)) : p.valueAccessor(nodes);\n label = value;\n }\n } else {\n value = itemData;\n label = itemData;\n }\n }\n if (pCfg.fields) {\n const v = fn ? fn(value) : value;\n coll.push(v);\n collStr.push(str && label != null ? str(label) : label != null ? label : String(v));\n } else {\n const v = fn ? fn(value) : value;\n ret[propsArr[i]] = {\n value: v,\n label: str ? str(label) : label != null ? label : String(v),\n };\n if (p.field) {\n ret[propsArr[i]].source = { field: p.field.key(), key: sourceKey };\n }\n }\n }\n if (coll) {\n ret[propsArr[i]] = {\n value: typeof pCfg.value === 'function' ? pCfg.value(coll, item) : coll,\n label: typeof pCfg.label === 'function' ? pCfg.label(collStr, item) : collStr,\n };\n }\n }\n}\n\nconst getHierarchy = (cube, cache, config) => {\n const rootPath = cube.qMode === 'K' ? '/qStackedDataPages/*/qData' : '/qTreeDataPages/*';\n const childNodes = cube.qMode === 'K' ? 'qSubNodes' : 'qNodes';\n const root = picker(rootPath, cube);\n if (!root || !root[0]) {\n return null;\n }\n cache.tree = hierarchy(root[0], config.children || ((node) => node[childNodes]));\n return cache.tree;\n};\n\nfunction getHierarchyForSMode(dataset) {\n const matrix = dataset.raw().qDataPages.length ? dataset.raw().qDataPages[0].qMatrix : [];\n const order = getColumnOrder(dataset);\n const fields = dataset.fields();\n const dimensions = dataset\n .fields()\n .filter((f) => f.type() === 'dimension')\n .map((f) => order.indexOf(fields.indexOf(f)));\n const measures = dataset\n .fields()\n .filter((f) => f.type() === 'measure')\n .map((f) => order.indexOf(fields.indexOf(f)));\n\n const root = {\n __id: '__root',\n qValues: [],\n };\n\n const keys = {\n __root: root,\n };\n\n for (let r = 0; r < matrix.length; r++) {\n const row = matrix[r];\n let id = '__root';\n // let parent = root;\n let isNew = false;\n for (let c = 0; c < dimensions.length; c++) {\n const cell = row[dimensions[c]];\n const key = `${id}__${cell.qText}`;\n if (!keys[key]) {\n keys[key] = {\n __id: key,\n __parent: id,\n qValues: [],\n ...cell,\n };\n isNew = true;\n }\n id = key;\n }\n if (isNew) {\n for (let c = 0; c < measures.length; c++) {\n const cell = row[measures[c]];\n keys[id].qValues.push(cell);\n }\n }\n }\n\n const nodes = Object.keys(keys).map((key) => keys[key]);\n\n const h = stratify()\n .id((d) => d.__id)\n .parentId((d) => d.__parent)(nodes);\n\n return h;\n}\n\nconst attachPropsAccessors = ({ propsArr, props, cube, cache, itemDepthObject, f }) => {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields ? pCfg.fields : [pCfg];\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n if (p.field !== f) {\n const depthObject = getFieldDepth(p.field, { cube, cache });\n const accessors = getFieldAccessor(itemDepthObject, depthObject);\n p.accessor = accessors.nodeFn; // nodes accessor\n p.valueAccessor = accessors.valueFn; // cell accessor\n p.attrAccessor = accessors.attrFn; // attr cell accessor\n }\n }\n }\n};\n\nexport function augment(config = {}, dataset, cache, util) {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = cube.qMode === 'S' ? getHierarchyForSMode(dataset) : getHierarchy(cube, cache, config);\n if (!h) {\n return null;\n }\n\n const height = h.height;\n const propDefs = [];\n for (let i = 0; i <= height; i++) {\n let f = null;\n if (i > 0) {\n if (cube.qMode === 'S') {\n const order = getDimensionColumnOrder(cube);\n let idx = order[i - 1];\n f = cache.fields[idx];\n } else {\n let idx = cube.qEffectiveInterColumnSortOrder[i - 1];\n // if (idx === -1) { // pseudo\n // let childIdx = node.parent.children.indexOf(node);\n // idx = cube.qDimensionInfo.length + childIdx; // measure field\n // }\n if (i > cube.qEffectiveInterColumnSortOrder.length) {\n idx = cube.qDimensionInfo.length;\n }\n\n f = cache.fields[idx];\n }\n }\n\n const { props, main } = util.normalizeConfig({ ...config, field: f ? f.key() : undefined }, dataset);\n const propsArr = Object.keys(props);\n propDefs[i] = { propsArr, props, main };\n\n const itemDepthObject = f ? getFieldDepth(f, { cube, cache }) : { fieldDepth: 0 };\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n }\n\n const replica = h.copy();\n const replicaDescendants = replica.descendants();\n const descendants = h.descendants();\n\n for (let i = 0; i < descendants.length; i++) {\n const propsArr = propDefs[descendants[i].depth].propsArr;\n const props = propDefs[descendants[i].depth].props;\n const main = propDefs[descendants[i].depth].main;\n\n const item = replicaDescendants[i];\n const itemData = item.data; // main.valueAccessor(currentOriginal);\n\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n isTree: true,\n });\n descendants[i].data = ret;\n }\n return h;\n}\n\nexport function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let g = 0; g < cfgs.length; g++) {\n if (typeof cfgs[g].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = getHierarchy(cube, cache, config);\n if (!h) {\n continue;\n }\n\n const f = typeof cfgs[g].field === 'object' ? cfgs[g].field : dataset.field(cfgs[g].field);\n const { props, main } = util.normalizeConfig(cfgs[g], dataset);\n const propsArr = Object.keys(props);\n\n const itemDepthObject = getFieldDepth(f, { cube, cache });\n const { nodeFn, attrFn, valueFn } = getFieldAccessor({ fieldDepth: 0 }, itemDepthObject);\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n\n const track = !!cfgs[g].trackBy;\n const trackType = typeof cfgs[g].trackBy;\n const tracker = {};\n const trackedItems = [];\n\n const items = nodeFn(cache.tree);\n const mapped = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemData = attrFn ? attrFn(valueFn(item)) : valueFn(item);\n const exclude = main.filter && !main.filter(itemData);\n if (exclude) {\n continue;\n }\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n });\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[g],\n itemData,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n mapped.push(ret);\n }\n // reduce if items have been grouped\n if (track) {\n dataItems.push(\n ...util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n );\n } else {\n dataItems.push(...mapped);\n }\n }\n }\n return dataItems;\n}\n","/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\n!function(a,b){\"function\"==typeof define&&define.amd?define([],b):\"object\"==typeof module?module.exports=b():a.format=b()}(this,function(){return function(a,b){\"use strict\";if(!a||isNaN(+b))return b;var c,d,e,f,g,h,i,j,k,l,m=a.length,n=a.search(/[0-9\\-\\+#]/),o=n>0?a.substring(0,n):\"\",p=a.split(\"\").reverse().join(\"\"),q=p.search(/[0-9\\-\\+#]/),r=m-q,s=a.substring(r,r+1),t=r+(\".\"===s||\",\"===s?1:0),u=q>0?a.substring(t,m):\"\";if(a=a.substring(n,t),b=\"-\"===a.charAt(0)?-b:+b,c=b<0?b=-b:0,d=a.match(/[^\\d\\-\\+#]/g),e=d&&d[d.length-1]||\".\",f=d&&d[1]&&d[0]||\",\",a=a.split(e),b=b.toFixed(a[1]&&a[1].length),b=+b+\"\",h=a[1]&&a[1].lastIndexOf(\"0\"),j=b.split(\".\"),(!j[1]||j[1]&&j[1].length<=h)&&(b=(+b).toFixed(h+1)),k=a[0].split(f),a[0]=k.join(\"\"),g=a[0]&&a[0].indexOf(\"0\"),g>-1)for(;j[0].length<a[0].length-g;)j[0]=\"0\"+j[0];else 0===+j[0]&&(j[0]=\"\");if(b=b.split(\".\"),b[0]=j[0],i=k[1]&&k[k.length-1].length){for(l=b[0],p=\"\",r=l.length%i,m=l.length,t=0;t<m;t++)p+=l.charAt(t),!((t-r+1)%i)&&t<m-i&&(p+=f);b[0]=p}return b[1]=a[1]&&b[1]?e+b[1]:\"\",d=b.join(\"\"),\"0\"!==d&&\"\"!==d||(c=!1),o+((c?\"-\":\"\")+d)+u}});","import formatter from 'number-format.js';\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nconst SIprefixes = {\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y',\n '-3': 'm',\n '-6': 'μ',\n '-9': 'n',\n '-12': 'p',\n '-15': 'f',\n '-18': 'a',\n '-21': 'z',\n '-24': 'y',\n },\n percentage = /%$/,\n // scientific = /e[\\+\\-][0-9]+/,\n radix = /^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,\n oct = /^\\(oct\\)/i,\n dec = /^\\(dec\\)/i,\n hex = /^\\(hex\\)/i,\n bin = /^\\(bin\\)/i,\n rom = /^\\(rom\\)/i,\n functional = /^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,\n prec = /#|0/g;\n\nfunction formatRadix(value, fradix, pattern, decimal) {\n value = value.toString(fradix);\n if (pattern[1] === pattern[1].toUpperCase()) {\n value = value.toUpperCase();\n }\n if (value.length - value.indexOf('.') > 10) {\n // limit to 10 decimal places\n value = value.slice(0, value.indexOf('.') + 11);\n }\n\n return value.replace('.', decimal || '.');\n}\n\n// value must be an integer\n// value must not be in scientific notation\nfunction formatRoman(value, pattern) {\n let i,\n s = '',\n v = Number(String(value).slice(-3)),\n nThousands = (value - v) / 1000,\n decimal = [0, 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900].reverse(),\n numeral = ['0', 'I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM'].reverse();\n\n while (v > 0) {\n for (i = 0; i < decimal.length; i++) {\n if (decimal[i] <= v) {\n s += numeral[i];\n v -= decimal[i];\n break;\n }\n }\n }\n\n for (i = 0; i < nThousands; i++) {\n s = `M${s}`;\n }\n\n if (pattern[1] !== pattern[1].toUpperCase()) {\n s = s.toLowerCase();\n }\n return s;\n}\n\nfunction formatFunctional(value, pattern, d) {\n let temp;\n if (radix.test(pattern)) {\n value = formatRadix(value, Number(/\\d{2}/.exec(pattern)[0]), pattern, d);\n } else if (oct.test(pattern)) {\n value = formatRadix(value, 8, pattern, d);\n } else if (dec.test(pattern)) {\n value = formatRadix(value, 10, pattern, d);\n } else if (hex.test(pattern)) {\n value = formatRadix(value, 16, pattern, d);\n } else if (bin.test(pattern)) {\n value = formatRadix(value, 2, pattern, d);\n } else if (rom.test(pattern)) {\n temp = '';\n if (value < 0) {\n temp = '-';\n value = -value;\n }\n value = Math.floor(value);\n if (value === 0) {\n value = '0';\n } else if (value <= 500000) {\n // limit in engine\n value = formatRoman(value, pattern);\n value = temp + value;\n } else {\n value = pattern + temp + value.toExponential(0); // to return same result as engine\n }\n }\n\n return value;\n}\n\nfunction escape(value, flags, justStr) {\n const str = escapeRegExp(value);\n if (justStr) {\n return str;\n }\n return new RegExp(str || '', flags);\n}\n\nfunction createRegExp(thousand, decimal) {\n if (decimal) {\n decimal = escapeRegExp(decimal);\n }\n if (thousand) {\n thousand = escapeRegExp(thousand);\n }\n return new RegExp(`(?:[#0]+${thousand})?[#0]+(?:${decimal}[#0]+)?`);\n}\n\nfunction getAbbreviations(localeInfo, listSeparator) {\n if (!localeInfo || !localeInfo.qNumericalAbbreviation) {\n return SIprefixes;\n }\n\n const abbreviations = {};\n let abbrs = localeInfo.qNumericalAbbreviation.split(listSeparator);\n\n abbrs.forEach((abbreviation) => {\n let abbreviationTuple = abbreviation.split(':');\n if (abbreviationTuple.length === 2) {\n abbreviations[abbreviationTuple[0]] = abbreviationTuple[1];\n }\n });\n\n return abbreviations;\n}\n\nfunction preparePattern(o, t, d) {\n let parts,\n lastPart,\n pattern = o.pattern,\n numericPattern,\n prefix,\n postfix,\n groupTemp,\n decTemp,\n temp,\n regex;\n\n if (pattern.indexOf('A') >= 0) {\n // abbreviate SI\n pattern = pattern.replace('A', '');\n o.abbreviate = true;\n }\n\n // extract the numeric part from the pattern\n regex = createRegExp(t, d);\n numericPattern = pattern.match(regex);\n numericPattern = numericPattern ? numericPattern[0] : '';\n prefix = numericPattern ? pattern.substr(0, pattern.indexOf(numericPattern)) : pattern;\n postfix = numericPattern ? pattern.substring(pattern.indexOf(numericPattern) + numericPattern.length) : '';\n\n if (!numericPattern) {\n numericPattern = pattern ? '#' : '##########';\n }\n\n if (t && t === d) {\n // ignore grouping if grouping separator is same as decimal separator\n // extract decimal part\n parts = numericPattern.split(d);\n lastPart = parts.pop();\n numericPattern = parts.join('') + d + lastPart;\n t = '';\n }\n\n // formatting library does not support multiple characters as separator (nor +-).\n // do a temporary replacement\n groupTemp = t;\n t = /,/.test(d) ? '¤' : ',';\n if (groupTemp) {\n numericPattern = numericPattern.replace(escape(groupTemp, 'g'), t);\n }\n\n decTemp = d;\n d = '.';\n if (decTemp) {\n numericPattern = numericPattern.replace(escape(decTemp, 'g'), d);\n }\n\n temp = numericPattern.match(/#/g);\n temp = temp ? temp.length : 0;\n\n const splitPattern = pattern.split(decTemp);\n let matchPrecisionResult;\n if (splitPattern[1]) {\n matchPrecisionResult = splitPattern[1].match(prec);\n }\n\n o.prefix = prefix || '';\n o.postfix = postfix || '';\n o.pattern = pattern;\n o.maxPrecision = matchPrecisionResult ? matchPrecisionResult.length : 2;\n o.percentage = percentage.test(pattern);\n o.numericPattern = numericPattern || '';\n o.numericRegex = new RegExp(`${escape(t, null, true)}|${escape(d, null, true)}`, 'g');\n o.groupTemp = groupTemp;\n o.decTemp = decTemp;\n o.t = t;\n o.d = d;\n o.temp = temp;\n}\n\nclass NumberFormatter {\n /**\n * @name NumberFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n * @param {String} [thousand]\n * @param {String} [decimal]\n * @param {String} [type]\n */\n constructor(localeInfo, pattern, thousand, decimal, type) {\n this.localeInfo = localeInfo;\n this.pattern = pattern;\n this.thousandDelimiter = thousand || ',';\n this.decimalDelimiter = decimal || '.';\n this.type = type || 'numeric';\n\n // FIXME qListSep?\n // this.patternSeparator = this.localeInfo && this.localeInfo.qListSep ? this.localeInfo.qListSep : ';';\n this.patternSeparator = ';';\n\n this.abbreviations = getAbbreviations(localeInfo, this.patternSeparator);\n\n this.prepare();\n }\n\n clone() {\n const n = new NumberFormatter(\n this.localeInfo,\n this.pattern,\n this.thousandDelimiter,\n this.decimalDelimiter,\n this.type\n );\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a number according to a specific pattern.\n * Use # for optional numbers and 0 for padding.\n * @param {Number} value Number to format.\n * @param {String} [pattern] The pattern to apply.\n * @param {String} [t] Grouping separator.\n * @param {String} [d] Decimal delimiter.\n * @example\n * format(10, \"0\") // 10;\n * format(10, \"#\") // 10;\n * format(10, \"##.#\") // 10;\n * format(10, \"##.0\") // 10.0;\n * format(10, \"000\") // 010;\n * format(10.123, \"0.0\") // 10.1;\n * format(10.123, \"0.00##\") // 10.123; // at least 2 decimals, never more than 4\n * format(123456789, \"#,###\") // 123,456,789;\n * format(123456789, \"####-####\", \"-\") // 1-2345-6789;\n * format(10000, \"#A\") // 10k, A -> SI abbreviation\n * format(1234567, \"#.###A\") // 1.235M;\n * format(0.0001, \"#.#A\") // 0.1m;\n *\n * format(0.257, \"0.0%\") // 25.7%; // will multiply by 100\n * format(9876, \"$#,###\") // $9,876;\n * format(-9876, \"$#,###;$(#,###)\") // $(9,876); // use ; for alternative formatting for negative values\n * format(10, \"(r16)\") // a; // radix 16\n * format(15, \"(hex)\") // f; // same as (r16)\n * format(15, \"(HEX)\") // F;\n * format(10, \"(bin)\") // 1010; // same as (r02)\n * format(10, \"(oct)\") // 12; // same as (r08)\n */\n format(value, pattern, t, d) {\n this.prepare(pattern, t, d);\n return this.formatValue(value);\n }\n\n prepare(pattern, t, d) {\n let prep;\n\n if (typeof pattern === 'undefined') {\n pattern = this.pattern;\n }\n if (typeof t === 'undefined') {\n t = this.thousandDelimiter;\n }\n if (typeof d === 'undefined') {\n d = this.decimalDelimiter;\n }\n\n if (!pattern) {\n this._prepared = { pattern: false };\n return;\n }\n\n this._prepared = {\n positive: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n negative: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n zero: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n };\n prep = this._prepared;\n\n pattern = pattern.split(this.patternSeparator);\n prep.positive.pattern = pattern[0];\n prep.negative.pattern = pattern[1];\n prep.zero.pattern = pattern[2];\n if (functional.test(pattern[0])) {\n prep.positive.isFunctional = true;\n }\n if (!pattern[1]) {\n prep.negative = false;\n } else if (functional.test(pattern[1])) {\n prep.negative.isFunctional = true;\n }\n if (!pattern[2]) {\n prep.zero = false;\n } else if (functional.test(pattern[2])) {\n prep.zero.isFunctional = true;\n }\n\n if (!prep.positive.isFunctional) {\n preparePattern(prep.positive, t, d);\n }\n if (prep.negative && !prep.negative.isFunctional) {\n preparePattern(prep.negative, t, d);\n }\n if (prep.zero && !prep.zero.isFunctional) {\n preparePattern(prep.zero, t, d);\n }\n }\n\n formatValue(value) {\n let prep = this._prepared,\n temp,\n exponent,\n abbr = '',\n absValue,\n num,\n sciValue = '',\n d,\n t,\n i,\n numericPattern,\n decimalPartPattern,\n original = value;\n\n if (isNaN(value)) {\n return `${original}`;\n }\n\n value = +value;\n\n if (prep.pattern === false) {\n return value.toString();\n }\n\n if (value === 0 && prep.zero) {\n prep = prep.zero;\n return prep.pattern;\n }\n if (value < 0 && prep.negative) {\n prep = prep.negative;\n value = -value;\n } else {\n prep = prep.positive;\n }\n d = prep.d;\n t = prep.t;\n\n if (prep.isFunctional) {\n value = formatFunctional(value, prep.pattern, d);\n } else {\n if (prep.percentage) {\n value *= 100;\n }\n\n if (prep.abbreviate) {\n const abbrArray = Object.keys(this.abbreviations)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => a - b);\n let lowerAbbreviation;\n let upperAbbreviation = abbrArray[0];\n i = 0;\n exponent = Number(Number(value).toExponential().split('e')[1]);\n\n while (upperAbbreviation <= exponent && i < abbrArray.length) {\n i++;\n upperAbbreviation = abbrArray[i];\n }\n\n if (i > 0) {\n lowerAbbreviation = abbrArray[i - 1];\n }\n\n let suggestedAbbrExponent;\n\n // value and lower abbreviation is for values above 10, use the lower (move to the left <==)\n if (lowerAbbreviation && exponent > 0 && lowerAbbreviation > 0) {\n suggestedAbbrExponent = lowerAbbreviation;\n // value and lower abbreviation is for values below 0.1 (move to the right ==>)\n } else if ((exponent < 0 && lowerAbbreviation < 0) || !lowerAbbreviation) {\n // upper abbreviation is also for values below 0.1 and precision allows for using the upper abbreviation(move to the right ==>)\n if (upperAbbreviation < 0 && upperAbbreviation - exponent <= prep.maxPrecision) {\n suggestedAbbrExponent = upperAbbreviation;\n // lower abbrevaition is smaller than exponent and we can't get away with not abbreviating\n } else if (lowerAbbreviation <= exponent && !(upperAbbreviation > 0 && -exponent <= prep.maxPrecision)) {\n // (move to left <==)\n suggestedAbbrExponent = lowerAbbreviation;\n }\n }\n if (suggestedAbbrExponent) {\n abbr = this.abbreviations[suggestedAbbrExponent];\n value /= Math.pow(10, suggestedAbbrExponent);\n }\n }\n\n absValue = Math.abs(value);\n temp = prep.temp;\n numericPattern = prep.numericPattern;\n decimalPartPattern = numericPattern.split(d)[1];\n\n if (this.type === 'I') {\n value = Math.round(value);\n }\n num = value;\n\n if (!decimalPartPattern && numericPattern.slice(-1)[0] === '#') {\n if (absValue >= Math.pow(10, temp) || absValue < 1 || absValue < 1e-4) {\n if (value === 0) {\n value = '0';\n } else if (absValue < 1e-4 || absValue >= 1e20) {\n // engine always formats values < 1e-4 in scientific form, values >= 1e20 can only be represented in scientific form\n value = num.toExponential(Math.max(1, Math.min(14, temp)) - 1);\n value = value.replace(/\\.?0+(?=e)/, '');\n sciValue = '';\n } else {\n value = value.toPrecision(Math.max(1, Math.min(14, temp)));\n if (value.indexOf('.') >= 0) {\n value = value.replace(value.indexOf('e') < 0 ? /0+$/ : /\\.?0+(?=e)/, '');\n value = value.replace('.', d);\n }\n }\n } else {\n numericPattern += d;\n temp = Math.max(0, Math.min(20, temp - Math.ceil(Math.log(absValue) / Math.log(10))));\n for (i = 0; i < temp; i++) {\n numericPattern += '#';\n }\n\n value = formatter(numericPattern, value);\n }\n } else if (absValue >= 1e15 || (absValue > 0 && absValue <= 1e-14)) {\n value = absValue ? absValue.toExponential(15).replace(/\\.?0+(?=e)/, '') : '0';\n } else {\n const wholePart = Number(\n value.toFixed(Math.min(20, decimalPartPattern ? decimalPartPattern.length : 0)).split('.')[0]\n );\n let wholePartPattern = numericPattern.split(d)[0];\n wholePartPattern += d;\n\n value = formatter(wholePartPattern, wholePart) || '0';\n\n if (decimalPartPattern) {\n const nDecimals = Math.max(0, Math.min(14, decimalPartPattern.length)); // the length of e.g. 0000#####\n const nZeroes = decimalPartPattern.replace(/#+$/, '').length;\n let decimalPart = (this.type === 'I' ? 0 : absValue % 1).toFixed(nDecimals).slice(2).replace(/0+$/, ''); // remove trailing zeroes\n\n for (i = decimalPart.length; i < nZeroes; i++) {\n decimalPart += '0';\n }\n\n if (decimalPart) {\n value += d + decimalPart;\n }\n } else if (wholePart === 0) {\n // to avoid \"-\" being prefixed to value\n num = 0;\n }\n }\n\n value = value.replace(prep.numericRegex, (m) => {\n if (m === t) {\n return prep.groupTemp;\n }\n if (m === d) {\n return prep.decTemp;\n }\n return '';\n });\n if (num < 0 && !/^-/.test(value)) {\n value = `-${value}`;\n }\n }\n\n return prep.prefix + value + sciValue + abbr + prep.postfix;\n }\n\n static getStaticFormatter() {\n return {\n prepare() {},\n formatValue(v) {\n return `${v}`;\n },\n };\n }\n}\n\nexport default function numberFormatFactory(...args) {\n return new NumberFormatter(...args);\n}\n","export default function memoize(func, opts = {}) {\n const { size = 5000, multipleArguments = false, toKey = (arg) => arg } = opts;\n let cache = Object.create(null);\n let index = Object.create(null);\n let counter = 0;\n let fifo = 0; // First-In-First-Out index\n let cacher;\n let k;\n\n if (multipleArguments) {\n cacher = (...args) => {\n k = toKey(...args);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(...args));\n };\n } else {\n cacher = (arg) => {\n k = toKey(arg);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(arg));\n };\n }\n\n cacher.set = (key, val) => {\n if (counter >= size) {\n delete cache[index[fifo]];\n delete index[fifo];\n counter--;\n fifo++;\n }\n cache[key] = val;\n index[counter] = key;\n counter++;\n return val;\n };\n\n cacher.get = (key) => cache[key];\n\n cacher.has = (key) => key in cache;\n\n cacher.clear = () => {\n cache = Object.create(null);\n index = Object.create(null);\n counter = 0;\n fifo = 0;\n };\n\n cacher.size = () => counter;\n\n return cacher;\n}\n","import numberFormatFactory from './parts/qs-number-formatter';\nimport memoize from './memoize';\n\nexport default function formatter(pattern, thousand, decimal, qType, localeInfo) {\n const qformat = numberFormatFactory(localeInfo, pattern, thousand, decimal, qType);\n const memoized = memoize(qformat.formatValue.bind(qformat), {\n // Handle NaN and cases where toString yields different result than +operator. Ex. a Date.\n toKey: (value) => (isNaN(value) ? value : +value),\n });\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Number} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Number} v Value\n * @param {String} t Thousand\n * @param {String} d Decimal\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v, t, d) {\n memoized.clear();\n return qformat.format(v, p, t, d);\n };\n\n /**\n * Change the pattern on existing formatter\n *\n * @param {String} p Pattern (optional)\n * @return {String} Returns the pattern\n */\n format.pattern = function patternFn(p) {\n if (p) {\n memoized.clear();\n qformat.pattern = p;\n qformat.prepare();\n }\n return qformat.pattern;\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n /* format.locale = function( ...args ) {\n locale = formatLocale( ...args );\n d3format = locale.format( pattern );\n\n return this;\n }; */\n\n return format;\n}\n","/* eslint import/prefer-default-export: 0 */\n\nexport const TYPES = {\n AUTO: 'U',\n INTEGER: 'I',\n NUMBER: 'R',\n FIXED_TO: 'F',\n MONEY: 'M',\n DATE: 'D',\n TIME: 'T',\n DATE_TIME: 'TS',\n INTERVAL: 'IV',\n};\n","import { TYPES } from '../constants';\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst DAYS_ABBR = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst MONTHS_ABBR = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nconst SECONDS_PER_DAY = 86400;\n\nfunction pad(s, n) {\n for (let i = s.length; i < n; i++) {\n s = `0${s}`;\n }\n return s;\n}\n\nfunction parseDate(d, twelveFormat) {\n let h = d.getUTCHours();\n let day = d.getUTCDay() - 1;\n if (twelveFormat) {\n h %= 12;\n if (!h) {\n // h == 0 -> 12\n h = 12;\n }\n }\n\n if (day < 0) {\n day = 6;\n }\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth(),\n day,\n date: d.getUTCDate(),\n h,\n m: d.getUTCMinutes(),\n s: d.getUTCSeconds(),\n f: d.getUTCMilliseconds(),\n t: d.getUTCHours() >= 12 ? 'pm' : 'am',\n };\n}\n\nfunction getRemainder(value) {\n let s = value.toString().split('.');\n if (s[1]) {\n s = Number(`0.${s[1]}`);\n } else {\n return 0;\n }\n return s;\n}\n\nfunction parseIntervalDays(days) {\n const d = days;\n const h = 24 * getRemainder(d);\n const m = 60 * getRemainder(h);\n const s = 60 * getRemainder(m);\n const ms = 1000 * getRemainder(s);\n\n return {\n d: Math.floor(d),\n h: Math.floor(h),\n m: Math.floor(m),\n s: Math.floor(s),\n f: Math.round(ms),\n };\n}\n\nfunction parseInterval(days, pattern) {\n let units = parseIntervalDays(days),\n d = units.d,\n h = units.h,\n m = units.m,\n s = units.s,\n f = units.f,\n w = 0,\n date;\n\n if (/w+|t+/gi.test(pattern)) {\n date = new Date(\n Date.UTC(1899, 11, 30 + Math.floor(days), 0, 0, Math.round(SECONDS_PER_DAY * (days - Math.floor(days))))\n );\n if (isNaN(date.getTime())) {\n date = null;\n }\n }\n\n if (!/D+/gi.test(pattern)) {\n h += d * 24;\n }\n if (!/h+/gi.test(pattern)) {\n m += h * 60;\n }\n if (!/m+/gi.test(pattern)) {\n s += m * 60;\n }\n if (/w+/gi.test(pattern)) {\n w = date ? date.getDay() - 1 : 0;\n if (w < 0) {\n w = 6;\n }\n }\n\n let someT = '';\n if (date) {\n someT = date.getUTCHours() >= 12 ? 'pm' : 'am';\n }\n\n return {\n year: 0,\n month: 0,\n day: w,\n date: d,\n h,\n m,\n s,\n f,\n t: someT,\n };\n}\n\nfunction getMasks(inst, d) {\n return {\n 'Y+|y+': {\n Y: `${Number(`${d.year}`.slice(-2))}`,\n YY: pad(`${d.year}`.slice(-2), 2),\n YYY: pad(`${d.year}`.slice(-3), 3),\n def(m) {\n // default\n return pad(`${d.year}`, m.length);\n },\n },\n 'M+': {\n M: d.month + 1,\n MM: pad(`${d.month + 1}`, 2),\n MMM: inst.locale_months_abbr[d.month],\n def: inst.locale_months[d.month],\n },\n 'W+|w+': {\n W: d.day,\n WW: pad(`${d.day}`, 2),\n WWW: inst.locale_days_abbr[d.day],\n def: inst.locale_days[d.day],\n },\n 'D+|d+': {\n D: d.date,\n def(m) {\n return pad(`${d.date}`, m.length);\n },\n },\n 'h+|H+': {\n h: d.h,\n def(m) {\n return pad(`${d.h}`, m.length);\n },\n },\n 'm+': {\n m: d.m,\n def(m) {\n return pad(`${d.m}`, m.length);\n },\n },\n 's+|S+': {\n s: d.s,\n def(m) {\n return pad(`${d.s}`, m.length);\n },\n },\n 'f+|F+': {\n def(m) {\n let f = `${d.f}`,\n n = m.length - f.length;\n if (n > 0) {\n for (let i = 0; i < n; i++) {\n f += '0';\n }\n } else if (n < 0) {\n f = f.slice(0, m.length);\n }\n return f;\n },\n },\n 't{1,2}|T{1,2}': {\n def(m) {\n let t = d.t;\n if (m[0].toUpperCase() === m[0]) {\n t = t.toUpperCase();\n }\n t = t.slice(0, m.length);\n return t;\n },\n },\n };\n}\n\nclass DateFormatter {\n /**\n * @name DateFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n */\n constructor(localeInfo, pattern, qtype) {\n const info = localeInfo || {};\n\n if (!info.qCalendarStrings) {\n info.qCalendarStrings = {\n qLongDayNames: DAYS,\n qDayNames: DAYS_ABBR,\n qLongMonthNames: MONTHS,\n qMonthNames: MONTHS_ABBR,\n };\n }\n\n this.localeInfo = info;\n this.locale_days = info.qCalendarStrings.qLongDayNames.slice();\n this.locale_days_abbr = info.qCalendarStrings.qDayNames.slice();\n this.locale_months = info.qCalendarStrings.qLongMonthNames.slice();\n this.locale_months_abbr = info.qCalendarStrings.qMonthNames.slice();\n\n if (!pattern) {\n const patternMap = {\n [TYPES.TIME]: info.qTimeFmt || 'hh:mm:ss',\n [TYPES.DATE]: info.qDateFmt || 'YYYY-MM-DD',\n [TYPES.DATE_TIME]: info.qTimestampFmt || 'YYYY-MM-DD hh:mm:ss',\n };\n\n pattern = patternMap[qtype];\n }\n\n this.pattern = pattern;\n }\n\n clone() {\n const n = new DateFormatter(this.localeInfo, this.pattern);\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a date according to given pattern\n * @param {Date} date The date to format.\n * @param {String} pattern The desired format of the date\n * var d = new Date(2013, 8, 15, 13, 55, 40, 987);\n * var n = new DateFormatter();\n * @example\n * m.format( d, 'YYYY-MM-DD hh:mm:ss.ffff') // 2013-08-15 13:55:40.9870\n * m.format( d, 'h:m:s tt') // 1:55:40 pm\n * m.format( d, 'h:m:s TT') // 1:55:40 PM\n * m.format( d, 'M/D/YYYY') // 8/15/2013\n * m.format( d, 'WWWW DD MMM') // Thursday 15 Aug\n * m.format( d, 'WWW DD MMMM @ hh:mm:ss') // Thu 15 August @ 13:55:40\n */\n format(date, pattern) {\n // Fallback pattern is set in constructor\n if (!pattern) {\n pattern = this.pattern ? this.pattern : 'YYYY-MM-DD hh:mm:ss';\n }\n\n pattern = pattern.replace(/\\[.+]|\\[|]/g, '');\n const hasTwelveFlag = /t+/gi.test(pattern);\n let parsedDate;\n\n if (date instanceof Date) {\n parsedDate = parseDate(date, hasTwelveFlag);\n } else {\n if (date < 0) {\n // parseInterval don't support for negative values\n date = -date;\n pattern = `-${pattern}`;\n }\n parsedDate = parseInterval(date, pattern);\n }\n // remove [] and everything inside it\n\n const masks = getMasks(this, parsedDate);\n\n const masksArr = [];\n for (const mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n masksArr.push(mask);\n }\n }\n const dateTimeRegex = new RegExp(masksArr.join('|'), 'g');\n\n const result = pattern.replace(dateTimeRegex, (m) => {\n let r;\n let mask;\n for (mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n r = new RegExp(mask);\n if (r.test(m)) {\n break;\n }\n }\n }\n if (!r) {\n return '';\n }\n let value;\n for (const submask in masks[mask]) {\n if (submask === m || submask.toLowerCase() === m) {\n value = masks[mask][submask];\n if (typeof value === 'undefined') {\n value = masks[mask][submask.toLowerCase()];\n }\n break;\n }\n }\n if (typeof value === 'undefined') {\n value = masks[mask].def;\n }\n\n if (typeof value === 'function') {\n value = value(m);\n }\n return value;\n });\n return result;\n }\n}\n\nexport default function dateFormatFactory(...args) {\n return new DateFormatter(...args);\n}\n","import dateFormatFactory from './parts/qs-date-formatter';\nimport { TYPES } from './constants';\nimport memoize from './memoize';\n\nconst MS_PER_DAY = 86400000;\n\nexport function QlikTimeToDate(value) {\n return new Date(\n Date.UTC(1899, 11, 30 + Math.floor(value), 0, 0, 0, Math.round(MS_PER_DAY * (value - Math.floor(value))))\n );\n}\n\nexport default function formatter(pattern, qtype = 'TS', localeInfo = null) {\n let qformat = dateFormatFactory(localeInfo, pattern, qtype);\n let memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' && typeof date.getTime === 'function' ? date.getTime() : date),\n });\n\n /**\n * Prepare a value according to the specified qtype\n *\n * @param {Number} value The value to be formatted\n * @return {Number} The converted value (if applied)\n */\n function prepare(value) {\n if (qtype !== TYPES.INTERVAL) {\n return QlikTimeToDate(value);\n }\n return value;\n }\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Date} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n value = prepare(value);\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Date} v Value\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v) {\n memoized.clear();\n v = prepare(v);\n return qformat.format(v, p);\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n format.locale = function locale(li) {\n qformat = dateFormatFactory(li, pattern, qtype);\n memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' ? date.getTime() : date),\n });\n return this;\n };\n\n /**\n * Get or set the QType\n *\n * @param {String} nqt New qType (optional)\n * @return {String} Current qtype\n */\n format.qtype = function qtypeFn(nqt) {\n if (nqt !== undefined) {\n qtype = nqt;\n memoized.clear();\n }\n return qtype;\n };\n\n return format;\n}\n","import numberFormat from './numberFormat';\nimport timeFormat from './timeFormat';\n\nexport { numberFormat, timeFormat };\n\nexport function createFromMetaInfo(meta, localeInfo) {\n if (meta && meta.qNumFormat && ['D', 'T', 'TS', 'IV'].indexOf(meta.qNumFormat.qType) !== -1) {\n return timeFormat(meta.qNumFormat.qFmt, meta.qNumFormat.qType, localeInfo);\n }\n let pattern = '#';\n let thousand = localeInfo && typeof localeInfo.qThousandSep !== 'undefined' ? localeInfo.qThousandSep : ',';\n let decimal = localeInfo && typeof localeInfo.qDecimalSep !== 'undefined' ? localeInfo.qDecimalSep : '.';\n let type = 'U';\n let isAuto = meta && !!meta.qIsAutoFormat;\n if (meta && meta.qNumFormat) {\n pattern = meta.qNumFormat.qFmt || pattern;\n thousand = meta.qNumFormat.qThou || thousand;\n decimal = meta.qNumFormat.qDec || decimal;\n type = meta.qNumFormat.qType || type;\n isAuto = isAuto && ['M'].indexOf(meta.qNumFormat.qType) === -1;\n } else {\n isAuto = true;\n }\n\n if (isAuto || type === 'U') {\n pattern = `#${decimal}##A`;\n type = 'U';\n }\n\n return numberFormat(pattern, thousand, decimal, type, localeInfo);\n}\n","import { createFromMetaInfo } from '../formatter';\n\nexport default function qField({ meta, id, key, localeInfo, fieldExtractor, value, type, sourceField } = {}) {\n let values;\n\n const valueFn = value || (type === 'dimension' ? (d) => d.qElemNo : (d) => d.qValue);\n const labelFn = (d) => d.qText || '';\n const reduce = type === 'dimension' ? 'first' : 'avg';\n const formatter = createFromMetaInfo(meta, localeInfo);\n const reduceLabel = type === 'dimension' ? 'first' : (labels, v) => formatter(v);\n\n const f = {\n id: () => id,\n key: () => key,\n raw: () => meta,\n title: () => meta.qFallbackTitle || meta.label,\n type: () => type,\n origin: () => sourceField,\n items: () => {\n if (!values) {\n values = fieldExtractor(f);\n }\n return values;\n },\n min: () => meta.qMin,\n max: () => meta.qMax,\n value: valueFn,\n label: labelFn,\n reduce,\n reduceLabel,\n formatter: () => formatter,\n tags: () => meta.qTags,\n };\n\n return f;\n}\n","// import augmentH from './augment-hierarchy';\nimport extend from 'extend';\nimport SExtractor from './extractor-s';\nimport { extract as TExtractor, augment as augmentTree } from './extractor-t';\nimport { findField } from './util';\nimport field from './field';\n\nfunction createFields(path, obj, prefix, parentKey, opts) {\n return (obj[path] || []).map((meta, i) => {\n const fieldKey = `${parentKey ? `${parentKey}/` : ''}${path}/${i}`;\n const f = {\n instance: field(\n extend(\n {\n id: `${prefix ? `${prefix}/` : ''}${fieldKey}`,\n key: fieldKey,\n meta,\n },\n opts\n )\n ),\n };\n f.attrDims = createFields(\n 'qAttrDimInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qElemNo, type: 'dimension' })\n );\n f.attrExps = createFields(\n 'qAttrExprInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qNum, type: 'measure' })\n );\n f.measures = createFields(\n 'qMeasureInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qValue, type: 'measure' })\n );\n return f;\n });\n}\n\nexport default function q({ key, data, config = {} } = {}) {\n const cache = {\n fields: [],\n wrappedFields: [],\n allFields: [],\n virtualFields: [],\n };\n\n const cube = data;\n if (!cube) {\n throw new Error('Missing \"data\" input');\n }\n\n if (!cube.qDimensionInfo) {\n throw new Error('The \"data\" input is not recognized as a hypercube');\n }\n\n const deps = q.util;\n\n const opts = {\n cache,\n cube,\n localeInfo: config.localeInfo,\n fieldExtractor: null,\n pages: null,\n hierarchy: () => null,\n virtualFields: config.virtualFields,\n };\n\n const dataset = {\n key: () => key,\n raw: () => cube,\n field: (query) => findField(query, opts),\n fields: () => cache.fields.slice(),\n extract: (extractionConfig) => opts.extractor(extractionConfig, dataset, cache, deps),\n hierarchy: (hierarchyConfig) => opts.hierarchy(hierarchyConfig, dataset, cache, deps),\n _cache: () => cache,\n };\n\n if (cube.qMode === 'K' || cube.qMode === 'T' || (!cube.qMode && cube.qNodesOnDim)) {\n opts.extractor = TExtractor;\n opts.hierarchy = augmentTree;\n opts.pages = cube.qMode === 'K' ? cube.qStackedDataPages : cube.qTreeDataPages;\n } else if (cube.qMode === 'S') {\n opts.extractor = SExtractor;\n opts.pages = cube.qDataPages;\n opts.hierarchy = augmentTree;\n } else {\n opts.extractor = () => []; // TODO - throw unsupported error?\n }\n\n opts.fieldExtractor = (f) => opts.extractor({ field: f }, dataset, cache, deps);\n\n const dimAcc = cube.qMode === 'S' ? (d) => d.qElemNumber : undefined;\n const measAcc = cube.qMode === 'S' ? (d) => d.qNum : undefined;\n\n cache.wrappedFields.push(\n ...createFields('qDimensionInfo', cube, key, '', extend({}, opts, { value: dimAcc, type: 'dimension' }))\n );\n cache.wrappedFields.push(\n ...createFields('qMeasureInfo', cube, key, '', extend({}, opts, { value: measAcc, type: 'measure' }))\n );\n\n cache.fields = cache.wrappedFields.map((f) => f.instance);\n\n const traverse = (arr) => {\n arr.forEach((f) => {\n cache.allFields.push(f.instance);\n traverse(f.measures);\n traverse(f.attrDims);\n traverse(f.attrExps);\n });\n };\n\n traverse(cache.wrappedFields);\n\n (config.virtualFields || []).forEach((v) => {\n // key: 'temporal',\n // from: 'qDimensionInfo/0',\n // override: {\n // value: v => v.qNum,\n // },\n const sourceField = dataset.field(v.from);\n const f = field({\n meta: sourceField.raw(),\n id: `${key}/${v.key}`,\n sourceField,\n fieldExtractor: (ff) => opts.extractor({ field: ff }, dataset, cache, deps),\n key: v.key,\n type: sourceField.type(),\n localeInfo: opts.localeInfo,\n value: sourceField.value,\n ...(v.override || {}),\n });\n cache.virtualFields.push(f);\n });\n\n cache.allFields.push(...cache.virtualFields);\n\n return dataset;\n}\n","import resolve from '../json-path-resolver';\n\nconst LAYOUT_TO_PROP = [\n ['qHyperCube', 'qHyperCubeDef'],\n ['qTreeData', 'qTreeDataDef'],\n ['qDimensionInfo', 'qDimensions'],\n ['qMeasureInfo', 'qMeasures'],\n ['qAttrDimInfo', 'qAttributeDimensions'],\n ['qAttrExprInfo', 'qAttributeExpressions'],\n];\n\nconst DIM_RX = /\\/qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /\\/qMeasureInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst HC_RX = /\\/?qHyperCube/;\nconst TD_RX = /\\/?qTreeData/;\n\nconst SHORTEN_HC = (path) => `${path.substr(0, path.indexOf('/qHyperCubeDef') + 14)}`; // 14 = length of '/qHyperCubeDef'\nconst SHORTEN_TD = (path) => `${path.substr(0, path.indexOf('/qTreeDataDef') + 13)}`; // 13 = length of '/qTreeDataDef'\n\nexport function extractFieldFromId(id, layout) {\n let path = id;\n let dimensionIdx = -1;\n let measureIdx = -1;\n let pathToCube = '';\n let shortenizer = (p) => p;\n if (HC_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qHyperCube') + 10)}`; // 10 = length of 'qHyperCube'\n shortenizer = SHORTEN_HC;\n } else if (TD_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qTreeData') + 9)}`; // 9 = length of 'qTreeData'\n shortenizer = SHORTEN_TD;\n }\n\n let shortenPath = true;\n\n if (DIM_RX.test(id)) {\n dimensionIdx = +DIM_RX.exec(id)[1];\n }\n\n if (M_RX.test(id)) {\n measureIdx = +M_RX.exec(id)[1];\n }\n\n if (ATTR_DIM_RX.test(id)) {\n measureIdx = -1;\n dimensionIdx = 0;\n const attrCol = +ATTR_DIM_RX.exec(path)[2];\n if (!isNaN(attrCol)) {\n dimensionIdx = attrCol;\n path = path.replace(/\\/\\d+$/, '');\n }\n shortenPath = false;\n }\n\n if (ATTR_EXPR_RX.test(id)) {\n // depends on number of measures + number of attr expressions\n // in dimensions and measures before this one\n const offset = measureIdx;\n if (layout) {\n measureIdx = 0;\n const hc = resolve(pathToCube, layout);\n\n // offset by number of measures\n measureIdx += (hc.qMeasureInfo || []).length;\n\n // offset by total number of attr expr in dimensions\n // (assuming attr expr in dimensions are ordered first)\n if (dimensionIdx > -1) {\n measureIdx = hc.qDimensionInfo\n .slice(0, dimensionIdx)\n .reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n dimensionIdx = -1;\n } else {\n measureIdx = hc.qDimensionInfo.reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n // offset by total number of attr expr in measures before 'index'\n measureIdx = hc.qMeasureInfo.slice(0, offset).reduce((v, meas) => v + meas.qAttrExprInfo.length, measureIdx);\n }\n\n // offset by the actual column value for the attribute expression itself\n measureIdx += +ATTR_EXPR_RX.exec(path)[1];\n } else if (dimensionIdx > -1) {\n dimensionIdx = -1;\n measureIdx = +ATTR_EXPR_RX.exec(path)[1];\n } else {\n measureIdx += +ATTR_EXPR_RX.exec(path)[1] + 1;\n }\n }\n\n LAYOUT_TO_PROP.forEach(([v, prop]) => {\n path = path.replace(v, prop);\n });\n\n if (shortenPath) {\n path = shortenizer(path);\n }\n\n if (path && path[0] !== '/') {\n path = `/${path}`;\n }\n\n return {\n measureIdx,\n dimensionIdx,\n path,\n };\n}\n\n/**\n * Helper method to generate suitable QIX selection methods and parameters based on a brush instance.\n * @alias brush\n * @memberof picasso.q\n * @param {Brush} brush A brush instance\n * @param {object} [opts]\n * @param {boolean} [opts.byCells=false] Whether to prefer selection by row index.\n * @param {string} [opts.primarySource] Field source to extract row indices from. If not specified, indices from first source are used.\n * @param {boolean} [opts.orMode=true] If false, combine measure range selections.\n * @param {object} [layout] QIX data layout. Needed only when brushing on attribute expressions, to be able to calculate the measure index.\n * @return {object[]} An array of relevant selections\n */\nexport default function qBrush(brush, opts = {}, layout) {\n const byCells = opts.byCells;\n const primarySource = opts.primarySource;\n const selections = [];\n const methods = {};\n const isActive = brush.isActive();\n let hasValues = false;\n brush.brushes().forEach((b) => {\n const info = extractFieldFromId(b.id, layout);\n if (b.type === 'range' && info.measureIdx > -1 && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.multiRangeSelectTreeDataValues) {\n methods.multiRangeSelectTreeDataValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.multiRangeSelectTreeDataValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qDimensionIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n } else {\n if (b.type === 'range' && info.measureIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.rangeSelectHyperCubeValues) {\n methods.rangeSelectHyperCubeValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.rangeSelectHyperCubeValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n }\n if (b.type === 'range' && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.selectHyperCubeContinuousRange) {\n methods.selectHyperCubeContinuousRange = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.selectHyperCubeContinuousRange.ranges.push({\n qDimIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: false,\n },\n })\n );\n }\n }\n\n if (b.type === 'value' && info.dimensionIdx > -1) {\n if (byCells) {\n if (\n layout &&\n layout.qHyperCube &&\n (layout.qHyperCube.qMode === 'P' || layout.qHyperCube.qMode === 'T' || layout.qHyperCube.qMode === 'K')\n ) {\n const hyperCube = layout.qHyperCube;\n const noOfLeftDims = hyperCube.qNoOfLeftDims;\n const dimInterColSortIdx = hyperCube.qEffectiveInterColumnSortOrder.indexOf(info.dimensionIdx);\n\n if (!methods.selectPivotCells) {\n methods.selectPivotCells = {\n path: info.path,\n cells: [],\n };\n }\n\n if (b.id === primarySource || !primarySource) {\n const validValues = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n\n if ((noOfLeftDims === 0 || dimInterColSortIdx >= noOfLeftDims) && noOfLeftDims > -1) {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'T',\n qCol: val,\n qRow: dimInterColSortIdx - noOfLeftDims,\n });\n });\n } else {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'L',\n qCol: info.dimensionIdx,\n qRow: val,\n });\n });\n }\n hasValues = !!methods.selectPivotCells.cells.length;\n }\n } else {\n if (!methods.selectHyperCubeCells) {\n methods.selectHyperCubeCells = {\n path: info.path,\n cols: [],\n };\n }\n\n methods.selectHyperCubeCells.cols.push(info.dimensionIdx);\n if (b.id === primarySource || (!primarySource && !methods.selectHyperCubeCells.values)) {\n methods.selectHyperCubeCells.values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!methods.selectHyperCubeCells.values.length;\n }\n }\n } else {\n const values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!values.length;\n selections.push({\n params: [info.path, info.dimensionIdx, values, false],\n method: 'selectHyperCubeValues',\n });\n }\n }\n }\n });\n\n if (!hasValues && isActive) {\n return [\n {\n method: 'resetMadeSelections',\n params: [],\n },\n ];\n }\n\n if (methods.rangeSelectHyperCubeValues) {\n selections.push({\n method: 'rangeSelectHyperCubeValues',\n params: [\n methods.rangeSelectHyperCubeValues.path,\n methods.rangeSelectHyperCubeValues.ranges,\n [],\n opts.orMode ?? true,\n ],\n });\n }\n\n if (methods.selectHyperCubeContinuousRange) {\n selections.push({\n method: 'selectHyperCubeContinuousRange',\n params: [methods.selectHyperCubeContinuousRange.path, methods.selectHyperCubeContinuousRange.ranges],\n });\n }\n\n if (methods.selectHyperCubeCells) {\n selections.push({\n method: 'selectHyperCubeCells',\n params: [\n methods.selectHyperCubeCells.path,\n methods.selectHyperCubeCells.values,\n methods.selectHyperCubeCells.cols,\n ],\n });\n }\n\n if (methods.selectPivotCells) {\n selections.push({\n method: 'selectPivotCells',\n params: [methods.selectPivotCells.path, methods.selectPivotCells.cells],\n });\n }\n\n if (methods.multiRangeSelectTreeDataValues) {\n selections.push({\n method: 'multiRangeSelectTreeDataValues',\n params: [methods.multiRangeSelectTreeDataValues.path, methods.multiRangeSelectTreeDataValues.ranges],\n });\n }\n\n return selections;\n}\n","import data from './data/dataset';\nimport qBrushHelper from './brush/q-brush';\nimport numberFormat from './formatter/numberFormat';\nimport timeFormat from './formatter/timeFormat';\n\nexport default function initialize(picasso) {\n data.util = picasso.data('matrix').util;\n picasso.data('q', data);\n picasso.formatter('q-number', numberFormat);\n picasso.formatter('q-time', timeFormat);\n}\n\ninitialize.qBrushHelper = qBrushHelper; // deprecated\ninitialize.selections = qBrushHelper;\n","const selectionUtils = {\n brushInterceptors: {\n DIM_VALUE_NULL: -2,\n DIM_VALUE_TOTAL: -3,\n brushOnlyOne,\n filterValues,\n },\n};\n\nexport default selectionUtils;\n\n/**\n * Implementation details\n */\n\n/**\n * Brush interception filter func - Brush ONE single value\n * @param selectBrush\n * @param items\n * @returns {*}\n */\nfunction brushOnlyOne(brush, items) {\n const activeBrushes = brush.brushes().filter((b) => b.type === 'value');\n let toggleOff = [];\n if (activeBrushes.length) {\n activeBrushes.forEach((b) => {\n toggleOff = toggleOff.concat(\n b.brush.values().map((v) => ({\n key: b.id,\n value: v,\n }))\n );\n });\n }\n\n return toggleOff.concat(items);\n}\n\nfunction findField(chartInstance, item) {\n const splitIndex = item.key.indexOf('qHyperCube') + 'qHyperCube'.length;\n const datasetName = item.key.substr(0, splitIndex);\n const fieldName = item.key.substr(splitIndex + 1);\n return chartInstance.dataset(datasetName).field(fieldName);\n}\n\n/**\n * Brush interception filter function\n * Do not allow selections on null value\n * Do not allow selections in locked dimension\n * @param chartInstance\n * @param items\n * @returns Object { items: {Array}, itemsAreLocked: {Boolean} }\n */\nfunction filterValues(chartInstance, items) {\n const self = this;\n let meta;\n let field;\n const lockedFields = [];\n let lockedItems = 0;\n const brushItems = [];\n\n items.forEach((item) => {\n if (item.value === self.DIM_VALUE_NULL || item.value === self.DIM_VALUE_TOTAL) {\n return;\n }\n field = findField(chartInstance, item);\n\n meta = field && field.raw();\n\n if (!meta.qLocked) {\n brushItems.push({\n key: item.key,\n value: item.value,\n });\n } else {\n lockedFields.push(meta);\n lockedItems++;\n }\n });\n\n return { items: brushItems, itemsAreLocked: lockedItems > 0 && lockedItems === items.length, lockedFields };\n}\n","import extend from 'extend';\nimport Actions from './selection-actions';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nconst DEFAULT_OPTIONS = {\n data: ['elemNo'],\n contexts: ['select'],\n startOnEmptySelection: true,\n style: {\n active: {\n strokeWidth: 2,\n stroke: '#333', // To make it consistent with other charts\n },\n inactive: {\n opacity: 0.3,\n },\n },\n};\n\nconst ESCAPE = 27;\nconst ENTER = 13;\nconst SHIFT = 16;\n\n/**\n * Create a new Selections handler\n *\n * @param {Object} options\n * @param {Object} options.model The backend model for the chart\n * @param {Object} options.chartInstance Picasso chart instance\n * @param {Object} options.selectionsApi Object selectionsApi\n * @returns {Object} The selections handler instance\n */\nfunction Selections(options) {\n if (!options || !options.chartInstance || !options.selectionsApi) {\n throw Error('Selections-handler: Missing input');\n }\n const chartInstance = options.chartInstance;\n const selectionsApi = options.selectionsApi;\n const dataPaths = options.dataPaths || [''];\n const selectPaths = options.selectPaths;\n const lasso = options.lasso;\n\n let selectionContexts = [];\n const selectionsApiRestoreHelper = { propertiesToRestore: {} };\n let on = false;\n const actions = Actions(chartInstance, selectionsApi, selectPaths);\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n let lastShift = false;\n function shiftToggle(e) {\n if (e.keyCode === SHIFT && e.shiftKey !== lastShift) {\n lastShift = e.shiftKey;\n lasso.toggle();\n }\n }\n\n function confirmOrCancelSelection(event) {\n const key = event.keyCode;\n if (key === ESCAPE) {\n selectionsApi.cancel();\n } else if (key === ENTER) {\n selectionsApi.confirm();\n }\n }\n\n // If a single field in a single table is not locked, this function returns false\n function areAllFieldsLocked() {\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n return dimFields.length && dimFields.every((field) => field.raw().qLocked);\n }\n\n // If a single field in a single table is not locked, this function returns false\n function getFieldsLocked() {\n const lockedFields = [];\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n for (let i = 0; i < dimFields.length; i++) {\n if (dimFields[i].raw().qLocked) {\n lockedFields.push(dimFields[i].raw());\n }\n }\n return {\n fields: lockedFields,\n areAllFieldsLocked: lockedFields.length && lockedFields.length === dimFields.length,\n };\n }\n\n function isLassoDisabled() {\n return options.isLassoDisabled && options.isLassoDisabled();\n }\n\n selectionsApi.on('cleared', () => {\n selectionContexts.forEach((context) => {\n context.brush.clear();\n // Clear dependent components\n context.dependentComponents.forEach((comp) => {\n const instance = chartInstance.component(comp.id);\n if (instance) {\n instance.emit(comp.clear);\n }\n });\n });\n });\n\n // Setup a selection context\n /*\n builder - instance of chart-builder\n componentKeys = []\n options = {\n contexts: [],\n data: [],\n style: {}\n }\n */\n /**\n * Setup a selection context\n * @param {Object} options Selection context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n fn.tearDown();\n\n const result = this.setUpBrush(options);\n\n if (on) {\n register();\n }\n\n return result;\n };\n fn.setUpBrush = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n const selectionTrigger = {\n on: 'tap',\n action(e) {\n return e.ctrlKey || options.isSingleSelect ? 'set' : 'toggle';\n },\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n };\n\n const selectionConsumer = {\n context: opts.contexts[0],\n data: opts.data,\n style: opts.style,\n };\n\n const context = createContext(opts, chartInstance);\n // Do this here instead of in register to be able to catch the consumer\n context.listeners.toggle = function (items) {\n if (!on) {\n return [];\n }\n const fieldsLocked = getFieldsLocked();\n if (opts.startOnEmptySelection && items.length === 0 && fieldsLocked.areAllFieldsLocked) {\n eventUtils.showLockedFeedback(fieldsLocked.fields);\n return [];\n }\n return actions.toggleValues(items, context.brush, opts.startOnEmptySelection);\n };\n\n // Add all three to cover tap, brush range and lasso\n context.brush.intercept('toggle-values', context.listeners.toggle);\n context.brush.intercept('add-values', context.listeners.toggle);\n context.brush.intercept('remove-values', context.listeners.toggle);\n context.brush.intercept('set-values', context.listeners.toggle);\n\n context.listeners.start = function () {\n if (selectionContexts.length > 1) {\n selectionContexts.forEach((c) => {\n if (c !== context) {\n c.brush.end();\n }\n });\n\n // something may still be needed but can not call selectionsApi.clear() that would cause a infinite loop\n // if (!selectionsApi.canClear || selectionsApi.canClear()) {\n // selectionsApi.clear();\n // }\n }\n };\n\n selectionContexts.push(context);\n\n return { trigger: selectionTrigger, consume: selectionConsumer };\n };\n fn.setUpStart = function () {\n fn.tearDown();\n };\n fn.setUpDone = function () {\n if (on) {\n register();\n }\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n selectionContexts.forEach((context) => {\n context.brush.removeInterceptor('toggle-values', context.listeners.toggle);\n context.brush.removeInterceptor('add-values', context.listeners.toggle);\n context.brush.removeInterceptor('remove-values', context.listeners.toggle);\n context.brush.removeInterceptor('set-values', context.listeners.toggle);\n });\n selectionContexts = [];\n };\n\n function register() {\n selectionContexts.forEach((context) => {\n context.listeners.update = function (added, removed) {\n // On tap end, picaso will run rendering in the same frame, and if this is a heavy job then long tap end will happen before tap end finish. This can trigger the radial context menu.\n // So we prevent long tap end here.\n if (!context.sleep) {\n actions.update(added, removed, context.brush);\n }\n };\n context.brush.on('update', context.listeners.update);\n context.brush.on('start', context.listeners.start);\n });\n }\n\n function deregister() {\n selectionContexts.forEach((context) => {\n context.brush.removeListener('update', context.listeners.update);\n context.brush.removeListener('start', context.listeners.start);\n });\n }\n\n fn.pauseEngineCalls = function (id) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = true;\n }\n });\n };\n\n fn.resumeEngineCalls = function (id, run) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = false;\n if (run) {\n context.listeners.update([], []);\n }\n }\n });\n };\n\n fn.addComponent = function (id, comp) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.dependentComponents.push(comp);\n }\n });\n };\n\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n document.addEventListener('keydown', shiftToggle);\n document.addEventListener('keyup', shiftToggle);\n\n const onDeactivated = () => {\n selectionContexts.forEach((context) => {\n context.brush.end();\n });\n document.removeEventListener('keyup', confirmOrCancelSelection);\n if (lasso.active()) {\n lasso.toggle();\n }\n };\n selectionsApi.on('deactivated', onDeactivated);\n selectionsApiRestoreHelper.unbindDeactivated = () => {\n selectionsApi.removeListener('deactivated', onDeactivated);\n };\n\n const onActivated = () => {\n document.addEventListener('keyup', confirmOrCancelSelection);\n };\n selectionsApi.on('activated', onActivated);\n selectionsApiRestoreHelper.unbindActivated = () => {\n selectionsApi.removeListener('activated', onActivated);\n };\n };\n fn.isOn = () => on;\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n document.removeEventListener('keydown', shiftToggle);\n document.removeEventListener('keyup', shiftToggle);\n document.removeEventListener('keyup', confirmOrCancelSelection);\n\n selectionsApiRestoreHelper.unbindActivated();\n selectionsApiRestoreHelper.unbindDeactivated();\n };\n\n fn.lassoState = function () {\n return lasso.active() && !isLassoDisabled();\n };\n fn.allFieldsLocked = function () {\n return areAllFieldsLocked();\n };\n\n return fn;\n}\n\nclass NoSelections {\n // eslint-disable-next-line class-methods-use-this\n isOn() {\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n on() {\n console.warn('Can not turn on selections on this object');\n }\n\n // eslint-disable-next-line class-methods-use-this\n off() {}\n}\n\nexport default {\n create(options) {\n if (!options.selectionsApi) {\n return new NoSelections();\n }\n return Selections(options);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n listeners: {},\n dependentComponents: [],\n id: options.contexts[0],\n };\n}\n","import PicassoQ from 'picasso-plugin-q/dist/picasso-q';\nimport selectionUtils from './selection-utils';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nfunction SelectionActions(chartInstance, selectionsApi, paths) {\n function fn() {}\n\n function update(added, removed, brush) {\n if (!selectionsApi.isActive()) {\n selectionsApi.begin(paths);\n }\n const selections = PicassoQ.qBrushHelper(brush);\n selections.forEach((s) => {\n selectionsApi.select(s);\n });\n }\n\n function toggleValues(items, brush, startOnEmptySelection) {\n const filterResult = selectionUtils.brushInterceptors.filterValues(chartInstance, items);\n const itms = filterResult.items;\n if (filterResult.itemsAreLocked) {\n eventUtils.showLockedFeedback(filterResult.lockedFields);\n }\n if (!selectionsApi.isActive() && !filterResult.itemsAreLocked && (startOnEmptySelection || itms.length > 0)) {\n selectionsApi.begin(paths);\n brush.start();\n brush.emit('update', [], []); // and activate our brush\n }\n\n return itms;\n }\n\n fn.update = update;\n fn.toggleValues = toggleValues;\n\n return fn;\n}\nexport default SelectionActions;\n","/**\n * Create a new tooltip action context\n *\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The tooltip actions handler instance\n */\nfunction TooltipActions(chartInstance, componentKey, data, context, tooltipKey) {\n let hasOpen = false;\n\n context = context || 'tooltip';\n data = data || ['self'];\n\n const brush = chartInstance.brush(context);\n\n const fn = {};\n\n // Exposed here for test stub purposes\n fn.isOpen = function () {\n return hasOpen;\n };\n\n function closeTooltip() {\n if (hasOpen) {\n const tooltip = chartInstance.component(tooltipKey);\n tooltip.emit('hide');\n }\n hasOpen = false;\n }\n\n function openTooltip(shapes) {\n hasOpen = true;\n const tooltip = chartInstance.component(tooltipKey);\n const e = {};\n const data = { nodes: shapes };\n tooltip.emit('show', e, data);\n }\n\n fn.closeTooltip = closeTooltip;\n\n /**\n * Updates the contents in tooltip. Requires an array of tooltipInfo.labelData and\n * an array of tooltipInfo.measureRows for the tooltip to display content, otherwise\n * it will show nothing. These key value mappings should be sent in from the charts.\n */\n function update() {\n const brushes = brush.brushes();\n\n // Fetches only the shapes that we are hovering over\n const shapes = chartInstance.getAffectedShapes(context, 'and', data, componentKey);\n\n if (brushes.length >= 1) {\n hasOpen = true;\n openTooltip(shapes);\n } else {\n closeTooltip();\n }\n }\n\n function toggleInterceptor(items) {\n // Remove duplicates if we have multiple dimensions to aoivd a toggle\n // ex: set(2006 ) ->2006 is on, followed by set(2006 ) ->2006 is off\n if (data.length > 1) {\n const check = {};\n const ret = [];\n items.forEach((item) => {\n if (!check[item.key]) {\n check[item.key] = {};\n }\n if (!check[item.key][item.value]) {\n check[item.key][item.value] = true;\n ret.push(item);\n }\n });\n return ret;\n }\n return items;\n }\n\n fn.update = update;\n fn.toggleInterceptor = toggleInterceptor;\n return fn;\n}\n\nexport default {\n create(...args) {\n return TooltipActions(...args);\n },\n};\n","export default {\n formatMeasureValue,\n};\n\nfunction formatMeasureValue(field, measureContent) {\n if (field.raw().isCustomFormatted) {\n return field.formatter()(measureContent.value.qText);\n }\n const value = measureContent.value.qNum !== undefined ? measureContent.value.qNum : measureContent.value.qValue;\n return field.formatter()(value);\n}\n","const MAX_VISIBLE_ITEMS = 5;\nconst OTHERS_ELEMNO = -3;\nconst NULL_ELEMNO = -2;\n\n// TODO: The function getAffectedShapes returns duplicate shapes.\n// Remove when this is fixed on picasso\nfunction filterDuplicateShapes(shapes) {\n const uniques = [];\n\n shapes.forEach((shape) => {\n if (uniques.indexOf(shape) === -1 && shape.type !== 'container') {\n uniques.push(shape);\n }\n });\n\n return uniques;\n}\n\nexport const createFilter = (filterShapes) => (shapes) =>\n filterShapes ? filterShapes(shapes) : filterDuplicateShapes(shapes);\n\nexport const createContent =\n (context) =>\n ({ h, data, style }) => {\n const content = extractContent(context, data);\n const renderSettings = {\n h,\n style,\n rtl: context.direction === 'rtl',\n translator: context.translator,\n };\n return context.renderer(renderSettings, content);\n };\n\nfunction extractContent(tooltipInfo, uniqueShapes) {\n const dataset = tooltipInfo.chartInstance.dataset(tooltipInfo.dataPath);\n\n // Create content + header\n const content = [];\n\n const numberInExcess = uniqueShapes.length - MAX_VISIBLE_ITEMS;\n const numItems = Math.min(MAX_VISIBLE_ITEMS, uniqueShapes.length);\n for (let j = 0; j < numItems; j++) {\n const shape = uniqueShapes[j];\n const localContent = {\n rows: [],\n };\n\n if (tooltipInfo.labelData) {\n const labels = [];\n const refPaths = tooltipInfo.labelData;\n let isNullValue = false;\n for (let i = 0; i < refPaths.length; i++) {\n const currentNode = shape.data[refPaths[i]].value;\n if (currentNode.qElemNo === NULL_ELEMNO || currentNode.qElemNumber === NULL_ELEMNO) {\n // The node is null\n isNullValue = true;\n break;\n }\n labels.push(shape.data[refPaths[i]].value.qText);\n }\n\n if (isNullValue) {\n return undefined;\n }\n\n localContent.header = tooltipInfo.headerResolver(labels);\n localContent.rows = tooltipInfo.measureRows\n .map((measureRow) => {\n const rowData = shape.data;\n return tooltipInfo.rowResolver(dataset.field(rowData[measureRow].source.field), rowData[measureRow], rowData);\n })\n .filter((row) => !!row);\n\n const colorByData = getColorByDimData(tooltipInfo, shape);\n if (colorByData) {\n localContent.rows.unshift(colorByData);\n }\n content.push(localContent);\n }\n }\n if (numberInExcess > 0) {\n content.numberInExcess = numberInExcess;\n }\n\n content.rowCount = content[0] ? content.length * content[0].rows.length : 0;\n return content;\n}\n\nfunction getOthersIndex(values) {\n let index = -1;\n for (let i = 0; i < values.length; i++) {\n if (values[i] === OTHERS_ELEMNO) {\n index = i;\n }\n }\n return index;\n}\n\n/**\n * Get the information of how the color by row should look like.\n * The data for color by is fetched directly from the shape and it's key value mapping called\n * colorByDim, which contains the label and the elemNo\n * @param tooltipInfo - an object containing the chart view\n * @param shape - an object representing the shape currently hovered upon\n * @returns {{label: string - legendTitle, value: (*|String) - color by value, template: string - html template}}\n */\nfunction getColorByDimData(tooltipInfo, shape) {\n const colorData = shape.data.color;\n const colorSettings = tooltipInfo.colorService?.getSettings?.();\n\n if (!colorSettings || colorSettings.type === 'color' || !colorData || !colorSettings.fieldType) {\n return undefined;\n }\n\n const ids = [];\n tooltipInfo.data.forEach((mapping) => {\n const elemNoObj = shape.data[mapping];\n if (elemNoObj) {\n ids.push(elemNoObj.value);\n }\n });\n const othersIndex = getOthersIndex(ids);\n\n const { translator } = tooltipInfo;\n const label = colorSettings.label;\n const color = shape.attrs?.fill;\n const value = othersIndex !== -1 ? translator.get('properties.dimensionLimits.others') : colorData.label;\n return { color, label, value };\n}\n","/* eslint no-underscore-dangle: 0 */\nconst TOOLTIP_CONTAINER_ID = 'dist-flow-tooltip';\nconst TOOLTIP_CONTAINER_SELECTOR = `#${TOOLTIP_CONTAINER_ID}`;\n\nfunction appendTooltipContainer() {\n if (!document.querySelector(TOOLTIP_CONTAINER_SELECTOR)) {\n const container = document.createElement('div');\n container.id = TOOLTIP_CONTAINER_ID;\n container.style.overflow = 'hidden';\n container.style.position = 'fixed';\n container.style.pointerEvents = 'none';\n container.style.left = '0px';\n container.style.top = '0px';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.zIndex = 1020;\n document.body.appendChild(container);\n }\n}\n\nfunction destroyTooltipContainer() {\n const elm = document.querySelector(TOOLTIP_CONTAINER_SELECTOR);\n if (elm && elm.parentElement && elm.childElementCount < 1) {\n elm.parentElement.removeChild(elm);\n }\n}\n\n/**\n * Base tooltip definition\n */\nexport default function tooltip({ key = 'tooltip', rtl, fontFamily, filter, content }) {\n return {\n show: true,\n key,\n type: 'tooltip',\n layout: {\n displayOrder: 3,\n },\n beforeMount() {\n appendTooltipContainer();\n },\n beforeUpdate() {\n appendTooltipContainer();\n },\n destroyed() {\n destroyTooltipContainer();\n },\n settings: {\n appendTo: () => document.querySelector(TOOLTIP_CONTAINER_SELECTOR),\n content,\n filter,\n extract: (context) => context.node,\n direction: rtl ? 'rtl' : 'ltr',\n placement: 'bounds',\n },\n style: {\n arrow: {\n color: '#404040',\n },\n content: {\n display: 'table',\n 'border-spacing': '4px',\n background: 'rgba(64, 64, 64, 0.9)',\n opacity: '1',\n fontSize: '13px',\n fontFamily,\n 'empty-cells': 'show',\n },\n cell: {\n 'max-width': '180px',\n 'word-break': 'break-word',\n 'word-wrap': 'break-word',\n 'overflow-wrap': 'break-word',\n hyphens: 'auto',\n },\n },\n };\n}\n","/** @jsx h */\nimport rtlUtils from '../../extra/rtl-util';\n\nconst { detectTextDirection: getDirection } = rtlUtils;\n\nexport default function render(settings, content) {\n const { h, style, translator, rtl } = settings;\n const result = [];\n const labelTextAlign = rtl ? 'right' : 'left';\n content.forEach((item) => {\n if (item.header) {\n const headerStyle = {\n ...style.cell,\n textAlign: labelTextAlign,\n fontWeight: 'bold',\n direction: getDirection(item.header),\n };\n result.push(\n <tr>\n <td style={headerStyle} colSpan={2}>\n {item.header}\n </td>\n </tr>\n );\n }\n item.rows.forEach((row) => {\n let valueContent = row.value;\n if (row.color) {\n const symbolStyle = {\n display: 'inline-block',\n width: 10,\n height: 10,\n 'background-color': row.color,\n margin: '0 8px',\n };\n const symbol = <div style={symbolStyle} />;\n valueContent = rtl ? [row.value, symbol] : [symbol, row.value];\n }\n const label = rtl ? [':', row.label] : [row.label, ':'];\n const labelStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(row.label) };\n const valueStyle = { ...style.cell, textAlign: rtl ? 'left' : 'right', direction: getDirection(row.value) };\n result.push(\n <tr>\n <td style={labelStyle}>{label}</td>\n <td style={valueStyle}>{valueContent}</td>\n </tr>\n );\n });\n });\n if (content.numberInExcess) {\n const moreText = translator.get('Object.ChartTooltip.NMore', content.numberInExcess);\n const moreStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(moreText) };\n result.push(\n <tr>\n <td style={moreStyle} colSpan={2}>\n {moreText}\n </td>\n </tr>\n );\n }\n return result;\n}\n","import extend from 'extend';\nimport TooltipAction from './tooltip-actions';\nimport formatting from '../formatting';\nimport { createFilter, createContent } from './tooltip-content';\nimport createTooltip from './tooltips-component';\nimport defaultTooltipRenderer from './tooltip-renderer';\n\nconst DEFAULT_OPTIONS = {\n tooltipKey: 'tooltip',\n data: [''],\n contexts: ['tooltip'],\n headerResolver(values) {\n return values.join(', ');\n },\n rowResolver(field, measureContent) {\n return {\n value: formatting.formatMeasureValue(field, measureContent),\n label: field.title(),\n };\n },\n direction: 'ltr',\n renderer: defaultTooltipRenderer,\n};\n\n/**\n * Create a new Tooltips handler\n *\n * @param {Object} model The backend model for the chart\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The selections handler instance\n */\nfunction Tooltips(chartInstance, $element, chartType) {\n if (!chartInstance) {\n throw Error('Tooltips-handler: Missing input');\n }\n\n let tooltipContexts = {};\n let on = false;\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n /**\n * Setup a tooltips context\n * @param {Object} options Tooltip context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n if (!opts.componentKey) {\n throw Error('Tooltips-handler.setUp: Missing required input');\n }\n\n if (tooltipContexts[opts.contexts[0]] && on) {\n deRegContext(tooltipContexts[opts.contexts[0]]);\n }\n\n const context = createContext(opts, chartInstance);\n tooltipContexts[opts.contexts[0]] = context;\n\n if (on) {\n registerContext(context);\n }\n\n const component = createTooltip({\n key: opts.tooltipKey,\n rtl: context.direction === 'rtl',\n fontFamily: context.theme.getStyle(chartType, 'tooltip', 'fontFamily'),\n filter: createFilter(context.filterShapes),\n content: createContent(context, opts.dataPath),\n });\n\n const settings = opts.chartBuilder.getSettings();\n settings.components.push(component);\n\n return {\n trigger: {\n on: context.treatAsDesktop ? 'over' : 'tap',\n action: 'set',\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n },\n consume: opts.contexts.map((c) => ({ context: c })),\n component,\n };\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n tooltipContexts = [];\n };\n\n function register() {\n Object.keys(tooltipContexts).forEach((key) => {\n registerContext(tooltipContexts[key]);\n });\n }\n\n function registerContext(context) {\n context.listeners.update = function (added, removed) {\n context.action.update(added, removed, context);\n };\n context.listeners.end = function () {\n context.action.closeTooltip();\n };\n\n context.brush.on(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.on('end', context.listeners.end);\n // Intecept the set-values call to avoid a toggle in the second dimension.\n context.brush.intercept('set-values', context.action.toggleInterceptor);\n }\n\n function deregister() {\n Object.keys(tooltipContexts).forEach((key) => {\n deRegContext(tooltipContexts[key]);\n });\n }\n\n function deRegContext(context) {\n context.brush.removeListener(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.removeListener('end', context.listeners.end);\n context.brush.removeInterceptor('set-values', context.action.toggleInterceptor);\n }\n\n function closeTooltip() {\n Object.keys(tooltipContexts).forEach((key) => {\n tooltipContexts[key].action.closeTooltip();\n });\n }\n\n function mouseLeave() {\n closeTooltip();\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const prop in tooltipContexts) {\n tooltipContexts[prop].brush.clear();\n }\n }\n\n fn.closeTooltip = closeTooltip;\n\n fn.isOn = () => on;\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n if ($element) {\n $element.on('mouseleave', mouseLeave);\n }\n };\n\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n if ($element) {\n $element.off('mouseleave', mouseLeave);\n }\n closeTooltip();\n };\n\n return fn;\n}\n\nexport default {\n create(chartInstance, $element, chartType) {\n return Tooltips(chartInstance, $element, chartType);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n action: TooltipAction.create(\n chartInstance,\n options.componentKey,\n options.data,\n options.contexts[0],\n options.tooltipKey\n ),\n listeners: {},\n chartInstance,\n dataPath: options.dataPath,\n renderer: options.renderer,\n data: options.data,\n headerResolver: options.headerResolver,\n rowResolver: options.rowResolver,\n colorService: options.colorService,\n attrDimPath: options.attrDimPath,\n measureRows: options.measureRows,\n labelData: options.labelData,\n filterShapes: options.filterShapes,\n\n direction: options.environment.options.direction,\n theme: options.environment.theme,\n translator: options.environment.translator,\n treatAsDesktop: options.environment.deviceType !== 'touch',\n };\n}\n","import hashFromString from '../../../extra/hash-from-string';\n\nconst hash = {\n generateHash,\n updateHash,\n};\n\nexport default hash;\n\n/**\n * Implementation details\n */\n\nfunction generateHash(hashData) {\n return hashFromString(JSON.stringify(hashData));\n}\n\nfunction updateHash(properties, hashData) {\n if (!properties.qUndoExclude) {\n properties.qUndoExclude = {};\n }\n\n properties.qUndoExclude.hashCode = hash.generateHash(hashData);\n}\n","/**\n * Generate a 32 bit integer hash code from a string\n */\nexport default function hashFromString(str) {\n let hash = 0;\n\n if (!str || !str.length) {\n return hash;\n }\n\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i);\n /* eslint-disable no-bitwise */\n hash = (hash << 5) - hash + chr;\n hash &= hash;\n /* eslint-enable no-bitwise */\n }\n return hash;\n}\n","import { getValue } from 'qlik-chart-modules';\n\nconst hashBuilder = {\n getDefaultHashDataForHyperCube,\n};\n\nexport default hashBuilder;\n\n/**\n * Implementation details\n */\n\nfunction getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app) {\n return getMeasureExpressions(hyperCubeDef, app).then((measureExpressions) => ({\n drillLevel: getDrillIndices(hyperCube),\n dimensionExpressions: getDimensionExpressions(hyperCube),\n measureExpressions,\n }));\n}\n\nfunction getMeasureExpressions(hyperCubeDef, app) {\n const dfds = [];\n\n if (!hyperCubeDef.qMeasures) {\n return Promise.resolve(dfds);\n }\n\n hyperCubeDef.qMeasures.forEach((measure) => {\n if (measure.qLibraryId) {\n dfds.push(getMeasureDataFromLibraryItem(measure.qLibraryId, app));\n } else {\n dfds.push(Promise.resolve());\n }\n });\n\n return Promise.all(dfds);\n}\n\nfunction getMeasureDataFromLibraryItem(libraryId, app) {\n return app.getMeasure(libraryId).then((item) => item.getProperties().then((props) => props.qMeasure.qDef));\n}\n\nfunction getDimensionExpressions(hyperCube) {\n return hyperCube.qDimensionInfo.map((dimensionInfo) => dimensionInfo.qGroupFieldDefs);\n}\n\nfunction getDrillIndices(hyperCube) {\n const dimensions = getDimensions(hyperCube);\n return dimensions.map((dim) => dim.qGroupPos);\n}\n\nfunction getDimensions(hyperCube) {\n return getValue(hyperCube, 'qDimensionInfo', []);\n}\n","/* eslint-disable no-restricted-syntax */\nimport originalExtend from 'extend';\n\nconst JSONPatch = {};\n\nconst extend = originalExtend.bind(null, true);\nfunction isObject(v) {\n return v != null && !Array.isArray(v) && typeof v === 'object';\n}\nconst isArray = Array.isArray;\n\nconst isUndef = function (v) {\n return typeof v === 'undefined';\n};\n\nconst isFunction = function (v) {\n return typeof v === 'function';\n};\n\n/**\n * Generate an exact duplicate (with no references) of a specific value.\n *\n * @private\n * @param {Object} The value to duplicate\n * @returns {Object} a unique, duplicated value\n */\nfunction generateValue(val) {\n if (val) {\n val = extend({}, { val }).val;\n }\n return val;\n}\n\n/**\n * An additional type checker used to determine if the property is of internal\n * use or not a type that can be translated into JSON (like functions).\n *\n * @private\n * @param {Object} obj The object which has the property to check\n * @param {String} The property name to check\n * @returns {Boolean} Whether the property is deemed special or not\n */\nfunction isSpecialProperty(obj, key) {\n return isFunction(obj[key]) || key.substring(0, 2) === '$$' || key.substring(0, 1) === '_';\n}\n\n/**\n * Finds the parent object from a JSON-Pointer (\"/foo/bar/baz\" = \"bar\" is \"baz\" parent),\n * also creates the object structure needed.\n *\n * @private\n * @param {Object} data The root object to traverse through\n * @param {String} The JSON-Pointer string to use when traversing\n * @returns {Object} The parent object\n */\nfunction getParent(data, str) {\n const seperator = '/';\n const parts = str.substring(1).split(seperator).slice(0, -1);\n let numPart;\n\n parts.forEach((part, i) => {\n if (i === parts.length) {\n return;\n }\n numPart = +part;\n data[numPart || part] = isUndef(data[numPart || part]) ? (!Number.isNaN(+numPart) ? [] : {}) : data[part];\n data = data[numPart || part];\n });\n\n return data;\n}\n\n/**\n * Cleans an object of all its properties, unless they're deemed special or\n * cannot be removed by configuration.\n *\n * @private\n * @param {Object} obj The object to clean\n */\nfunction emptyObject(obj) {\n Object.keys(obj).forEach((key) => {\n const config = Object.getOwnPropertyDescriptor(obj, key);\n\n if (config.configurable && !isSpecialProperty(obj, key)) {\n delete obj[key];\n }\n });\n}\n\n/**\n * Compare an object with another, could be object, array, number, string, bool.\n *\n * @param {Object} a The first object to compare\n * @param {Object} b The second object to compare\n * @returns {Boolean} Whether the objects are identical\n */\nfunction compare(a, b) {\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key of Object.keys(a)) {\n if (!compare(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (!compare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n}\n\n/**\n * Generates patches by comparing two arrays.\n *\n * @private\n * @param {Array} oldA The old (original) array, which will be patched\n * @param {Array} newA The new array, which will be used to compare against\n * @returns {Array} An array of patches (if any)\n */\nfunction patchArray(original, newA, basePath) {\n let patches = [];\n const oldA = original.slice();\n let i;\n let l;\n let tmpIdx = -1;\n\n function findIndex(a, id, idx) {\n if (a[idx] && isUndef(a[idx].qInfo)) {\n return null;\n }\n if (a[idx] && a[idx].qInfo.qId === id) {\n // shortcut if identical\n return idx;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] && a[i].qInfo.qId === id) {\n return i;\n }\n }\n return -1;\n }\n\n if (compare(newA, oldA)) {\n // array is unchanged\n return patches;\n }\n\n if (newA[0] === null || (!isUndef(newA[0]) && isUndef(newA[0].qInfo))) {\n // we cannot create patches without unique identifiers, replace array...\n patches.push({\n op: 'replace',\n path: basePath,\n value: newA,\n });\n return patches;\n }\n\n for (i = oldA.length - 1; i >= 0; --i) {\n tmpIdx = findIndex(newA, oldA[i] && oldA[i].qInfo && oldA[i].qInfo.qId, i);\n if (tmpIdx === -1) {\n patches.push({\n op: 'remove',\n path: `${basePath}/${i}`,\n });\n oldA.splice(i, 1);\n } else {\n patches = patches.concat(JSONPatch.generate(oldA[i], newA[tmpIdx], `${basePath}/${i}`));\n }\n }\n\n for (i = 0, l = newA.length; i < l; ++i) {\n tmpIdx = findIndex(oldA, newA[i] && newA[i].qInfo && newA[i].qInfo.qId);\n if (tmpIdx === -1) {\n patches.push({\n op: 'add',\n path: `${basePath}/${i}`,\n value: newA[i],\n });\n oldA.splice(i, 0, newA[i]);\n } else if (tmpIdx !== i) {\n patches.push({\n op: 'move',\n path: `${basePath}/${i}`,\n from: `${basePath}/${tmpIdx}`,\n });\n oldA.splice(i, 0, oldA.splice(tmpIdx, 1)[0]);\n }\n }\n return patches;\n}\n\n/**\n * Generate an array of JSON-Patch:es following the JSON-Patch Specification Draft.\n *\n * See [specification draft](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-10)\n *\n * Does NOT currently generate patches for arrays (will replace them)\n *\n * @param {Object} original The object to patch to\n * @param {Object} newData The object to patch from\n * @param {String} [basePath] The base path to use when generating the paths for the patches (normally not used)\n * @returns {Array} An array of patches\n */\nJSONPatch.generate = function (original, newData, basePath) {\n basePath = basePath || '';\n let patches = [];\n\n Object.keys(newData).forEach((key) => {\n const val = generateValue(newData[key]);\n const oldVal = original[key];\n const tmpPath = `${basePath}/${key}`;\n\n if (compare(val, oldVal) || isSpecialProperty(newData, key)) {\n return;\n }\n if (isUndef(oldVal)) {\n // property does not previously exist\n patches.push({\n op: 'add',\n path: tmpPath,\n value: val,\n });\n } else if (isObject(val) && isObject(oldVal)) {\n // we need to generate sub-patches for this, since it already exist\n patches = patches.concat(JSONPatch.generate(oldVal, val, tmpPath));\n } else if (isArray(val) && isArray(oldVal)) {\n patches = patches.concat(patchArray(oldVal, val, tmpPath));\n } else {\n // it's a simple property (bool, string, number)\n patches.push({\n op: 'replace',\n path: `${basePath}/${key}`,\n value: val,\n });\n }\n });\n\n Object.keys(original).forEach((key) => {\n if (isUndef(newData[key]) && !isSpecialProperty(original, key)) {\n // this property does not exist anymore\n patches.push({\n op: 'remove',\n path: `${basePath}/${key}`,\n });\n }\n });\n\n return patches;\n};\n\n/**\n * Apply a list of patches to an object.\n *\n * @param {Object} original The object to patch\n * @param {Array} patches The list of patches to apply\n */\nJSONPatch.apply = function (original, patches) {\n patches.forEach((patch) => {\n const parent = getParent(original, patch.path);\n let key = patch.path.split('/').splice(-1)[0];\n const target = key && Number.isNaN(+key) ? parent[key] : parent[+key] || parent;\n const from = patch.from ? patch.from.split('/').splice(-1)[0] : null;\n\n if (patch.op === 'add' || patch.op === 'replace') {\n if (isArray(parent)) {\n // trust indexes from patches, so don't replace the index if it's an add\n if (key === '-') {\n key = parent.length;\n }\n parent.splice(+key, patch.op === 'add' ? 0 : 1, patch.value);\n } else if (isArray(target) && isArray(patch.value)) {\n const newValues = patch.value.slice();\n // keep array reference if possible...\n target.length = 0;\n target.push.apply(target, newValues);\n } else if (isObject(target) && isObject(patch.value)) {\n // keep object reference if possible...\n emptyObject(target);\n extend(target, patch.value);\n } else {\n // simple value\n parent[key] = patch.value;\n }\n } else if (patch.op === 'move') {\n const oldParent = getParent(original, patch.from);\n if (isArray(parent)) {\n parent.splice(+key, 0, oldParent.splice(+from, 1)[0]);\n } else {\n parent[key] = oldParent[from];\n delete oldParent[from];\n }\n } else if (patch.op === 'remove') {\n if (isArray(parent)) {\n parent.splice(+key, 1);\n } else {\n delete parent[key];\n }\n }\n });\n};\n\n/**\n * Deep clone an object.\n *\n * @param {Object} obj The object to clone\n * @returns {Object} A new object identical to the `obj`\n */\nJSONPatch.clone = function (obj) {\n return extend({}, obj);\n};\n\n/**\n * Creates a JSON-patch.\n *\n * @param {String} op The operation of the patch. Available values: \"add\", \"remove\", \"move\"\n * @param {Object} [val] The value to set the `path` to. If `op` is `move`, `val` is the \"from JSON-path\" path\n * @param {String} path The JSON-path for the property to change (e.g. \"/qHyperCubeDef/columnOrder\")\n * @returns {Object} A patch following the JSON-patch specification\n */\nJSONPatch.createPatch = function (op, val, path) {\n const patch = {\n op: op.toLowerCase(),\n path,\n };\n if (patch.op === 'move') {\n patch.from = val;\n } else if (typeof val !== 'undefined') {\n patch.value = val;\n }\n return patch;\n};\n\n/**\n * Apply the differences of two objects (keeping references if possible).\n * Identical to running `JSONPatch.apply(original, JSONPatch.generate(original, newData));`\n *\n * @param {Object} original The object to update/patch\n * @param {Object} newData the object to diff against\n *\n * @example\n * var obj1 = { foo: [1,2,3], bar: { baz: true, qux: 1 } };\n * var obj2 = { foo: [4,5,6], bar: { baz: false } };\n * JSONPatch.updateObject(obj1, obj2);\n * // => { foo: [4,5,6], bar: { baz: false } };\n */\nJSONPatch.updateObject = function (original, newData) {\n if (!Object.keys(original).length) {\n extend(original, newData);\n return;\n }\n JSONPatch.apply(original, JSONPatch.generate(original, newData));\n};\n\nexport default JSONPatch;\n","import extend from 'extend';\nimport JSONPatch from './json-patch';\n\nclass SoftPropertyHandler {\n constructor(model) {\n this._model = model;\n }\n\n setModel(model) {\n this._model = model;\n }\n\n saveSoftProperties(prevEffectiveProperties, effectiveProperties) {\n if (!this._model) {\n return Promise.resolve(false);\n }\n\n let patches = JSONPatch.generate(prevEffectiveProperties, effectiveProperties);\n extend(true, prevEffectiveProperties, effectiveProperties);\n\n if (patches && patches.length) {\n patches = patches.map((p) => ({\n qOp: p.op,\n qValue: JSON.stringify(p.value),\n qPath: p.path,\n }));\n\n return this._model.applyPatches(patches, true).then(() => true);\n }\n return Promise.resolve(false);\n }\n\n async mergeSoftPatches() {\n if (!this._model) {\n return;\n }\n\n const propertiesPromise = this._model.getProperties();\n const effectivePromise = this._model.getEffectiveProperties();\n\n const properties = await propertiesPromise;\n const effective = await effectivePromise;\n\n if (properties.qExtendsId) {\n return;\n }\n const patches = JSONPatch.generate(properties, effective);\n JSONPatch.apply(properties, patches);\n\n const self = this;\n self._model.setProperties(properties).then(() => {\n self._model.clearSoftPatches();\n });\n }\n}\n\nexport default SoftPropertyHandler;\n","export default {\n canModifyHardProperties,\n};\n\nfunction canModifyHardProperties(layout) {\n if (layout.qHasSoftPatches || layout.qExtendsId) {\n return false;\n }\n if (layout.permissions) {\n return layout.permissions.update;\n }\n return layout.qMeta.privileges.indexOf('update') !== -1;\n}\n","import SoftPropertyHandler from '../../../extra/soft-property-handler';\nimport hardPropertiesChecker from '../../../extra/hard-properties-checker';\n\nexport default {\n saveDerivedProperties,\n};\n\n/**\n * Implementation details\n */\n\nfunction saveDerivedProperties(model, layout, properties, prevProperties) {\n // Can't set new properties on a master item (SUI-1363)\n\n if (hardPropertiesChecker.canModifyHardProperties(layout)) {\n return model.setProperties(properties);\n }\n\n const softPropertyHandler = new SoftPropertyHandler(model);\n return softPropertyHandler.saveSoftProperties(prevProperties, properties);\n}\n","export default {\n validate,\n};\n\n/**\n * Implementation details\n */\n\nfunction validate(settings) {\n if (\n !settings ||\n !settings.layout ||\n !settings.properties ||\n !settings.model ||\n !settings.hashData ||\n !settings.generateDerivedProperties\n ) {\n throw Error('Derived-properties: Missing input');\n }\n}\n","import extend from 'extend';\nimport Hash from './hash/hash';\nimport HashBuilder from './hash/hash-builder';\nimport Save from './save/save';\nimport InputValidator from './input-validator/input-validator';\n\nfunction DerivedProperties() {\n this._generationInProgress = false;\n}\n\nDerivedProperties.prototype.isDerivedUpToDate = isDerivedUpToDate;\nDerivedProperties.prototype.updateDerivedProperties = updateDerivedProperties;\nDerivedProperties.prototype.addDefaultHyperCubeHash = addDefaultHyperCubeHash;\n\nexport default DerivedProperties;\n\nfunction isDerivedUpToDate(settings) {\n InputValidator.validate(settings);\n\n const properties = settings.properties;\n const hash = Hash.generateHash(settings.hashData);\n\n if (!properties.qUndoExclude || properties.qUndoExclude.hashCode !== hash) {\n return false;\n }\n\n return true;\n}\n\n// Returns a boolean flag if properties actually are being updated or not\nfunction updateDerivedProperties(settings) {\n InputValidator.validate(settings);\n\n if (this._generationInProgress) {\n return Promise.resolve(true);\n }\n\n if (isDerivedUpToDate(settings)) {\n const layoutIsUpdated =\n settings.layout.qUndoExclude &&\n settings.layout.qUndoExclude.hashCode === settings.properties.qUndoExclude.hashCode;\n return Promise.resolve(!layoutIsUpdated);\n }\n\n const self = this;\n const model = settings.model;\n const layout = settings.layout;\n const properties = extend(true, {}, settings.properties);\n const prevProperties = extend(true, {}, properties);\n\n this._generationInProgress = true;\n\n Hash.updateHash(properties, settings.hashData);\n\n return settings.generateDerivedProperties(layout, properties).then(() =>\n Save.saveDerivedProperties(model, layout, properties, prevProperties).then(() => {\n self._generationInProgress = false;\n\n return Promise.resolve(true);\n })\n );\n}\n\nfunction addDefaultHyperCubeHash(hyperCubeDef, hyperCube, app, settings) {\n return HashBuilder.getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app).then((defaultSettings) =>\n extend(true, settings, defaultSettings)\n );\n}\n","const ExpressionWrapper = {\n wrapExpression,\n};\n\nfunction wrapExpression(expression) {\n const result = expression.replace(/\\]/g, ']]');\n\n return result ? `[${result}]` : '';\n}\n\nexport default ExpressionWrapper;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\nconst ExpressionReplacer = {\n replaceExpressionTokens,\n createRegExp,\n};\n\nfunction replaceExpressionTokens(expression, tokenMappings, tokenIdentifiers) {\n const identifiers = {\n start: (tokenIdentifiers && tokenIdentifiers.start) || '{{',\n end: (tokenIdentifiers && tokenIdentifiers.end) || '}}',\n };\n\n let returnExpression = expression;\n let tokenExpression;\n let tokenString;\n\n for (const key in tokenMappings) {\n tokenExpression = tokenMappings[key];\n tokenString = identifiers.start + key + identifiers.end;\n\n returnExpression = returnExpression.replace(createRegExp(tokenString, true), tokenExpression);\n }\n\n return returnExpression;\n}\n\nfunction createRegExp(string, isGlobal, isGrouped) {\n const escapedString = escapeRegExp(string);\n const regexpString = isGrouped ? `(${escapedString})` : escapedString;\n return isGlobal ? new RegExp(regexpString, 'g') : new RegExp(regexpString);\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport default ExpressionReplacer;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport ExpressionWrapper from './expression-wrapper';\nimport ExpressionReplacer from './expression-replacer';\n\nconst ExpressionGenerator = {\n generateExpression,\n};\n\n// builds up mappings for the dimensions and measures and wraps the dimensions\n// mappings = { mapping }\n// mapping = {\n// \tvalue: (string) the expression value to replace the key with,\n// \twrap: (boolean) if the expression should be cleaned and wrapped or not (usually if field)\n// variations: (Array) array of strings with variations on the same key that if the value is empty should also be empty\nfunction generateExpression(template, mappings) {\n const explicitMappings = {};\n\n if (mappings) {\n for (const key in mappings) {\n const mapping = mappings[key];\n\n const expression = mapping.wrap ? ExpressionWrapper.wrapExpression(mapping.value) : mapping.value;\n\n explicitMappings[key] = expression;\n\n const variations = mapping.variations || [];\n\n variations.forEach((variation) => {\n const variationExpressions = assembleVariation(variation, expression, key);\n explicitMappings[variation] = variationExpressions;\n });\n }\n }\n\n return ExpressionReplacer.replaceExpressionTokens(template, explicitMappings);\n}\n\n// Internal functions\n\nfunction assembleVariation(variation, value, key) {\n if (value === '') {\n return '';\n }\n\n const regExp = ExpressionReplacer.createRegExp(key, true, true);\n const stringArray = variation.split(regExp);\n let expression = '';\n\n stringArray.forEach((substring) => {\n expression += substring !== key ? substring : value;\n });\n\n return expression;\n}\n\nexport default ExpressionGenerator;\n","import extend from 'extend';\nimport ExpressionGenerator from '../expression-generator/expression-generator';\n\nconst HyperCubeGenerator = {\n generateHyperCubeDef,\n getAllHyperCubeExpressions,\n};\n\n// builds up a hyper cube using a hyper cube def and the hyper cube result, needs the app as well\n// also supports additional mappings that allows generation of more advanced expressions\nfunction generateHyperCubeDef(template, hyperCubeDef, hyperCube, app, mappings) {\n // hyper cube knows about {{Dim[n]}} {{Mea[n]}} mappings.\n return getKnownMappings(template.dimensions.concat(template.measures), hyperCubeDef, hyperCube, app).then(\n (knownMappings) => {\n const allMappings = extend({}, knownMappings, mappings);\n\n const generatedHyperCubeDef = extend(true, {}, hyperCubeDef);\n // clean the dimensions and measures\n generatedHyperCubeDef.qDimensions = [];\n generatedHyperCubeDef.qMeasures = [];\n\n template.dimensions.forEach((dimensionTemplate) => {\n generatedHyperCubeDef.qDimensions.push({\n qDef: {\n qFieldDefs: [`=${ExpressionGenerator.generateExpression(dimensionTemplate, allMappings)}`],\n },\n });\n });\n\n template.measures.forEach((measureTemplate) => {\n generatedHyperCubeDef.qMeasures.push({\n qDef: {\n qDef: ExpressionGenerator.generateExpression(measureTemplate, allMappings),\n },\n });\n });\n\n return generatedHyperCubeDef;\n }\n );\n}\n\nasync function getAllHyperCubeExpressions(hyperCubeDef, hyperCube, app) {\n const dimensions = hyperCubeDef.qDimensions.map((dimension, index) =>\n getExpressionFromDimension(dimension, app, index, hyperCube)\n );\n const measures = hyperCubeDef.qMeasures.map((measure) => getExpressionFromMeasure(measure, app));\n\n return {\n dimensions: await Promise.all(dimensions),\n measures: await Promise.all(measures),\n };\n}\n\nfunction getExpressionFromDimension(dimension, app, index, hyperCube) {\n if (dimension.qLibraryId) {\n return getExpressionFromLibraryItem(dimension.qLibraryId, 'dimension', app, index, hyperCube);\n }\n const drillIndex = hyperCube.qDimensionInfo[index].qGroupPos;\n return Promise.resolve(dimension.qDef.qFieldDefs[drillIndex]);\n}\n\nfunction getExpressionFromMeasure(measure, app) {\n if (measure.qLibraryId) {\n return getExpressionFromLibraryItem(measure.qLibraryId, 'measure', app);\n }\n return Promise.resolve(measure.qDef.qDef);\n}\n\n// Internal functions\n\nfunction getExpressionFromLibraryItem(id, type, app, index, hyperCube) {\n if (!app) {\n console.warn('No app provided, returning library id');\n return id;\n }\n\n const getFn = type === 'dimension' ? 'getDimension' : 'getMeasure';\n\n return app[getFn](id).then((item) =>\n item.getProperties().then((props) => {\n if (type === 'dimension') {\n return props.qDim.qFieldDefs[hyperCube.qDimensionInfo[index].qGroupPos];\n }\n return props.qMeasure.qDef;\n })\n );\n}\n\n// identifies {{Dim[x]}} {{Mea[x]}} mappings and returns the distinct instances of them\nfunction getKnownMappings(mappings, hyperCubeDef, hyperCube, app) {\n const knownMappings = {};\n let dimensionIndices;\n let measureIndices;\n const dfds = [];\n\n mappings.forEach((mapping) => {\n dimensionIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Dim')));\n dimensionIndices.forEach((index) => {\n dfds.push(\n getExpressionFromDimension(hyperCubeDef.qDimensions[index], app, index, hyperCube).then((expression) => {\n knownMappings[`Dim[${index}]`] = { value: expression, wrap: true };\n })\n );\n });\n\n measureIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Mea')));\n measureIndices.forEach((index) => {\n dfds.push(\n getExpressionFromMeasure(hyperCubeDef.qMeasures[index], app).then((expression) => {\n knownMappings[`Mea[${index}]`] = { value: expression };\n })\n );\n });\n });\n\n let returnPromise;\n if (dfds.length) {\n returnPromise = Promise.all(dfds).then(() => Promise.resolve(knownMappings));\n } else {\n returnPromise = Promise.resolve(knownMappings);\n }\n return returnPromise;\n}\n\nfunction getMappingRegExp(string) {\n return new RegExp(`\\\\{\\\\{${string}\\\\[\\\\d\\\\]\\\\}\\\\}`, 'g');\n}\n\nfunction spliceIdentifiedMatches(matches) {\n if (!matches) {\n return [];\n }\n return matches.map((match) => match.substr(6, 1));\n}\n\nexport default HyperCubeGenerator;\n","export default function isNumeric(v) {\n return !Number.isNaN(parseFloat(v)) && Number.isFinite(+v);\n}\n","export default function isInteger(v) {\n return !Number.isNaN(parseInt(v, 10)) && parseFloat(v, 10) === parseInt(v, 10);\n}\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Implementation details\n */\n\nfunction getBinMode(layout) {\n return getValue(layout, 'bins.binMode', BINNING_DEFAULTS.BIN_MODE);\n}\n\nfunction getBinSize(layout) {\n return getValue(layout, 'bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinSize(layout) {\n return getValue(layout, 'qUndoExclude.bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinOffset(layout) {\n return getValue(layout, 'qUndoExclude.bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction getDerivedBinCount(layout) {\n const binCount = getValue(layout, 'qUndoExclude.bins.binCount', BINNING_DEFAULTS.BIN_COUNT);\n\n if (!isNumeric(binCount)) {\n return BINNING_DEFAULTS.BIN_COUNT;\n }\n\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getBinCount(layout) {\n return getValue(layout, 'bins.binCount', undefined);\n}\n\nfunction getBinOffset(layout) {\n return getValue(layout, 'bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction isAutoBin(layout) {\n return getValue(layout, 'bins.auto', BINNING_DEFAULTS.AUTO);\n}\n\nfunction isCountDistinct(layout) {\n return getValue(layout, 'bins.countDistinct', BINNING_DEFAULTS.COUNT_DISTINCT);\n}\n\nfunction isEmpty(v) {\n return v === undefined || v === null || v === '';\n}\n\nconst histogramUtils = {\n getBinSize,\n getDerivedBinSize,\n getDerivedBinOffset,\n getDerivedBinCount,\n getBinCount,\n getBinOffset,\n isAutoBin,\n isCountDistinct,\n getBinMode,\n isEmpty,\n};\n\nexport default histogramUtils;\n","import isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\n\nconst LOG10 = Math.log(10);\nconst EPSILON = 1e-9;\nconst NICE_NUMBERS1 = [1, 1.5, 2, 3, 4, 5, 6, 10];\nconst NICE_NUMBERS2 = [1, 2, 4, 5, 6, 8, 10];\nconst LOOP_CONTROL_NUMBERS = [2, 4, 5, 10];\n\n/**\n * Implementation details\n */\n\nfunction validateInput(min, max, binCount) {\n if (!isNumeric(min) || !isNumeric(max) || !isNumeric(binCount)) {\n throw Error('binSizeCalculator: One of the inputs is NOT numeric');\n }\n\n if (min > max) {\n throw Error(\"binSizeCalculator: The 'min' parameter is bigger than the 'max' parameter\");\n }\n}\n\nfunction getBinCount(binCount) {\n // The smallest number of bins possible is 1\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getGoodNumber(value, niceNumbers) {\n if (value === 0) {\n return 0;\n }\n let roundedFraction;\n const magnitude = Math.floor(Math.log(Math.abs(value)) / LOG10);\n const fraction = value / 10 ** magnitude;\n for (let i = 0; i < niceNumbers.length; i++) {\n if (fraction <= niceNumbers[i]) {\n roundedFraction = niceNumbers[i];\n break;\n }\n }\n\n // Fix floating error\n return (\n (magnitude >= 0 ? roundedFraction * 10 ** magnitude : roundedFraction / 10 ** -magnitude) * (value < 0 ? -1 : 1)\n );\n}\n\nfunction calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) {\n return Math.floor(Math.abs(min - newMin) / binSize) + Math.floor(Math.abs(newMax - max) / binSize);\n}\n\nfunction calculateBinSize(min, max, nbrOfBins) {\n let newMin;\n let newMax;\n let range;\n let binSize;\n let niceBinSize;\n let magnitude;\n let f;\n let k;\n let i = -1;\n let delta;\n let n;\n let loop;\n let t;\n let niceNumbers = NICE_NUMBERS1;\n nbrOfBins = Math.max(1, nbrOfBins);\n if (max === min) {\n if (max === 0) {\n binSize = 1;\n if (nbrOfBins === 1) {\n return {\n min,\n max,\n nbrOfBins,\n rawBinSize: range / nbrOfBins,\n offset: -0.5, // new min\n newMax: 0.5,\n binSize: 1,\n numEmptyBins: 0,\n };\n }\n } else if (nbrOfBins === 1) {\n binSize = max + EPSILON;\n niceNumbers = NICE_NUMBERS2;\n } else {\n binSize = Math.abs(max / nbrOfBins);\n }\n } else {\n max += EPSILON;\n range = max - min;\n binSize = range / nbrOfBins;\n }\n do {\n k = 1;\n loop = 0;\n if (i >= 0) {\n delta = 1 / LOOP_CONTROL_NUMBERS[i];\n n = 1;\n niceNumbers = [];\n while (n <= 10) {\n niceNumbers.push(Math.round(n * 1000) / 1000);\n n += delta;\n }\n }\n niceBinSize = binSize;\n do {\n niceBinSize = getGoodNumber(niceBinSize * k, niceNumbers);\n magnitude = Math.floor(Math.log(niceBinSize) / LOG10);\n f = 10 ** magnitude;\n if (max === min) {\n newMax = (Math.ceil(max / niceBinSize) + Math.floor(nbrOfBins / 2)) * niceBinSize;\n } else {\n newMax = Math.ceil(max / niceBinSize) * niceBinSize;\n }\n newMin = newMax - nbrOfBins * niceBinSize;\n let j = 0;\n t = f;\n while ((newMin > min || newMax < max) && j < LOOP_CONTROL_NUMBERS.length) {\n newMin = Math.floor(min / t) * t;\n newMax = newMin + nbrOfBins * niceBinSize;\n t = f / LOOP_CONTROL_NUMBERS[j++];\n }\n\n // Fix floating error\n if (magnitude < 1) {\n f = 10 ** (Math.abs(magnitude) + 1);\n newMax = Math.round(newMax * f) / f;\n newMin = Math.round(newMin * f) / f;\n }\n k = 1.1;\n loop++;\n } while ((newMin > min || newMax < max) && loop < 10); // Bin size should be increased to cover the min-max range\n i++;\n } while (calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) > 0 && i < LOOP_CONTROL_NUMBERS.length);\n return {\n binCount: nbrOfBins,\n offset: newMin, // new min\n binSize: niceBinSize,\n };\n}\n\nfunction preCalculateBinSize(min, max, binCount) {\n // General input validation\n validateInput(min, max, binCount);\n\n // Makes sure binCount is an integer bigger than 0\n binCount = getBinCount(binCount);\n\n return calculateBinSize(min, max, binCount);\n}\n\nconst binSizeCalculator = {\n calculateBinSize: preCalculateBinSize,\n};\n\nexport default binSizeCalculator;\n","import { getValue } from 'qlik-chart-modules';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport histogramUtils from '../histogram-utils';\nimport binSizeCalculator from './bin-size-calculator';\n\n/**\n * Implementation details\n */\n\nfunction getMappings(values) {\n const mappings = {};\n\n mappings.BinSize = {\n value: `,${values.binSize}`,\n };\n\n mappings.Label = {\n value: values.binOffset === 0 ? '' : \",'x'\",\n };\n\n mappings.Offset = {\n value: values.binOffset === 0 ? '' : `,${values.binOffset}`,\n };\n\n mappings.Distinct = {\n value: values.distinct ? 'Distinct ' : '',\n };\n\n return mappings;\n}\n\nfunction getBinInfo(layout) {\n const dimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n let qMin = dimInfo.qMin;\n let qMax = dimInfo.qMax;\n\n qMin = isNumeric(qMin) ? qMin : 1;\n qMax = isNumeric(qMax) ? qMax : 1;\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n return binSizeCalculator.calculateBinSize(qMin, qMax, binCount);\n}\n\nfunction getMappingValues(layout) {\n const auto = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n let binSize;\n let binOffset;\n let binCount;\n let binInfo;\n const distinct = histogramUtils.isCountDistinct(layout);\n\n if (auto || binMode === 'maxCount') {\n binInfo = getBinInfo(layout);\n\n binSize = binInfo.binSize;\n binOffset = binInfo.offset;\n binCount = binInfo.binCount;\n } else {\n binSize = histogramUtils.getBinSize(layout);\n binOffset = histogramUtils.getBinOffset(layout);\n }\n\n return {\n binSize,\n binOffset,\n binCount,\n distinct,\n };\n}\n\nconst histogramMappings = {\n getMappingValues,\n getMappings,\n};\n\nexport default histogramMappings;\n","import { setValue } from 'qlik-chart-modules';\nimport HyperCubeDefGenerator from '@qlik/common/picasso/hypercube-def-generator/hypercube-def-generator';\nimport ExpressionGenerator from '@qlik/common/picasso/expression-generator/expression-generator';\nimport histogramMappings from './histogram-mappings';\nimport histogramUtils from '../histogram-utils';\n\nasync function generateHyperCubes(layout, properties, environment) {\n const { app, translator } = environment;\n const mappingValues = histogramMappings.getMappingValues(layout);\n const mappings = histogramMappings.getMappings(mappingValues);\n\n const hyperCubeTemplate = {\n dimensions: ['Class(aggr({{Dim[0]}},{{Dim[0]}}){{BinSize}}{{Label}}{{Offset}})'],\n measures: ['Count({{Distinct}}{{Dim[0]}})'],\n };\n\n // Sturges' formula - https://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width\n const binCountTemplate = '=Ceil(Log10(Count({{Dim[0]}})) / Log10(2)) + 1';\n\n const expressionsPromise = HyperCubeDefGenerator.getAllHyperCubeExpressions(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app\n );\n const boxCubeDefPromise = HyperCubeDefGenerator.generateHyperCubeDef(\n hyperCubeTemplate,\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app,\n mappings\n );\n\n const expressions = await expressionsPromise;\n const boxCubeDef = await boxCubeDefPromise;\n let binCountExpr;\n\n if (histogramUtils.isAutoBin(layout)) {\n binCountExpr = {\n qValueExpression: {\n qExpr: ExpressionGenerator.generateExpression(binCountTemplate, {\n 'Dim[0]': { value: expressions.dimensions[0], wrap: true },\n }),\n },\n };\n } else if (histogramUtils.getBinMode(layout) === 'maxCount' && histogramUtils.isEmpty(properties.bins.binCount)) {\n // When the user have not provided any binCount we use the derived value which will be the output of the auto algorithm in most cases\n binCountExpr = histogramUtils.getDerivedBinCount(layout);\n } else {\n binCountExpr = properties.bins.binCount;\n }\n\n // Dimension should be sorted numeric ascending\n setValue(boxCubeDef, 'qDimensions.0.qDef.qSortCriterias', [{ qSortByNumeric: 1 }]);\n\n // Store the data labels, used when object is flipped to table\n setValue(boxCubeDef, 'qDimensions.0.qDef.qFieldLabels', [layout.qHyperCube.qDimensionInfo[0].qFallbackTitle]);\n setValue(\n boxCubeDef,\n 'qMeasures.0.qDef.qLabel',\n layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel')\n );\n\n // Store the generated hyperCube on properties\n setValue(properties, 'qUndoExclude.box.qHyperCubeDef', boxCubeDef);\n\n // Store the binSize (which in auto mode will be dynamically calculated)\n setValue(properties, 'qUndoExclude.bins.binSize', mappingValues.binSize);\n setValue(properties, 'qUndoExclude.bins.offset', mappingValues.binOffset);\n setValue(properties, 'qUndoExclude.bins.binCount', binCountExpr);\n}\n\nconst cubesGenerator = {\n generateHyperCubes,\n};\n\nexport default cubesGenerator;\n","/**\n * Checks whether a collision has occurred for range selection\n * @param e - event, in this case a mouse event\n * @param targets - the target points that the selections are hitting\n * @param selectionGesture - The type of selection gesture, for example area range select\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForRange(e, targets, selectionGesture) {\n return (\n !!e &&\n !!selectionGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => targets.indexOf(c.settings.key) !== -1)[0]\n );\n}\n\n/**\n * Checks whether a collision has occurred for lasso selection\n * @param e - event, in this case a mouse event\n * @param gesturesParams - parameters for lasso selection\n * @param lassoGesture - the lasso gesture instance\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForLasso(e, gesturesParams, lassoGesture) {\n return (\n e &&\n lassoGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0]\n );\n}\n\nfunction isOnComponentForNavBtn(e, legendBrushKey, navBtnGesture) {\n const components = navBtnGesture.chart.componentsFromPoint(e.center);\n return components.some((c) => c.settings.key === legendBrushKey);\n}\n\nexport default {\n isOnComponentForRange,\n isOnComponentForLasso,\n isOnComponentForNavBtn,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getLassoState(handlers) {\n return handlers.selectionHandler.lassoState() && !handlers.selectionHandler.allFieldsLocked();\n}\n\n/**\n * Handles lasso events for picasso charts using HammerJS. When activating lasso selection enable function is\n * triggered first. lassoStart is triggered on all areas specified by options.direction key. Lasso is the gesture\n * that will be active by default.\n */\nfunction callLassoGesture(state, gesturesFns, gesturesParams) {\n return {\n type: 'Pan',\n options: {\n direction: Hammer.DIRECTION_ALL,\n threshold: 1,\n enable(manager, e) {\n if (state.lassoing) {\n return gesturesFns.isSelectionEnabled();\n }\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n return (\n gesturesFns.isSelectionEnabled() && e && (getLassoState(gesturesParams.handlers) || state.lassoing) && hitComp\n );\n },\n event: 'lasso',\n },\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n lassostart(e) {\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n if (!hitComp) {\n return;\n }\n gesturesFns.switchTo('lasso', this.chart, e);\n state.lassoing = true;\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.lassoBrushKey);\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoStart', e);\n },\n lassomove(e) {\n if (!state.lassoing) {\n return;\n }\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoMove', e);\n },\n lassoend(e) {\n if (!state.lassoing) {\n return;\n }\n\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoEnd', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, true);\n state.lassoing = false;\n },\n lassocancel(e) {\n state.lassoing = false;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoCancel', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, false);\n },\n },\n };\n}\n\nexport default {\n callLassoGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles measure range selection events for picasso charts using HammerJS. When activating measure range selection enable function is\n * triggered first. measurerangestart is triggered on all areas specified by options.direction key. Only after measurerangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called measurerange, then our\n * events must be named measurerangestart, measurerangemove, measurerangeend, measurerangecancel.\n */\nfunction callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'arearange';\n\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL,\n event: 'measurerange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenMea) {\n return false;\n }\n\n if (state.measureSelecting) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.measureSelecting = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.measureSelecting && !!gesturesParams.keys.measureRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n measurerangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.measureSelecting = true;\n gesturesFns.switchTo('measurerange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.measureRangeBrushKey);\n },\n measurerangemove(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeMove', e);\n },\n measurerangeend(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeEnd', e);\n state.measureSelecting = false;\n },\n measurerangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, false);\n state.measureSelecting = false;\n },\n },\n };\n}\n\nexport default {\n callMeasureRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getAxisOrientation(axis, orientation) {\n let dir;\n if (axis === 'x-axis') {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL;\n } else {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL;\n }\n return dir;\n}\n\n/**\n * Handles area range selection events for picasso charts using HammerJS. When activating area range selection enable function is\n * triggered first. arearangestart is triggered on all areas specified by options.direction key. Only after arearangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called arearange, then our\n * events must be named arearangestart, arearangemove, arearangeend, arearangecancel.\n */\nfunction callAreaRangeGesture(state, gesturesFns, gesturesParams, axis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'measurerange';\n\n return {\n // Area range select gesture\n type: 'Pan',\n options: {\n direction: getAxisOrientation(axis, gesturesParams.isHorizontal),\n event: 'arearange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n\n if (state.minoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.minoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.minoring;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n arearangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.minoring = true;\n gesturesFns.switchTo('arearange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.areaBrushKey);\n },\n arearangemove(e) {\n if (!state.minoring) {\n return;\n }\n // Behaves likes lasso, which adds all data points as soon as we hit the points, we only want to highlight the values within the range\n this.chart.brush(gesturesParams.keys.areaBrushKey).clear();\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaMove', e);\n },\n arearangeend(e) {\n if (!state.minoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaEnd', e);\n state.minoring = false;\n },\n arearangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, false);\n state.minoring = false;\n },\n },\n };\n}\n\nexport default {\n callAreaRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles dimension range selection events for picasso charts using HammerJS. When activating dimension range selection enable function is\n * triggered first. majorrangestart is triggered on all areas specified by options.direction key. Only after majorrangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called majorrange, then our\n * events must be named majorrangestart, majorrangemove, majorrangeend, majorrangecancel.\n */\nfunction callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis) {\n const activeRangeBrush = gesturesParams.keys.measureRangeBrushKey ? 'measurerange' : 'arearange';\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'majorrange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n if (state.majoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.majoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.majoring && !!gesturesParams.keys.dimRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n majorrangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.majoring = true;\n gesturesFns.switchTo('majorrange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.dimRangeBrushKey);\n },\n majorrangemove(e) {\n if (!state.majoring) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeMove', e);\n },\n majorrangeend(e) {\n if (!state.majoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeEnd', e);\n state.majoring = false;\n },\n majorrangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, false);\n state.majoring = false;\n },\n },\n };\n}\n\nexport default {\n callDimensionRangeGesture,\n};\n","import Hammer from 'hammerjs';\n\n/**\n * Handles dragging for picasso charts using HammerJS. When activating dragging the enable function is\n * triggered first. dragstart is triggered on all areas specified by options.direction key. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called drag, then our\n * events must be named dragstart, dragmove, dragend, dragcancel.\n */\nfunction callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl) {\n let dragPoint = {};\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'drag',\n enable(manager, e) {\n if (state.dragging) {\n return gesturesFns.isNavigationEnabled();\n }\n\n state.dragging =\n gesturesFns.isNavigationEnabled() &&\n !!e &&\n !!this.chart\n .componentsFromPoint({ x: e.center.x, y: e.center.y })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0];\n return state.dragging;\n },\n },\n requireFailure: hasSelections ? `lasso ${gesturesFns.getBrushConfig()}` : '',\n events: {\n dragstart(e) {\n dragPoint = { x: e.deltaX, y: e.deltaY };\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY : e.deltaX) / gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n },\n dragmove(e) {\n if (!state.dragging) {\n return;\n }\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY - dragPoint.y : e.deltaX - dragPoint.x) /\n gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n dragPoint = { x: e.deltaX, y: e.deltaY };\n },\n dragend() {\n if (!state.dragging) {\n return;\n }\n state.dragging = false;\n },\n dragcancel() {\n state.dragging = false;\n },\n },\n };\n}\n\nexport default {\n callDragGesture,\n};\n","import onComponentChecker from './on-component-checker';\n\n/**\n * Handles navigational button events for picasso charts using HammerJS. When pressing on a navigational button,\n * the enable function is triggered to check if the navigational button should be enabled or not.\n * For example, in edit mode it should be disabled.\n * @param isEnabledFn - Function that returns a boolean. In this case return false if in edit mode, true otherwise\n * @param legendBrushKey - String defining the legend brush key\n * @returns An object for reacting to tap events according to HammerJS API\n */\nfunction callNavBtnGesture(isEnabledFn, legendBrushKey) {\n return {\n type: 'Tap',\n options: {\n event: 'navBtnTap',\n enable(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n\n return onComponentChecker.isOnComponentForNavBtn(e, legendBrushKey, this);\n },\n },\n events: {\n navBtnTap(e) {\n // Invokes paging interaction on legend\n this.chart.componentsFromPoint(e.center).forEach((c) => {\n const btn = e.target;\n const attr = btn ? btn.getAttribute('data-action') : '';\n if (attr) {\n return c.emit(attr);\n }\n return undefined;\n });\n },\n },\n };\n}\n\nexport default {\n callNavBtnGesture,\n};\n","import lassoGesture from './gestures/lasso-gesture';\nimport measureRangeGesture from './gestures/measure-range-gesture';\nimport areaRangeGesture from './gestures/area-range-gesture';\nimport dimensionRangeGesture from './gestures/dimension-range-gesture';\nimport dragGesture from './gestures/drag-gesture';\nimport navBtnGesture from './gestures/navigational-button-gesture';\n\n/**\n * Creates Picasso components for interaction component that are dependent on eatchother\n */\n\nfunction DependentInteractions(handlers, orientation, isRtl, keys, rangeSelStatus) {\n const ret = {};\n\n orientation = orientation || 'vertical';\n\n const lassoBrushKey = keys.lassoBrushKey || 'select';\n const dimRangeBrushKey = keys.dimRangeBrushKey || null;\n const measureRangeBrushKey = keys.measureRangeBrushKey || null;\n const areaBrushKey = keys.areaBrushKey || null;\n const legendBrushKey = keys.legendBrushKey || null;\n\n const hasSelections = !!handlers.selectionHandler && handlers.selectionHandler.isOn();\n\n const state = {\n dragging: false,\n lassoing: false,\n majoring: false,\n minoring: false,\n measureSelecting: false,\n };\n\n const active = {\n gesture: '',\n type: '',\n };\n\n const isHorizontal = orientation === 'horizontal';\n\n const dimAxis = isHorizontal ? 'y-axis' : 'x-axis';\n const measureAxis = isHorizontal ? 'x-axis' : 'y-axis';\n\n function switchTo(gesture, chart, e) {\n if (active.gesture === gesture) {\n return;\n }\n let clearKey = lassoBrushKey;\n const activeChart = chart || active.chart;\n\n switch (active.gesture) {\n case 'majorrange':\n doEmit(activeChart, 'rangeDim', 'rangeClear', e);\n clearKey = dimRangeBrushKey;\n break;\n case 'measurerange':\n doEmit(activeChart, 'rangeMeasure', 'rangeClear', e);\n clearKey = measureRangeBrushKey;\n break;\n case 'arearange':\n doEmit(activeChart, 'rangeMinor', 'areaClear', e);\n clearKey = areaBrushKey;\n break;\n default:\n break;\n }\n\n active.gesture = gesture;\n const newType = gesture === 'range' ? 'range' : 'item';\n\n if (active.type && active.type !== newType) {\n activeChart.brush(clearKey).clear();\n }\n\n active.chart = chart;\n active.type = newType;\n }\n\n // Just added here to allow easy disabling of things while developing\n function doEmit(chart, comp, cont, e) {\n if (chart) {\n const inst = chart.component(comp);\n if (inst) {\n inst.emit(cont, e);\n }\n }\n }\n\n function getBrushConfig() {\n if (!dimRangeBrushKey) {\n return 'measurerange arearange';\n }\n if (!measureRangeBrushKey) {\n return 'majorrange arearange';\n }\n return 'majorrange measurerange';\n }\n\n let gestures = [];\n\n const gesturesFns = {\n isSelectionEnabled: () => handlers.selectionHandler && handlers.selectionHandler.isOn(),\n isNavigationEnabled: () => handlers.scrollHandler && handlers.scrollHandler.isOn(),\n doEmit,\n switchTo,\n getBrushConfig,\n };\n\n const gesturesParams = {\n handlers,\n keys,\n isHorizontal,\n active,\n rangeSelStatus,\n };\n\n if (hasSelections) {\n gestures = [\n {\n type: 'Tap',\n options: {\n event: 'rangeClearTap',\n },\n events: {\n rangeClearTap(e) {\n switchTo('none', this.chart, e);\n\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n },\n },\n },\n ];\n\n // Ordering matters here because the tap event, because the above gesture does not return anything\n // and we want don't want to call the navigational button enable function for all tap events\n gestures.unshift(navBtnGesture.callNavBtnGesture(gesturesFns.isNavigationEnabled, legendBrushKey));\n\n gestures.push(lassoGesture.callLassoGesture(state, gesturesFns, gesturesParams));\n\n // Only two of the axis range selection can exist at the same time\n if (!dimRangeBrushKey) {\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n // Register component to selections handler so it is cleared properly\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else if (!measureRangeBrushKey) {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n }\n }\n\n if (handlers.scrollHandler) {\n gestures.push(dragGesture.callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl));\n\n // On scroll we need to switch of the major ranging, so that pan will work\n handlers.scrollHandler.getScrollApi().on('update', onScrollUpdate);\n }\n\n function onScrollUpdate() {\n switchTo('none');\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n }\n\n ret.gestures = gestures;\n ret.destroy = function () {\n if (handlers.scrollHandler) {\n handlers.scrollHandler.getScrollApi().removeListener('update', onScrollUpdate);\n }\n };\n\n return ret;\n}\n\nexport default {\n create: DependentInteractions,\n};\n","import { getValue } from 'qlik-chart-modules';\n\nconst MAX_GLYPH_COUNT = 20;\n\n//\n// Implementation details\n//\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n const qApprMaxGlyphCount = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0.qApprMaxGlyphCount', 0);\n return Math.min(MAX_GLYPH_COUNT, qApprMaxGlyphCount);\n}\n\nfunction createDimensionAxisSettings(layout) {\n return {\n settings: {\n labels: {\n maxGlyphCount: getMaxGlyphCountForDimAxis(layout),\n },\n },\n };\n}\n\nconst DimensionAxis = {\n createSettings: createDimensionAxisSettings,\n};\n\nexport default DimensionAxis;\n","import { getValue } from 'qlik-chart-modules';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createDimensionScaleSettings(layout) {\n const isAutoMode = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n let min;\n let max;\n\n if (isAutoMode || binMode === 'maxCount') {\n // User is expecting a specific number of bars so we make sure the axis\n // will hold this number of bars even if there are not that many bars in the data\n const offset = histogramUtils.getDerivedBinOffset(layout);\n\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n min = offset;\n max = offset + binCount * binSize;\n } else {\n const dimInfo = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0', {});\n min = dimInfo.qMin || 0;\n max = (dimInfo.qMax || 0) + binSize;\n }\n\n return {\n component: {\n type: 'linear',\n min,\n max,\n },\n };\n}\n\nconst DimensionScale = {\n createSettings: createDimensionScaleSettings,\n};\n\nexport default DimensionScale;\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: {\n r: 255,\n g: 255,\n b: 255,\n a: 0,\n },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable camelcase */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-cond-assign */\n/* eslint-disable prefer-rest-params */\n\n/**\n * Module which defines a color object\n * @exports objects.views/charts/representation/color\n * @expose module:objects.views/charts/representation/color~Color\n */\nimport Class from './class';\nimport CSSColors from './css-colors';\n\n// color formats\nconst rgb = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i;\n\nconst rgba = /^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d(\\.\\d+)?)\\)$/i;\nconst hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;\nconst hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;\nconst hsl = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i;\nconst hsla = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i;\nconst floor = Math.floor;\nconst round = Math.round;\n\n/**\n * @class\n * @classdesc Class which provides color transformation functionality\n * @description This is a constructor.\n * @param {object} - Parameters to create a color from different notations\n * @example\n * // a few ways of instantiating a red color\n * var red;\n * red = new Color(255, 0, 0, 1); // rgba as parameters\n * red = new Color('#ff0000'); // hex\n * red = new Color('rgb(255,0,0)');//rgb as string\n * red = new Color('hsl(0, 100, 50)');// hsl as string\n * red = new Color(16711680);// uint\n */\nconst Color = Class.extend(\n /** @lends module:objects.views/charts/representation/color~Color# */ {\n init() {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n let h;\n let s;\n let lcs;\n let l;\n let v;\n let c;\n let h_;\n let x;\n let rgb_;\n let m;\n let matches;\n let colorString;\n\n this._invalid = false;\n\n if (arguments[0] instanceof Color) {\n r = arguments[0]._r;\n g = arguments[0]._g;\n b = arguments[0]._b;\n a = arguments[0]._a;\n this._invalid = arguments[0]._invalid;\n } else if (arguments.length < 3) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (\n (matches = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d(\\.\\d+)?)\\s*\\)$/i.exec(\n colorString\n ))\n ) {\n // rgba(1, 2, 3, 0.4)\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n a = parseFloat(matches[4]);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n // #aBc123\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n a = 1;\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n // #a5F\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n a = 1;\n } else if (\n (matches = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsl(1, 2, 3)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (\n (matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n colorString\n ))\n ) {\n // hsla(1,2,3,0.4)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n a = parseFloat(matches[7]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n } else if (\n (matches = /^hsv\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsv(1, 2, 3) {\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n v = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n v /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n v = v < 0 ? 0 : v > 1 ? 1 : v;\n\n c = v * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = v - c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (CSSColors[colorString.toLowerCase()]) {\n lcs = colorString.toLowerCase();\n r = CSSColors[lcs].r;\n g = CSSColors[lcs].g;\n b = CSSColors[lcs].b;\n a = typeof CSSColors[lcs].a === 'number' ? CSSColors[lcs].a : 1.0;\n } else {\n this._invalid = true;\n }\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0 && arguments[1] === 'argb') {\n a = (0xff000000 & arguments[0]) >>> 24;\n a /= 255;\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0) {\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else {\n this._invalid = true;\n }\n } else if (arguments.length >= 3) {\n r = arguments[0];\n g = arguments[1];\n b = arguments[2];\n a = arguments.length >= 4 ? arguments[3] : 1;\n } else {\n this._invalid = true;\n }\n\n if (Number.isNaN(+r + g + b + a)) {\n this._invalid = true;\n }\n\n this._r = floor(r);\n this._g = floor(g);\n this._b = floor(b);\n this._a = a;\n\n // object to cache string representations in various color spaces\n this._spaces = {};\n },\n isInvalid() {\n return this._invalid;\n },\n /**\n * Sets alpha value of color\n * @param {number} a - Alpha value of the color\n */\n setAlpha(a) {\n this._a = a;\n this._spaces = {};\n },\n /**\n * Gets the alpha value of this color\n * @returns {number}\n */\n getAlpha() {\n return this._a;\n },\n /**\n * Returns an rgb string representation of this color.\n * @return {string} An rgb string representation of this color\n */\n toRGB: function toRGB() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns an rgba string representation of this color.\n * @return {string} An rgba string representation of this color.\n */\n toRGBA: function toRGBA() {\n if (!this._spaces.rgba) {\n this._spaces.rgba = Color.toRGBA(this);\n }\n return this._spaces.rgba;\n },\n toString() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns a hex string representation of this color.\n * @return {string}\n */\n toHex: function toHex() {\n if (!this._spaces.hex) {\n this._spaces.hex = Color.toHex(this);\n }\n return this._spaces.hex;\n },\n /**\n * Returns a hsl string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsl(0,0,0)\n */\n toHSL: function toHSL(luma) {\n if (!this._spaces.hsl) {\n this._spaces.hsl = Color.toHSL(this, luma);\n }\n return this._spaces.hsl;\n },\n /**\n * Returns a hsla string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsla(0,0,0,0)\n */\n toHSLA: function toHSLA(luma) {\n if (!this._spaces.hsla) {\n this._spaces.hsla = Color.toHSLA(this, luma);\n }\n return this._spaces.hsla;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSV() {\n const hsvComp = this.toHSVComponents();\n return `hsv(${hsvComp.h},${hsvComp.s},${hsvComp.v})`;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSVComponents: function toHSVComponents() {\n if (!this._spaces.hsvComp) {\n this._spaces.hsvComp = Color.toHSVComponents(this);\n }\n return this._spaces.hsvComp;\n },\n /**\n * Returns a uint representation of this color\n * @return {number}\n */\n toNumber: function toNumber() {\n if (!this._spaces.num) {\n this._spaces.num = Color.toNumber(this);\n }\n return this._spaces.num;\n },\n /**\n * Checks if this color is perceived as dark.\n * @return {string} True if the luminance is below 160, false otherwise.\n */\n isDark() {\n return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2\n // return this.getLuminance() < 160; //luminace calc option #3\n },\n /**\n * Calculates the perceived luminance of the color.\n * @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.\n */\n getLuminance() {\n // alpha channel is not considered\n if (typeof this._lumi === 'undefined') {\n // calculate luminance\n // this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1\n this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2\n // this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3\n }\n\n return this._lumi;\n },\n /**\n * Shifts the color towards a lighter or darker shade\n * @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.\n * @return {string} The shifted color as hsla string.\n */\n shiftLuminance(value) {\n const chsla = this.toHSLA();\n const matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n chsla\n );\n\n const h = parseFloat(matches[1]);\n const s = parseFloat(matches[3]);\n let l = parseFloat(matches[5]);\n const a = parseFloat(matches[7]);\n // l *= 1 + value / 100;\n // l = Math.max( 0, l % 100 );\n l += value;\n l = Math.max(0, Math.min(l, 100));\n\n // if( value > 0 ){\n // s = s*0.2; //removing saturation to avoid the border from being too light\n // }\n\n return `hsla(${h},${s},${l},${a})`;\n },\n /**\n * Compares two colors.\n * @param {Color} c The color to compare with.\n * @return {boolean} True if the rgb channels are the same, false otherwise\n */\n isEqual(c) {\n if (c instanceof Color) {\n return this._r === c._r && this._g === c._g && this._b === c._b;\n }\n\n c = new Color(c);\n return this._r === c._r && this._g === c._g && this._b === c._b;\n },\n /**\n * Linearly interpolates each channel of two colors.\n * @param {Color} c2 The other color.\n * @param {number} t The interpolation value in the range (0-1).\n * @return {string} The blend as an rgb string.\n */\n blend(c2, t) {\n const r = floor(this._r + (c2._r - this._r) * t);\n const g = floor(this._g + (c2._g - this._g) * t);\n const b = floor(this._b + (c2._b - this._b) * t);\n const a = floor(this._a + (c2._a - this._a) * t);\n\n return `rgba(${[r, g, b, a].join(',')})`;\n },\n\n createShiftedColor(v) {\n if (v === undefined || Number.isNaN(+v)) {\n v = 1;\n }\n const lumi = this.getLuminance();\n const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;\n const hsla_string = this.shiftLuminance(\n (lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v\n );\n\n return new Color(hsla_string);\n },\n }\n);\n\n/**\n * Returns an rgb string representation of this color\n * @param {Color|string} c\n * @returns {string} An rgb string with channel values within range 0-255.\n */\nColor.toRGB = function toRGB(c) {\n if (c instanceof Color) {\n return `rgb(${[c._r, c._g, c._b].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgb(${r},${g},${b})`;\n};\n/**\n *\n * @param c\n * @param a\n * @returns {string} The color rgb format.\n */\nColor.toRGBA = function toRGB(c, a) {\n if (c instanceof Color) {\n return `rgba(${[c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgba(${r},${g},${b},${typeof a !== 'undefined' ? a : c._a})`;\n};\n/**\n *\n * @param {Color|string} c\n * @returns {string} The color in hexadecimal space.\n */\nColor.toHex = function toHex(c) {\n let r;\n let g;\n let b;\n if (c instanceof Color) {\n r = c._r.toString(16);\n g = c._g.toString(16);\n b = c._b.toString(16);\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n return `#${[r, g, b].join('')}`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n r = ((c & 0xff0000) >> 16).toString(16);\n g = ((c & 0x00ff00) >> 8).toString(16);\n b = (c & 0x0000ff).toString(16);\n\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n\n return `#${r}${g}${b}`;\n};\n/**\n * Return the color in hsl space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsl space.\n */\nColor.toHSL = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsl(${h * 360},${s * 100},${l * 100})`;\n};\n/**\n * Return the color in hsla space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsla space.\n */\nColor.toHSLA = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n const a = c._a;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsla(${h * 360},${s * 100},${l * 100},${a})`;\n};\n/**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\nColor.toHSVComponents = function (c) {\n let h = 0;\n let s;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, value/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n const v = max;\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = ch === 0 ? 0 : ch / v;\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return { h: (h * 360) % 360, s: s * 100, v: v * 100 };\n};\n/**\n * Returns an number representation of the color\n * @param {Color|string} c\n * @returns {Number} Unsigned integer in the range 0-16 777 216\n */\nColor.toNumber = function toNumber() {\n if (arguments.length === 1 && arguments[0] instanceof Color) {\n return (arguments[0]._r << 16) + (arguments[0]._g << 8) + arguments[0]._b;\n }\n\n let r = 0;\n let g = 0;\n let b = 0;\n let matches;\n let colorString;\n\n if (arguments.length === 1) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n }\n return (r << 16) + (g << 8) + b;\n};\nColor.blend = function blend(c1, c2, t) {\n c1 = Color.toNumber(c1);\n c2 = Color.toNumber(c2);\n\n const r1 = (c1 & 0xff0000) >> 16;\n const g1 = (c1 & 0x00ff00) >> 8;\n const b1 = c1 & 0x0000ff;\n const r2 = (c2 & 0xff0000) >> 16;\n const g2 = (c2 & 0x00ff00) >> 8;\n const b2 = c2 & 0x0000ff;\n const r = r1 + (r2 - r1) * t;\n const g = g1 + (g2 - g1) * t;\n const b = b1 + (b2 - b1) * t;\n\n return (r << 16) + (g << 8) + b;\n};\nColor.getBlend = function getBlend(c1, c2, t) {\n const r = c1._r + (c2._r - c1._r) * t;\n const g = c1._g + (c2._g - c1._g) * t;\n const b = c1._b + (c2._b - c1._b) * t;\n const a = c1._a + (c2._a - c1._a) * t;\n\n return new Color(r, g, b, a);\n};\nColor.isCSSColor = function (color) {\n if (arguments.length > 1 || typeof color !== 'string') {\n return false;\n }\n return (\n rgb.test(color) ||\n rgba.test(color) ||\n hex.test(color) ||\n hexShort.test(color) ||\n hsl.test(color) ||\n hsla.test(color) ||\n CSSColors[color.toLowerCase()]\n );\n};\n\nColor.getBestContrast = function (color, cl, cd) {\n const lum = color.getLuminance();\n return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;\n};\n\nColor.getContrast = function (color1, color2) {\n if (!color1 || !color2) {\n return undefined;\n }\n\n const l1 = color1.getLuminance() / 100;\n const l2 = color2.getLuminance() / 100;\n\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n }\n\n return (l2 + 0.05) / (l1 + 0.05);\n};\n\nColor.isDark = function () {\n const o = {\n getLuminance: Color.prototype.getLuminance,\n isInvalid: Color.prototype.isInvalid,\n };\n Color.prototype.init.apply(o, [].slice.call(arguments));\n return Color.prototype.isDark.call(o);\n};\n\nColor.useDarkLabel = function (areaColor, bgIsDark) {\n return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;\n};\n\nexport default Color;\n","import Color from './color';\n\nconst chartUtils = {\n TRANSPARENT_BLACK: 'rgba( 0,0,0,0.2 )',\n TRANSPARENT_WHITE: 'rgba( 255,255,255,0.7 )',\n LIGHT_GREY: '#ccc',\n DARK_GREY: '#666',\n BLACK: '#000',\n WHITE: '#fff',\n\n getInverse(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.BLACK;\n }\n return colorObj.isDark() ? this.WHITE : this.BLACK;\n },\n\n getContrastingGrey(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.DARK_GREY;\n }\n return Color.getBestContrast(colorObj, new Color(chartUtils.LIGHT_GREY), new Color(chartUtils.DARK_GREY));\n },\n\n getBestContrast(color, color1, color2) {\n return Color.getBestContrast(new Color(color), new Color(color1), new Color(color2));\n },\n\n getContrastingTransparent(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0 || color === 'none') {\n return this.TRANSPARENT_BLACK;\n }\n return colorObj.isDark() ? this.TRANSPARENT_WHITE : this.TRANSPARENT_BLACK;\n },\n};\n\nexport default chartUtils;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createBoxMarkerSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n) {\n const { theme } = chartView.environment;\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n\n const brushTrigger = [];\n const brushConsume = [\n basicSelectionSettings.consume,\n dimensionSelectionSettings.consume,\n measureSelectionSettings.consume,\n ];\n\n if (chartView._tooltipHandler.isOn()) {\n brushTrigger.push(tooltipSettings.box.trigger);\n brushConsume.push.apply(brushConsume, tooltipSettings.box.consume);\n }\n\n brushTrigger.push(basicSelectionSettings.trigger);\n\n return {\n key: 'box-marker',\n settings: {\n box: {\n fill: boxFillColor,\n stroke: chartStyleUtils.getContrastingGrey(boxFillColor).toHex(),\n strokeWidth: 1,\n maxWidthPx: Infinity,\n minWidthPx: NaN, // Temp fix for QLIK-92353 until a proper fix is available in picasso.js\n minWidth: 0,\n },\n major: {\n scale: 'dimension',\n ref: {\n start: 'binStart',\n end: 'binEnd',\n },\n },\n minor: { scale: 'measure' },\n whiskers: false,\n orientation: 'vertical',\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n data: {\n extract: {\n field: 'qDimensionInfo/0',\n props: {\n start: 0,\n end: { field: 'qMeasureInfo/0' },\n measure: {\n field: 'qMeasureInfo/0',\n reduce: 'first',\n value(v) {\n return v;\n },\n reduceLabel: 'none',\n },\n binStart: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum;\n },\n },\n binEnd: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum + binSize;\n },\n },\n elemNo: { field: 'qDimensionInfo/0' },\n bin: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v;\n },\n },\n },\n },\n },\n };\n}\n\nconst BoxMarker = {\n createSettings: createBoxMarkerSettings,\n};\n\nexport default BoxMarker;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, theme) {\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n labels: [\n {\n placements: [{}, { fill: chartStyleUtils.getInverse(boxFillColor) }],\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nconst Label = {\n createSettings: createLabelSettings,\n};\n\nexport default Label;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport DimensionAxis from './dimension-axis';\nimport DimensionScale from './dimension-scale';\nimport BoxMarker from './box-marker';\nimport Label from './label';\n// import propertyResolver from '../../../../assets/client/utils/property-resolver';\n\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\n/**\n * Checks whether the dimension is locked or not\n * @param layout - layout for histogram\n * @returns {boolean} - true is the dimension is locked, otherwise false\n */\nfunction getLockedDim(layout) {\n const dimInfos =\n layout.qUndoExclude &&\n layout.qUndoExclude.box &&\n layout.qUndoExclude.box.qHyperCube &&\n layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n ? layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n : undefined;\n if (!dimInfos) {\n return false;\n }\n return !!dimInfos[0].qLocked;\n}\n\n/**\n * Disables/Enables measure- dimension range selection depending if the field is locked or not.\n * In this case, as soon as the current class function is locked, then both measure and dimension\n * range selection is locked down\n * @param lockedDim - boolean determining if the dimension is locked down\n * @returns {object} that gives the status of measure and dimension range selection\n */\nfunction retrieveRangeSelStatus(lockedDim) {\n const rangeSelStatus = {};\n if (lockedDim) {\n rangeSelStatus.isOpenDim = false;\n rangeSelStatus.isOpenMea = false;\n } else {\n rangeSelStatus.isOpenDim = true;\n rangeSelStatus.isOpenMea = true;\n }\n return rangeSelStatus;\n}\n\nfunction isSingleSelect(layout) {\n return getValue(layout, 'qHyperCube.qDimensionInfo.0.qIsOneAndOnlyOne', false);\n}\n\nfunction createChartSettings(chartView, layout) {\n const isRtl = chartView.isRtl();\n const orgDimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n const dimTitle = orgDimInfo.qFallbackTitle || '';\n const { theme, translator } = chartView.environment;\n\n // Create components\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n\n let basicSelectionSettings = {};\n let dimensionSelectionSettings = {};\n let measureSelectionSettings = {};\n if (chartView._selectionHandler.isOn()) {\n chartView._selectionHandler.setUpStart();\n\n basicSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n });\n\n dimensionSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select-dimension'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n isSingleSelect: isSingleSelect(layout),\n });\n\n measureSelectionSettings = chartView._selectionHandler.setUpBrush({\n dataPath: 'qUndoExclude/box',\n contexts: ['select-measure'],\n data: ['end'],\n });\n\n chartView._selectionHandler.setUpDone();\n }\n\n const tooltipSettings = { box: {} };\n if (chartView._tooltipHandler.isOn()) {\n tooltipSettings.box = chartView._tooltipHandler.setUp({\n chartBuilder,\n environment: chartView.environment,\n data: [''],\n contexts: ['boxTip'],\n componentKey: 'box-marker',\n measureRows: ['measure'], // Should be a mapped path under extract, mandatory to display tooltip\n labelData: ['bin'], // Should be a mapped path under extract, mandatory to display tooltip\n });\n }\n\n const lockedDims = getLockedDim(layout);\n const rangeSelStatus = retrieveRangeSelStatus(lockedDims);\n\n const handlers = {\n scrollHandler: null,\n selectionHandler: chartView._selectionHandler,\n };\n\n const keys = {\n componentKey: 'box-marker',\n lassoBrushKey: 'select',\n dimRangeBrushKey: null,\n measureRangeBrushKey: 'select-measure',\n areaBrushKey: 'select-dimension',\n };\n\n if (this._dependentActions) {\n this._dependentActions.destroy();\n }\n this._dependentActions = DependentInteractions.create(handlers, 'vertical', isRtl, keys, rangeSelStatus);\n\n chartBuilder.addPreset('dimension-measure-chart', {\n // common\n isRtl,\n includeDimensionAxis: true,\n orientation: 'vertical',\n selectionsEnabled: chartView._selectionHandler.isOn(),\n theme,\n\n // measure scale\n measureSource: 'qMeasureInfo/0',\n measureScaleSettings: {\n component: {\n expand: 0,\n include: [0], // Make sure that the measure axis starts from 0.\n },\n },\n\n // Lasso\n enableLasso: true,\n lasso: {\n brushKey: 'select',\n brushComponents: ['box-marker'],\n },\n\n // Mea range selection\n enableMeasureRange: true,\n measureRange: {\n brushKey: 'select-measure',\n brushAxis: 'y-axis',\n brushArea: 'box-marker',\n brushScale: 'measure',\n },\n\n // Area range selection\n enableAreaRange: true,\n areaRange: {\n brushKey: 'select-dimension',\n brushAxis: 'x-axis',\n brushData: ['elemNo'],\n brushArea: 'box-marker',\n brushScale: 'rangeSelSettings',\n brushComponents: ['box-marker'],\n multiple: true,\n chartInstance: chartView.chartInstance,\n },\n brushActions: this._dependentActions.gestures,\n\n dimensionSource: 'qDimensionInfo/0',\n dimensionScaleSettings: DimensionScale.createSettings(layout),\n\n // measure axis and title\n measureAxisProperties: layout.measureAxis, // used by both\n measureTitleText: layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel'),\n\n // dimension axis and title\n dimensionAxisProperties: layout.dimensionAxis, // used by both\n dimensionAxisSettings: DimensionAxis.createSettings(layout),\n dimensionTitleText: dimTitle,\n\n // grid lines\n gridlines: layout.gridlines,\n\n // scroll\n hasNavigation: false,\n isNavigationEnabledFn: () => false,\n\n // ref-lines\n refLines: layout.refLine && layout.refLine.refLines,\n });\n\n const settings = chartBuilder.getSettings();\n\n // Box marker\n const boxMarkerSettings = BoxMarker.createSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n );\n chartBuilder.addComponent('box-marker', boxMarkerSettings);\n\n if (layout.dataPoint && layout.dataPoint.showLabels) {\n const binLabelSettings = Label.createSettings(layout, theme);\n chartBuilder.addComponent('labels', binLabelSettings);\n }\n\n // Add snapshot settings\n chartView.addSnapshotChartSettings(settings, layout);\n\n // max: layout.qHyperCube.qDimensionInfo[0].qMax + binSize,\n settings.scales.rangeSelSettings = {\n type: 'linear',\n min: settings.scales.dimension.min,\n max: settings.scales.dimension.max,\n source: 'qDimensionInfo/0',\n };\n\n return settings;\n}\n\nconst ChartSettings = {\n createChartSettings,\n};\n\nexport default ChartSettings;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartView from '@qlik/common/picasso/chart-view';\nimport SelectionHandler from '@qlik/common/picasso/selections/selections-handler';\nimport TooltipHandler from '@qlik/common/picasso/tooltip/tooltips-handler';\nimport DerivedProperties from '@qlik/common/picasso/derived-properties/derived-properties';\nimport cubesGenerator from './derived-properties/histogram-cubes-generator';\nimport histogramMappings from './derived-properties/histogram-mappings';\nimport ChartSettings from './chart-settings/chart-settings';\n\nconst namespace = '.histogram';\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\nfunction init({ environment, lasso, picasso, $element, backendApi, selectionsApi, renderState }) {\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n\n this.renderState = renderState;\n\n this.picassoElement.__do_not_use_findShapes = this.chartInstance.findShapes.bind(this.chartInstance); // to allow access to renderered content via DOM\n\n this._derivedProperties = new DerivedProperties();\n\n this._selectionHandler = SelectionHandler.create({\n model: backendApi.model,\n chartInstance: this.chartInstance,\n selectionsApi,\n selectPaths: ['/qUndoExclude/box/qHyperCubeDef'],\n lasso,\n });\n this._tooltipHandler = TooltipHandler.create(this.chartInstance, $element, chartID);\n\n this.setDataPaths(['qUndoExclude/box/qHyperCube']);\n}\n\nfunction updateConstraints(constraints) {\n const tooltip = !constraints.passive;\n const selection = !constraints.select && !constraints.active;\n\n this._tooltipHandler[tooltip ? 'on' : 'off']();\n this._selectionHandler[selection ? 'on' : 'off']();\n}\nfunction off() {\n this._tooltipHandler.off();\n this._selectionHandler.off();\n}\n\nfunction setSnapshotData(snapshotLayout) {\n this._super(snapshotLayout);\n\n snapshotLayout.qUndoExclude.box.qHyperCube.qDataPages = this.layout.qUndoExclude.box.qHyperCube.qDataPages; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(snapshotLayout);\n}\n\nfunction getRequireNumericDimensionAttribute(qHyperCube) {\n return qHyperCube.qDimensionInfo.length > 0 && qHyperCube.qDimensionInfo[0].qTags.indexOf('$numeric') === -1;\n}\n\nfunction getDisclaimerAttributes(layout) {\n function isOnlyNanData() {\n const rows = getValue(layout, 'qUndoExclude.box.qHyperCube.qDataPages.0.qMatrix', []);\n\n // There is only one row and the dimension value on that row is null, then we only have NaN data\n return rows.length === 1 && rows[0][0] && rows[0][0].qIsNull;\n }\n\n const onlyNanData = isOnlyNanData();\n\n return {\n data: layout.qUndoExclude && layout.qUndoExclude.box,\n supportedDisclaimers: {\n LimitedData: true,\n OnlyNanData: true,\n OnlyNegativeOrZeroValues: !onlyNanData,\n RequireNumericDimension: true,\n },\n options: {\n bottom: true,\n supportNegative: false,\n explicitOnlyNanData: onlyNanData,\n explicitRequireNumericDimension: getRequireNumericDimensionAttribute(layout.qHyperCube),\n },\n };\n}\n\nfunction updateChart(layout, settings) {\n if (!layout.qUndoExclude) {\n // Console error when undefined data is sent to picasso\n return Promise.resolve();\n }\n this._super(layout, settings);\n return undefined;\n}\n\nfunction getHashData(layout, properties) {\n return {\n box: properties.qHyperCubeDef,\n binMappings: histogramMappings.getMappingValues(layout),\n binProperties: properties.bins,\n measureAxis: properties.measureAxis,\n version: '2.0', // Added to trigger update because of logic changes in generateHyperCubes\n };\n}\n\nfunction updateData(layout) {\n const self = this;\n\n return self._super(layout).then(() => {\n if (self._destroyed) {\n return Promise.reject();\n }\n layout = self.layout; // eslint-disable-line no-param-reassign\n\n const rect = {\n height: Math.min(layout.qHyperCube.qSize.qcy, 1000),\n width: 2,\n };\n\n const model = self.backendApi.model;\n\n const isSnapshot = !!this.layout.snapshotData;\n if (isSnapshot) {\n return Promise.resolve();\n }\n\n return model.getEffectiveProperties().then((properties) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n return self._derivedProperties\n .addDefaultHyperCubeHash(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n self.environment.app,\n getHashData(layout, properties)\n )\n .then((hashData) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n const settings = {\n layout,\n properties,\n model,\n hashData,\n generateDerivedProperties(layout, properties) {\n return cubesGenerator.generateHyperCubes(layout, properties, self.environment);\n },\n };\n\n if (!self._derivedProperties.isDerivedUpToDate(settings)) {\n self.renderState.pending();\n return self._derivedProperties.updateDerivedProperties(settings);\n }\n if (!layout.qUndoExclude) {\n // Have seen a couple of console errors because qUndoExclude did not exist when calling backendApi.updateCache bellow\n return Promise.resolve();\n }\n\n self.renderState.restore();\n self.backendApi.updateCache(layout.qUndoExclude.box);\n\n return self.getData(self.backendApi, layout.qUndoExclude.box.qHyperCube, rect);\n });\n });\n });\n}\n\nfunction paint() {\n const undoExclude = this.layout.qUndoExclude;\n if (!undoExclude) {\n return Promise.resolve(false);\n }\n const haveBoxData = undoExclude.box && undoExclude.box.qHyperCube.qDataPages.length;\n if (haveBoxData) {\n return this._super();\n }\n return Promise.resolve(false);\n}\n\nfunction isLassoDisabled() {\n return false;\n}\n\nconst HistogramView = ChartView.extend('Histogram', {\n namespace,\n init,\n updateConstraints,\n off,\n createChartSettings: function createChartSettings(layout) {\n return ChartSettings.createChartSettings(this, layout);\n },\n setSnapshotData,\n getDisclaimerAttributes,\n updateChart,\n updateData,\n paint,\n isLassoDisabled,\n});\n\nexport default HistogramView;\n","export default class BackednAPi {\n constructor(model) {\n this.model = model;\n this.path = '/qUndoExclude/box/qHyperCubeDef';\n }\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n setCacheOptions({ maxStackedValues }) {}\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n updateCache(args) {}\n\n getData(pages) {\n return this.model.getHyperCubeData(this.path, pages);\n }\n}\n","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.conversion=r():e.conversion=r()}(window,(function(){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/conversion/\",n(n.s=2)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){window,e.exports=function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/qlik-modifiers/\",n(n.s=1)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){\"use strict\";n.r(r);var t=n(0),o=n.n(t),i=function(e,r,n){if(!r)return!1;var t,o=r.split(\".\"),i=o[o.length-1],a=e;for(t=0;t<o.length-1;++t)void 0===a[o[t]]&&(a[o[t]]=Number.isNaN(+o[t+1])?{}:[]),a=a[o[t]];if(void 0!==n){var s=a[i];return a[i]=n,{updated:n,previous:s}}return delete a[i],!1},a=function(e,r,n){var t,o=r.split(\".\"),i=e;if(void 0===i)return n;for(t=0;t<o.length;++t){if(void 0===i[o[t]])return n;i=i[o[t]]}return i},s=\"\".concat(\" \",\"(\").concat(\" \"),u=\"\".concat(\" \",\")\").concat(\" \");function l(e){return s+e+u}function c(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.qLibraryId){var n=function(e,r){if(!r)return null;var n,t;for(n=0;n<r.length;n++)if((t=r[n]).qInfo.qId===e)return t;return null}(e.qLibraryId,r.dimensionList);return n&&n.qData.info[0].qTags.indexOf(\"$numeric\")>-1}var t=function(e,r){if(!r)return null;var n,t,o=function(e){var r=e.trim();\"=\"===r.charAt(0)&&(r=(r=r.substring(1)).trim());var n=r.length-1;return\"[\"===r.charAt(0)&&\"]\"===r.charAt(n)&&(r=(r=r.substring(1,n)).trim()),r}(e);for(n=0;n<r.length;n++){if((t=r[n]).qName===o)return t;if(t.qDerivedFieldData)for(var i=0;i<t.qDerivedFieldData.qDerivedFieldLists.length;++i)for(var a=t.qDerivedFieldData.qDerivedFieldLists[i],s=0;s<a.qFieldDefs.length;++s){var u=a.qFieldDefs[s];if(u.qName===o)return u}}return null}(e.qDef.qFieldDefs[0],r.fieldList);return t&&t.qTags.indexOf(\"$numeric\")>-1}function p(e){return!(!e.fullAccumulation&&!e.fullRange)}function f(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"RowNo(Total)\":\"RowNo()\"}function m(e){var r=function(e){return e?(e=function(e){return e.replace(/\\/\\*[^]*?\\*\\//g,\"\")}(e=function(e){return e.replace(/\\/\\/(.*)$/gm,\"\")}(e))).trim():\"\"}(e).trim();return\"=\"===r.substring(0,1)?r.substring(1).trim():r}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return\"[$(=Replace(GetObjectField(\".concat(e,\"),']',']]'))]\")}function y(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"Above(Total \":\"Above(\"}function q(e){return void 0===e?\")\":\", 0, \".concat(e,\")\")}function b(e,r){return e?\"\".concat(r,'={\">=$(=Min(').concat(r,\"))<=$(=Max(\").concat(r,'))\"}'):\"\".concat(r,'={\"=Only({1}').concat(r,\")>='$(=MinString(\").concat(r,\"))' and Only({1}\").concat(r,\")<='$(=MaxString(\").concat(r,\"))'\\\"}\")}function D(e){var r=e.modifier,n=void 0===r?{}:r,t=e.dimensions,o=e.dimensionAndFieldList,i=e.funcComp,a=void 0===i?\"Sum\":i,s=e.valueComp,u=void 0===s?\"0\":s;if(!n.showExcludedValues)return\"\";if(t&&1===t.length){var l=b(c(t[0],o),d(0));return\"\".concat(a,\"({1<\").concat(l,\">}\").concat(u,\")\")}if(t&&2===t.length){var p=c(t[0],o),f=c(t[1],o),m=d(0),y=d(1),q=b(p,m),D=b(f,y);return\"\".concat(a,\"({1<\").concat(q,\",\").concat(D,\">}\").concat(u,\")\")}return\"\".concat(a,\"({1}\").concat(u,\")\")}function v(e){return\"\".concat(e,\"(\")}function g(e){var r=e.properties,n=e.layout;return a(r,\"qHyperCubeDef.qDimensions\",a(n,\"qHyperCube.qDimensionInfo\",[])).length}var h={isFullRange:p,getNumDimensions:g,getExpressionWithExcludedComp:function(e){var r=e.expression,n=e.modifier,t=e.dimensions,o=e.dimensionAndFieldList,i=e.treatMissingAsNull,a=l(m(r));if(!n.showExcludedValues)return a;var s=D({modifier:n,dimensions:t,dimensionAndFieldList:o}),u=i?\"\":\", 0\";if(t&&1===t.length){var c=d(0);return\"If(Count(\".concat(c,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}if(t&&2===t.length){var p=d(0),f=d(1);return\"If(Count(\".concat(p,\") * Count(\").concat(f,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}return a},getRowNoComp:f,getNumStepComp:function(e,r){if(!p(e)){var n=e.steps;return\"number\"!=typeof n||Number.isNaN(n)?6:n}return f(e,r)},getAboveCompPrefix:y,getAboveCompSuffix:q,getAboveComp:function(e,r,n,t){return y(e,r)+n+q(t)},getFunctionPrefix:v,getFunctionSuffix:function(){return\")\"},getRangeComp:function(e,r){return v(e)+r+\")\"},getAggrComp:function(e,r,n){return\"Aggr(\".concat(e,\", \").concat(r,\", \").concat(n,\")\")},getExcludedComp:D,needDimension:function(e){var r=e.modifier,n=e.properties,t=e.layout;return 0===function(e){return void 0===e.primaryDimension?e.accumulationDimension:e.primaryDimension}(r)&&2===g({properties:n,layout:t})},getDimComp:function(e,r){var n=function(e){return e[arguments.length>1&&void 0!==arguments[1]?arguments[1]:0].qDef.qSortCriterias[0]}(e,r),t=d(r);if(!n.qSortByExpression&&!n.qSortByNumeric&&!n.qSortByAscii)return t;var o=[\"Descending\",\"Ascending\"],i=n.qSortByNumeric?\"(Numeric, \".concat(o[(n.qSortByNumeric+1)/2],\")\"):\"\",a=n.qSortByAscii?\"(Text, \".concat(o[(n.qSortByAscii+1)/2],\")\"):\"\";return n.qSortByNumeric&&n.qSortByAscii?\"(\".concat(t,\", \").concat(i,\", \").concat(a,\")\"):n.qSortByNumeric?\"(\".concat(t,\", \").concat(i,\")\"):n.qSortByAscii?\"(\".concat(t,\", \").concat(a,\")\"):t},simplifyExpression:m,extractInputExpression:function(e){var r=e.outputExpression;if(e.modifier){var n=r.indexOf(s);if(-1!==n){var t=r.indexOf(u);if(-1!==t)return r.substring(n+s.length,t)}}},initModifier:function(e,r){Object.keys(r).forEach((function(n){void 0===e[n]&&(e[n]=r[n])}))},isNumeric:c,isApplicable:function(e){var r=e.properties,n=e.layout,t=e.minDimensions,o=void 0===t?1:t,i=e.maxDimensions,a=void 0===i?2:i;if(!r&&!n)return!0;var s=g({properties:r,layout:n});return s>=o&&s<=a},getExpressionWithMarkers:l,canExtract:function(e){var r=e.indexOf(s),n=e.indexOf(u);return r>-1&&n>-1&&r<n},getDimDefWithWrapper:d,getFieldWithWrapper:function(e){var r=e?e.replace(/]/g,\"]]\"):e;return\"[\".concat(r,\"]\")}};function x(e){return(x=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var E=o.a.bind(null,!0),A={},C=Array.isArray;function I(e){return null!=e&&!Array.isArray(e)&&\"object\"===x(e)}function M(e){return void 0===e}function S(e,r){return\"function\"==typeof e[r]||\"$$\"===r.substring(0,2)||\"_\"===r.substring(0,1)}function L(e,r){var n,t=r.substring(1).split(\"/\").slice(0,-1);return t.forEach((function(r,o){if(o!==t.length){n=+r;var i=Number.isNaN(n)?{}:[];e[n||r]=M(e[n||r])?i:e[r],e=e[n||r]}})),e}function O(e,r){var n=!0;if(I(e)&&I(r))return Object.keys(e).length===Object.keys(r).length&&(Object.keys(e).forEach((function(t){O(e[t],r[t])||(n=!1)})),n);if(C(e)&&C(r)){if(e.length!==r.length)return!1;for(var t=0,o=e.length;t<o;t+=1)if(!O(e[t],r[t]))return!1;return!0}return e===r}A.generate=function(e,r,n){n=n||\"\";var t=[];return Object.keys(r).forEach((function(o){var i=function(e){return e?E({},{val:e}).val:e}(r[o]),a=e[o],s=\"\".concat(n,\"/\").concat(o);O(i,a)||S(r,o)||(M(a)?t.push({op:\"add\",path:s,value:i}):I(i)&&I(a)?t=t.concat(A.generate(a,i,s)):C(i)&&C(a)?t=t.concat(function(e,r,n){var t=[],o=e.slice(),i=-1;function a(e,r,n){if(e[n]&&M(e[n].qInfo))return null;if(e[n]&&e[n].qInfo.qId===r)return n;for(var t=0,o=e.length;t<o;t+=1)if(e[t]&&e[t].qInfo.qId===r)return t;return-1}if(O(r,o))return t;if(!M(r[0])&&M(r[0].qInfo))return t.push({op:\"replace\",path:n,value:r}),t;for(var s=o.length-1;s>=0;s-=1)-1===(i=a(r,o[s].qInfo&&o[s].qInfo.qId,s))?(t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(s)}),o.splice(s,1)):t=t.concat(A.generate(o[s],r[i],\"\".concat(n,\"/\").concat(s)));for(var u=0,l=r.length;u<l;u+=1)-1===(i=a(o,r[u].qInfo&&r[u].qInfo.qId))?(t.push({op:\"add\",path:\"\".concat(n,\"/\").concat(u),value:r[u]}),o.splice(u,0,r[u])):i!==u&&(t.push({op:\"move\",path:\"\".concat(n,\"/\").concat(u),from:\"\".concat(n,\"/\").concat(i)}),o.splice(u,0,o.splice(i,1)[0]));return t}(a,i,s)):t.push({op:\"replace\",path:\"\".concat(n,\"/\").concat(o),value:i}))})),Object.keys(e).forEach((function(o){M(r[o])&&!S(e,o)&&t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(o)})})),t},A.apply=function(e,r){r.forEach((function(r){var n,t=L(e,r.path),o=r.path.split(\"/\").splice(-1)[0],i=o&&Number.isNaN(+o)?t[o]:t[+o]||t,a=r.from?r.from.split(\"/\").splice(-1)[0]:null;if(\"/\"===r.path&&(t=null,i=e),\"add\"===r.op||\"replace\"===r.op)if(C(t))\"-\"===o&&(o=t.length),t.splice(+o,\"add\"===r.op?0:1,r.value);else if(C(i)&&C(r.value)){var s,u=r.value.slice();i.length=0,(s=i).push.apply(s,function(e){return function(e){if(Array.isArray(e)){for(var r=0,n=new Array(e.length);r<e.length;r++)n[r]=e[r];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}(u))}else if(I(i)&&I(r.value))n=i,Object.keys(n).forEach((function(e){Object.getOwnPropertyDescriptor(n,e).configurable&&!S(n,e)&&delete n[e]})),E(i,r.value);else{if(!t)throw new Error(\"Patchee is not an object we can patch\");t[o]=r.value}else if(\"move\"===r.op){var l=L(e,r.from);C(t)?t.splice(+o,0,l.splice(+a,1)[0]):(t[o]=l[a],delete l[a])}else\"remove\"===r.op&&(C(t)?t.splice(+o,1):delete t[o])}))},A.clone=function(e){return E({},e)},A.createPatch=function(e,r,n){var t={op:e.toLowerCase(),path:n};return\"move\"===t.op?t.from=r:void 0!==r&&(t.value=r),t},A.updateObject=function(e,r){Object.keys(e).length?A.apply(e,A.generate(e,r)):E(e,r)};var F=A,P=function(e,r,n){if(!e)return Promise.resolve();var t=F.generate(r,n);return o()(!0,r,n),t&&t.length?(t=t.map((function(e){return{qOp:e.op,qValue:JSON.stringify(e.value),qPath:e.path}})),e.applyPatches(t,!0)):Promise.resolve()},N=\"accumulation\";function V(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===N)return n[t]}function w(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===N)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var T={type:\"accumulation\",disabled:!1,accumulationDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullAccumulation:!1,steps:6,outputExpression:\"\"},H={translationKey:\"properties.modifier.accumulation\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getNumStepComp(n,u),f=h.getAboveComp(n,u,c,p),m=h.getRangeComp(\"RangeSum\",f);if(h.needDimension({modifier:n,properties:t,layout:o})){var d=h.getDimComp(l,1),y=h.getDimComp(l,0),q=h.getAggrComp(m,d,y);m=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,valueComp:q}):q}return m},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,T)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.accumulation.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(w(r,e),\".accumulationDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.accumulation.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(w(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.accumulation.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(w(r,e),\".fullAccumulation\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(w(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=V(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=V(r,e);return n&&!n.fullAccumulation}},showExcludedValues:{refFn:function(r){return\"\".concat(w(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(N))return!1;var i=V(r,e);return i&&!i.disabled}};return n}},j=\"movingAverage\";function _(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===j)return n[t]}function R(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===j)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var B={type:\"movingAverage\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullRange:!1,steps:6,outputExpression:\"\",nullSuppression:!1},k={translationKey:\"properties.modifier.movingAverage\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r,n=e.expression,t=e.modifier,o=e.properties,i=e.layout,s=e.numDimensions,u=e.dimensionAndFieldList;if(!t)return n;var l=s;void 0===l&&(l=h.getNumDimensions({properties:o,layout:i}));var c=a(o,\"qHyperCubeDef.qDimensions\",[]),p=t.showExcludedValues&&t.nullSuppression,f=h.getExpressionWithExcludedComp({expression:n,modifier:t,dimensions:c,dimensionAndFieldList:u,treatMissingAsNull:p}),m=h.getNumStepComp(t,l),d=h.getAboveComp(t,l,f,m);if(t.nullSuppression)r=h.getRangeComp(\"RangeAvg\",d);else{var y=h.getRangeComp(\"RangeSum\",d),q=function(e,r){var n=h.getRowNoComp(e,r);if(!h.isFullRange(e)){var t=e.steps,o=\"number\"!=typeof t||Number.isNaN(t)?6:t;return\"RangeMin(\".concat(o,\", \").concat(n,\")\")}return n}(t,l);r=\"\".concat(y,\" / \").concat(q)}var b=r;if(h.needDimension({modifier:t,properties:o,layout:i})){var D=h.getDimComp(c,1),v=h.getDimComp(c,0),g=h.getAggrComp(b,D,v);b=t.showExcludedValues?h.getExcludedComp({modifier:t,dimensions:c,dimensionAndFieldList:u,funcComp:\"Only\",valueComp:g}):g}return b},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,B)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.movingAverage.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(R(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.movingAverage.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(R(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.movingAverage.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(R(r,e),\".fullRange\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(R(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=_(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=_(r,e);return n&&!n.fullRange}},showExcludedValues:{refFn:function(r){return\"\".concat(R(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0},nullSuppression:{refFn:function(r){return\"\".concat(R(r,e),\".nullSuppression\")},type:\"boolean\",translation:r.showNull||\"properties.dimensions.showNull\",schemaIgnore:!0,defaultValue:!1,inverted:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(j))return!1;var i=_(r,e);return i&&!i.disabled}};return n}},U=\"difference\";function G(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===U)return n[t]}function W(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===U)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var $={type:\"difference\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,outputExpression:\"\"},z={translationKey:\"properties.modifier.difference\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getAboveComp(n,u,c),f=\"\".concat(c,\" - \").concat(p);if(h.needDimension({modifier:n,properties:t,layout:o})){var m=h.getDimComp(l,1),d=h.getDimComp(l,0),y=h.getAggrComp(f,m,d);f=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,funcComp:\"Only\",valueComp:y}):y}return f},initModifier:function(e){Object.keys($).forEach((function(r){void 0===e[r]&&(e[r]=$[r])}))},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.difference.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(W(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.difference.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(W(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.difference.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},showExcludedValues:{refFn:function(r){return\"\".concat(W(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(U))return!1;var i=G(r,e);return i&&!i.disabled}};return n}},Y={CURRENT_SELECTION:0,SELECT_FIELD_VALUE:1,DISREGARD_SELECTION:2},J={ONE_DIMENSION:0,ALL_DIMENSIOANS:1,DISREGARD_ALL_DIMENSIONS:2},K=\"normalization\";function X(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===K)return n[t]}function Q(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===K)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}function Z(e,r){for(var n=0;n<e.length;n++)if(e[n].value===r)return n;return-1}function ee(e,r,n,t){var o=r.layout.qHyperCube.qDimensionInfo.length,i=[{value:J.ONE_DIMENSION,translation:n.dimensionalScopeOneDimension||\"properties.modifier.dimensionalScope.respectOneDimension\",tooltipTranslation:n.dimensionalScopeOneDimensionTooltip||\"properties.modifier.dimensionalScope.respectOneDimension.tooltip\"},{value:J.ALL_DIMENSIOANS,translation:n.dimensionalScopeAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\"),tooltipTranslation:n.dimensionalScopeAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\",\".tooltip\")},{value:J.DISREGARD_ALL_DIMENSIONS,translation:n.dimensionalScopeDisregardAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\"),tooltipTranslation:n.dimensionalScopeDisregardAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\",\".tooltip\")}];return i=function(e,r,n){if(e<2){var t=Z(r,0);r.splice(t,1)}return r}(o,i),function(e,r,n){if(0===e){var t=Z(r,1);r.splice(t,1)}return r}(X(e,t).selectionScope,i)}function re(e,r,n){var t=[{value:Y.CURRENT_SELECTION,translation:r.selectionScopeCurrentSelection||\"properties.modifier.selectionScope.currentSelection\"},{value:Y.SELECT_FIELD_VALUE,translation:r.selectionScopeSpecificValue||\"properties.modifier.selectionScope.selectAField\"},{value:Y.DISREGARD_SELECTION,translation:r.selectionScopeTotal||\"properties.modifier.selectionScope.total\"}];return function(e,r,n){if(1===e){var t=Z(r,0);r.splice(t,1)}return r}(X(e,n).dimensionalScope,t)}var ne={type:\"normalization\",disabled:!1,primaryDimension:0,outputExpression:\"\",dimensionalScope:J.DISREGARD_ALL_DIMENSIONS,selectionScope:Y.DISREGARD_SELECTION};function te(e){return 2===e?\"{1}\":\"\"}function oe(e,r,n){return 1===e?\"{$<\".concat(h.getFieldWithWrapper(r),\"={'\").concat(n,\"'}>}\"):\"\"}function ie(e,r){return 0===e&&r>1||2===e?\"Total\":\"\"}function ae(e,r,n){return 0===e&&r>1?\"<\".concat(h.getDimDefWithWrapper(n),\">\"):\"\"}var se={translationKey:\"properties.modifier.normalization\",needDimension:function(){return!0},isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=n.selectionScope,f=n.dimensionalScope;return function(e,r,n,t,o,i,a){var s=te(r),u=oe(r,n,t),l=\"\"===s&&\"\"===u?\"\":s||u,c=ie(o,i),p=ae(o,i,a),f=function(e){for(var r=[],n=0;n<e;n++)r[n]=h.getDimDefWithWrapper(n);return r.join(\", \")}(i);return\"\".concat(e,\"/ Sum(\").concat(l,\" \").concat(c).concat(p,\" Aggr(\").concat(l,\" \").concat(e,\", \").concat(f,\"))\")}(c,p,n.field,n.value,f,u,n.primaryDimension)},initModifier:function(e){Object.keys(ne).forEach((function(r){void 0===e[r]&&(e[r]=ne[r])}))},updateModifier:function(e,r){1===(r.qDimensions?r.qDimensions.length:0)&&0===e.dimensionalScope&&(e.dimensionalScope=2)},enableTotalsFunction:function(){return!0},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.normalization.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{selectionScope:{refFn:function(r){return\"\".concat(Q(r,e),\".selectionScope\")},type:\"string\",translation:r.modifierSelectionScope||\"properties.modifier.selectionScope\",title:{translation:r.modifierSelectionScopeTooltip||\"properties.modifier.selectionScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:Y.DISREGARD_SELECTION,options:function(n){return re(n,r,e)}},field:{refFn:function(r){return\"\".concat(Q(r,e),\".field\")},type:\"string\",component:\"expression-with-dropdown\",translation:\"Common.Field\",defaultValue:\"\",dropdownOnly:!0,options:function(e,r,n){return n.app.getFieldList().then((function(e){return e.map((function(e){return{label:e.qName,value:e.qName}}))}))},show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},value:{refFn:function(r){return\"\".concat(Q(r,e),\".value\")},type:\"string\",ref:\"value\",component:\"string\",translation:\"properties.value\",expression:\"optional\",show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},dimensionalScope:{refFn:function(r){return\"\".concat(Q(r,e),\".dimensionalScope\")},type:\"string\",translation:r.modifierDimensionalScope||\"properties.modifier.dimensionalScope\",title:{translation:r.modifierDimensionalScopeTooltip||\"properties.modifier.dimensionalScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:J.DISREGARD_ALL_DIMENSIONS,supportTooltip:!0,options:function(n,t){return ee(n,t,r,e)}},primaryDimension:{refFn:function(r){return\"\".concat(Q(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.normalization.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(r,n){return(X(r,e).dimensionalScope||0)===J.ONE_DIMENSION&&n.layout.qHyperCube.qDimensionInfo.length>1}}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(K))return!1;var i=X(r,e);return i&&!i.disabled}};return n},getDisregardSelectionComp:te,getFieldSelectionComp:oe,getTotalComp:ie,getSelectedDimComp:ae},ue={getExpression:function(e){return a(e,\"qDef.base.qDef\")||a(e,\"qDef.qDef\")},getExpressionRef:function(e){return a(e,\"qDef.base.qDef\")?\"qDef.base.qDef\":\"qDef.qDef\"},getLibraryIdRef:function(e){return a(e,\"qDef.base.qLibraryId\")?\"qDef.base.qLibraryId\":\"qLibraryId\"},getLibraryId:function(e){return a(e,\"qDef.base.qLibraryId\")||a(e,\"qLibraryId\")},getLabelRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabel\":\"qDef.qLabel\"},getLabelExpressionRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabelExpression\":\"qDef.qLabelExpression\"}},le={initBase:function(e,r){(r||le.isValid(e))&&(i(e,\"qDef.base.qDef\",a(e,\"qDef.qDef\")),i(e,\"qDef.base.qLibraryId\",a(e,\"qLibraryId\")),i(e,\"qDef.base.qLabel\",a(e,\"qDef.qLabel\")),i(e,\"qDef.base.qLabelExpression\",a(e,\"qDef.qLabelExpression\")))},restoreBase:function(e){le.isValid(e)&&(i(e,\"qDef.qDef\",a(e,\"qDef.base.qDef\")),i(e,\"qLibraryId\",a(e,\"qDef.base.qLibraryId\")),i(e,\"qDef.qLabel\",a(e,\"qDef.base.qLabel\")),i(e,\"qDef.qLabelExpression\",a(e,\"qDef.base.qLabelExpression\")),a(e,\"qDef.qAggrFunc\")&&a(e,\"qDef.base.qAggrFunc\")&&i(e,\"qDef.qAggrFunc\",a(e,\"qDef.base.qAggrFunc\")),delete e.qDef.base)},isValid:function(e){var r=a(e,\"qDef.base.qDef\"),n=a(e,\"qDef.base.qLibraryId\");return void 0!==r||void 0!==n}},ce=le;function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var fe={accumulation:H,movingAverage:k,difference:z,normalization:se},me=(r.default={modifiers:fe,apply:de,applyModifiers:ye,cleanUpMeasure:qe,destroy:function(e){e&&me[e.id]&&me[e.id].masterItemSubscriber&&(me[e.id].masterItemSubscriber&&me[e.id].masterItemSubscriber.unsubscribe(),delete me[e.id])},hasActiveModifiers:be,getActiveModifier:De,initBase:ce.initBase,isSupportedModifiers:function(e){return Array.isArray(e)&&e.some((function(e){return fe[e]}))},isApplicableSupportedModifiers:function(e){var r=e.modifierTypes,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return fe[e]&&fe[e].isApplicable({properties:n,layout:t})}))},measureBase:ue,limitedSorting:function(e){var r=e.measures,n=e.properties,t=e.layout,o=!1,i=!1;return r.forEach((function(e){var r=he(e);Se({modifiers:r,properties:n,layout:t})&&(o=!0,i=i||Ne({modifiers:r,properties:n,layout:t}))})),o&&!i},ifEnableTotalsFunction:ve},{});function de(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.model,n=e.properties,t=e.isSnapshot,i=void 0!==t&&t,s=e.masterItem;me[r.id]=me[r.id]||{isFirstTime:!0};var u=me[r.id].isFirstTime;if(me[r.id].isFirstTime=!1,n&&\"object\"===pe(n))return ye({model:r,properties:n});var l=r?r.layout:void 0,c=a(l,\"qSelectionInfo.qInSelections\");if(i||c)return Promise.resolve(!1);var p=a(l,\"qHyperCube.qMeasureInfo\"),f=me[r.id].lastReloadTime;if(me[r.id].lastReloadTime=a(r,\"app.layout.qLastReloadTime\"),be({measures:p,layout:l})){var m=function(e){var r=e.measures,n=e.layout,t=e.lastReloadTime;return a(e.model,\"app.layout.qLastReloadTime\")!==t&&function(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Me({measure:e,properties:n,layout:t})}))}({measures:r,layout:n})}({measures:p,layout:l,model:r,lastReloadTime:f});return m||function(e){var r=e.measures,n=e.layout,t=e.masterItem,o=e.isFirstTime;return!!Array.isArray(r)&&(o||t||r.some((function(e){return function(e){var r=e.measure,n=e.layout;return Se({modifiers:he(r),layout:n})?!r.base:!!r.base}({measure:e,layout:n})})))}({measures:p,layout:l,masterItem:s,isFirstTime:u})?r.getEffectiveProperties().then((function(e){var n=o()(!0,{},e);Ee(n);var t=Ve(n);return Le({model:r}).then((function(o){return Oe({libraryIds:t,model:r}).then((function(t){return m&&function(e){var r=e.properties;ge(r).forEach((function(e){return function(e){var r=e.measure;if(Me({measure:r,properties:e.properties})){var n=0,t=r.qDef.modifiers;Array.isArray(t)&&t.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(n++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(n>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");var t=fe[e.type].extractInputExpression({outputExpression:r.qDef.qDef,modifier:e});void 0!==t&&Ce(r)&&h.simplifyExpression(r.qDef.base.qDef)!==h.simplifyExpression(t)&&(r.qDef.base.qDef=t)}}))}}({measure:e,properties:r})}))}({properties:n}),ye({model:r,oldProperties:e,properties:n,runUpdateIfChange:!0,masterItem:s,libraryItemsProps:t,dimensionAndFieldList:o})}))}))})):Promise.resolve(!1)}return function(e){return!!Array.isArray(e)&&e.some((function(e){return\"object\"===pe(e.base)}))}(p)?r.getEffectiveProperties().then((function(e){return function(e){var r=e.model,n=e.properties,t=Ve(n);return we({model:r,libraryIds:t}).then((function(){var e=o()(!0,{},n);return ge(n).forEach((function(e){return qe(e)})),Pe({oldProperties:e,newProperties:n,model:r})}))}({model:r,properties:e})})):Promise.resolve(!1)}function ye(e){var r=e.model,n=e.oldProperties,t=e.properties,i=e.measures,s=e.runUpdateIfChange,u=void 0!==s&&s,l=e.masterItem,c=e.libraryItemsProps,p=e.dimensionAndFieldList;void 0===n&&(n=u?o()(!0,{},t):t),Ee(t);var f=Ve(t);return we({model:r,libraryIds:f,masterItem:l}).then((function(){return function(e){var r=e.measures,n=e.properties,t=e.model,i=e.libraryItemsProps,s=e.dimensionAndFieldList;if(r||(r=ge(n)),!r.length)return Promise.resolve();if(!be({measures:r,properties:n}))return r.forEach((function(e){return qe(e)})),Promise.resolve();var u=i?void 0:Ve(n);return Le({model:t,dimensionAndFieldList:s}).then((function(e){return Oe({libraryIds:u,model:t,libraryItemsProps:i}).then((function(t){r.forEach((function(r){Se({modifiers:r.qDef.modifiers,properties:n})?(function(e){var r=e.measure,n=e.properties,t=e.libraryItemsProps,i=e.dimensionAndFieldList,s=0;ce.isValid(r)||ce.initBase(r,!0);var u=r.qDef,l=u.modifiers,c=u.base;Array.isArray(l)&&l.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(s++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(s>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");fe[e.type].initModifier(e);var u=r.qLibraryId||c&&c.qLibraryId;u?function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList,a=e.libraryItemsProps[e.libraryId],s=a.qMeasure.qDef,u=fe[n.type].generateExpression({expression:s,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=u,r.qDef.qDef=n.outputExpression,(r.qDef.qLabel||a.qMeasure.qLabel)&&(r.qDef.qLabel=a.qMeasure.qLabel),(r.qDef.qLabelExpression||a.qMeasure.qLabelExpression)&&(r.qDef.qLabelExpression=a.qMeasure.qLabelExpression),r.qDef.quarantine&&r.qDef.quarantine.qNumFormat&&a.qMeasure.qNumFormat&&(r.qDef.qNumFormat=a.qMeasure.qNumFormat,r.qDef.isCustomFormatted=a.qMeasure.isCustomFormatted),delete r.qLibraryId,r.qDef.coloring=a.qMeasure.coloring,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,libraryId:u,properties:n,libraryItemsProps:t,dimensionAndFieldList:i}):function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList;\"function\"==typeof fe[n.type].updateModifier&&fe[n.type].updateModifier(n,t.qHyperCubeDef);var a=ue.getExpression(r),s=fe[n.type].generateExpression({expression:a,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=s,r.qDef.qDef=n.outputExpression,r.qDef.base.qLabelExpression?r.qDef.qLabelExpression=r.qDef.base.qLabelExpression:r.qDef.qLabel=r.qDef.base.qLabel||a,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,properties:n,dimensionAndFieldList:i}),function(e){var r=a(e,\"qDef.qAggrFunc\");\"Expr\"!==r||ve(e)?\"None\"!==r?delete e.qDef.base.qAggrFunc:\"None\"===r&&ve(e)&&\"Expr\"===e.qDef.base.qAggrFunc&&(e.qDef.qAggrFunc=\"Expr\",delete e.qDef.base.qAggrFunc):(e.qDef.qAggrFunc=\"None\",e.qDef.base.qAggrFunc=\"Expr\")}(r)}}))}({measure:r,properties:n,libraryItemsProps:t,dimensionAndFieldList:e}),Ae(r)):qe(r)}))}))}))}({measures:i,properties:t,model:r,libraryItemsProps:c,dimensionAndFieldList:p}).then((function(){return u?Pe({oldProperties:n,newProperties:t,model:r}):Promise.resolve(!1)}))}))}function qe(e){!function(e){var r=he(e);return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&!fe[e.type]}))}(e)?ce.restoreBase(e):delete e.qDef.base,e.qDef.coloring&&delete e.qDef.coloring,Ae(e)}function be(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Se({modifiers:he(e),properties:n,layout:t})}))}function De(e){var r=he(e);if(Array.isArray(r))for(var n=0;n<r.length;n++){var t=r[n];if(fe[t.type]&&!t.disabled)return t}}function ve(e){var r=De(e);return!r||fe[r.type].enableTotalsFunction(e)}function ge(e){return a(e,\"qHyperCubeDef.qMeasures\",[]).concat(a(e,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",[]))}function he(e){return e.modifiers||e.qDef&&e.qDef.modifiers}function xe(e){return a(e,\"outputExpression.qValueExpression.qExpr\")||a(e,\"outputExpression\")}function Ee(e){ge(e).forEach((function(e){return function(e){var r=De(e);r&&(void 0!==r.outputExpression&&xe(r)!==e.qDef.qDef?delete e.qDef.base:!ce.isValid(e)&&r.base&&(e.qDef.base=o()(!0,{},r.base)))}(e)}))}function Ae(e){var r=he(e);Array.isArray(r)&&r.forEach((function(r){\"object\"===pe(r)&&(r.disabled||!fe[r.type]&&xe(r)!==e.qDef.qDef)&&(r.disabled=!0,delete r.base)}))}function Ce(e){return e.base||e.qDef&&e.qDef.base}function Ie(e){var r=Ce(e);return e.qLibraryId||r&&r.qLibraryId}function Me(e){var r=e.measure,n=e.properties,t=e.layout;return!Ie(r)&&Se({modifiers:he(r),properties:n,layout:t})}function Se(e){var r=e.modifiers,n=e.properties,t=e.layout,o={};return Array.isArray(r)&&r.some((function(e){return!(\"object\"!==pe(e)||e.disabled||!fe[e.type])&&(void 0===o[e.type]&&(o[e.type]=fe[e.type].isApplicable({properties:n,layout:t})),o[e.type])}))}function Le(e){var r=e.model,n=e.dimensionAndFieldList;if(n)return Promise.resolve(n);var t=[],o={},i=r.app.getDimensionList().then((function(e){o.dimensionList=e}));t.push(i);var a=r.app.getFieldList().then((function(e){o.fieldList=e}));return t.push(a),Promise.all(t).then((function(){return o}))}function Oe(e){var r=e.libraryIds,n=e.model,t=e.libraryItemsProps;if(t)return Promise.resolve(t);var o=r.measureLibraryIds,i=r.dimensionLibraryIds,a={},s=[];return o.forEach((function(e){var r=n.app.getMeasure(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),i.forEach((function(e){var r=n.app.getDimension(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),Promise.all(s).then((function(){return a}))}function Fe(e,r){if(\"\"!==r||-1===[\"qFmt\",\"qDec\",\"qThou\"].indexOf(e))return r}function Pe(e){var r=e.oldProperties,n=e.newProperties,t=e.model,o=JSON.stringify(a(r,\"qHyperCubeDef.qMeasures\"),Fe)!==JSON.stringify(a(n,\"qHyperCubeDef.qMeasures\"),Fe)||JSON.stringify(a(r,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Fe)!==JSON.stringify(a(n,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Fe);return o?function(e){var r=e.model,n=e.oldProperties,t=e.newProperties,o=r.layout;return o&&!o.qHasSoftPatches&&!o.qExtendsId&&a(o,\"qMeta.privileges\",[]).indexOf(\"update\")>-1?r.setProperties(t):P(r,n,t)}({model:t,oldProperties:r,newProperties:n}).then((function(){return o})):Promise.resolve(o)}function Ne(e){var r=e.modifiers,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&fe[e.type]&&fe[e.type].needDimension({modifier:e,properties:n,layout:t})}))}function Ve(e){var r=ge(e),n=[],t=[],o=!1;return r.forEach((function(r){var t=he(r);if(Se({modifiers:t,properties:e})){var i=Ie(r);i&&n.push(i),o=o||Ne({modifiers:t,properties:e})}})),a(e,\"qHyperCubeDef.qDimensions\",[]).forEach((function(e){var r=e.qLibraryId;r&&t.push(r)})),{measureLibraryIds:n,dimensionLibraryIds:t}}function we(e){var r=e.model,n=e.libraryIds;return!e.masterItem&&n&&(n.measureLibraryIds.length||n.dimensionLibraryIds.length)?(me[r.id].masterItemSubscriber=me[r.id].masterItemSubscriber||function(e){var r=e.model,n=e.callback,t={},o={},i={},s={dimension:[\"qDim.qFieldDefs\"],measure:[\"qMeasure.qDef\",\"qMeasure.qLabel\",\"qMeasure.qLabelExpression\",\"qMeasure.coloring\",\"qMeasure.qNumFormat\",\"qMeasure.isCustomFormatted\"]};function u(e){var r={},n=a(e,\"qInfo.qType\");return n&&s[n]&&s[n].forEach((function(n){r[n]=a(e,n)})),JSON.stringify(r)}function l(e){var r=e.qInfo.qId;if(t[r]){var o=u(e);t[r].properties!==o&&(t[r].properties=o,\"function\"==typeof n&&t[r].enabled&&n(e)),t[r].enabled=!0}}function c(e,n){return r.app[n](e).then((function(r){t[e]={listener:r.layoutSubscribe(l),enabled:!1,properties:u(r.layout)}}))}return{subscribe:function(e){var n=e.measureLibraryIds,a=e.dimensionLibraryIds,s=[];return function(e){var r=e.dimensionLibraryIds;o={},e.measureLibraryIds.forEach((function(e){o[e]=!0})),i={},r.forEach((function(e){i[e]=!0}))}({measureLibraryIds:n,dimensionLibraryIds:a}),Object.keys(t).forEach((function(e){o[e]||i[e]||(t[e].listener.dispose(),delete t[e])})),r.app&&(Object.keys(o).forEach((function(e){o[e]&&!t[e]&&s.push(c(e,\"getMeasure\"))})),Object.keys(i).forEach((function(e){i[e]&&!t[e]&&s.push(c(e,\"getDimension\"))}))),Promise.all(s)},unsubscribe:function(){Object.keys(t).forEach((function(e){t[e].listener.dispose()})),t={}}}}({model:r,callback:function(e){return de({model:r,masterItem:e}).then((function(){return r.app.clearUndoBuffer()}))}}),me[r.id].masterItemSubscriber.subscribe(n)):Promise.resolve()}}])},function(e,r,n){\"use strict\";function t(e){var r=function e(r){var n,t=r;return t>9?(n=65+t-10)>90&&(n+=6):t=\"\".concat(t).charCodeAt(0),[48,111,79,105,73,108].indexOf(n)>-1?e(t+1):String.fromCharCode(n)}(e%62),n=Math.floor(e/62);return n>0?t(n)+r:r}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.r(r);var i={getValue:function(e,r,n){if(null==e||null==r)return n;for(var t=r.split(\".\"),o=e,i=0;i<t.length;++i){var a=t[i];if(\"\"!==a){if(void 0===o[a]||null===o[a])return n;o=o[a]}}return o},setValue:function(e,r,n){if(null!=e&&null!=r){for(var t=r.split(\".\"),o=t[t.length-1],i=e,a=0;a<t.length-1;++a){var s=t[a];void 0!==i[s]&&null!==i[s]||(i[s]=Number.isNaN(+t[a+1])?{}:[]),i=i[s]}void 0!==n?i[o]=n:delete i[o]}},isEmpty:function(e){return 0===Object.keys(e).length&&e.constructor===Object},isAtomicValue:function(e){return/boolean|number|string/.test(o(e))},generateId:function(){return t(Math.round(99e11*Math.random()+1e11)).replace(/\\W/g,\"\")}};function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function F(e,r){return e.length!==r}var P={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),F(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},T={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function H(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=P.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){H(e,\"qAttributeDimensions\",n),H(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){H(e,\"qAttributeDimensions\",n),H(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=P.create(P.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=P.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=P.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(T[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=P.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return P.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),P.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),P.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","function onChangeCalcCond(data) {\n const baseCube = data?.qHyperCubeDef;\n const generatedCube = data?.qUndoExclude?.box?.qHyperCubeDef;\n if (baseCube && generatedCube) {\n generatedCube.qCalcCond = baseCube.qCalcCond;\n generatedCube.qCalcCondition = baseCube.qCalcCondition;\n }\n}\n\nexport default {\n onChangeCalcCond,\n};\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport histogramUtils from './histogram-utils';\nimport propsLogic from './histogram-properties-logic';\n\nconst maxCountMode = 'maxCount';\nconst sizeMode = 'size';\n\nfunction inAdvancedMode(data) {\n return !(data.bins && data.bins.auto);\n}\n\nfunction showBinCount(data) {\n return inAdvancedMode(data) && data.bins.binMode === maxCountMode;\n}\n\nexport default function propertyDefinition(env) {\n const { translator } = env;\n\n const measureAxis = {\n uses: 'axis.picasso.measureAxis',\n items: {\n label: {\n type: 'string',\n expression: 'optional',\n expressionType: 'StringExpression',\n ref: 'measureAxis.label',\n defaultValue: '',\n translation: 'Common.Label',\n placeholderTranslation: 'Visualization.Histogram.MeasureAxisLabel',\n },\n },\n };\n\n const dimensionAxis = {\n uses: 'axis.picasso.dimensionAxis',\n items: {\n othersGroup: {\n items: {\n label: {\n show: false, // SUI-2470\n },\n },\n },\n },\n };\n\n const theme = env.anything.sense.theme;\n const defaultColor = () => {\n const { primary } = theme.getDataColorSpecials();\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(primary);\n return { index: index === -1 ? Math.min(6, palette.length - 1) : index };\n };\n\n const colors = {\n translation: 'properties.colors',\n type: 'items',\n items: {\n colors: {\n classification: {\n section: 'color',\n tags: ['simple'],\n },\n type: 'items',\n items: {\n barColor: {\n ref: 'color.bar.paletteColor',\n translation: 'properties.histogram.barColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: defaultColor,\n },\n },\n },\n },\n };\n\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n items: {\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: false,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n snapshot: {\n tid: 'property-dataPoints',\n },\n },\n },\n };\n\n const simpleLabels = {\n items: {\n labels: {\n items: {\n header: {\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n pointLabels: {\n component: 'checkbox',\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'Simple.Label.Value',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n dimensionTitle: {\n component: 'checkbox',\n ref: 'dimensionAxis.show',\n type: 'string',\n translation: 'Simple.Label.XAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.dimensionAxis.show === 'labels' || data.dimensionAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.dimensionAxis.show = value ? 'labels' : 'all';\n },\n },\n },\n measureTitle: {\n component: 'checkbox',\n ref: 'measureAxis.show',\n type: 'string',\n translation: 'Simple.Label.YAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.measureAxis.show === 'labels' || data.measureAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.measureAxis.show = value ? 'labels' : 'all';\n },\n },\n },\n },\n },\n },\n };\n\n const settings = {\n uses: 'settings',\n items: {\n simpleLabels,\n presentation,\n colors,\n measureAxis,\n dimensionAxis,\n },\n };\n\n const addons = {\n type: 'items',\n component: 'expandable-items',\n translation: 'properties.addons',\n items: {\n dataHandling: {\n uses: 'dataHandling',\n items: {\n calcCond: {\n uses: 'calcCond',\n change: propsLogic.onChangeCalcCond,\n },\n },\n },\n refLines: {\n uses: 'reflines',\n items: {\n colorBackground: {\n show: false,\n },\n },\n },\n },\n };\n\n const dimensions = {\n translation: 'Common.Fields',\n alternativeTranslation: 'properties.alternative.fields',\n items: {\n dimensionLimits: {\n show: false,\n items: {\n otherMode: {\n readOnly: false,\n },\n otherSortMode: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherCounted: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherLimitMode: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n otherLimit: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n calculatedAgainstMessage: {\n show: true,\n label() {\n const measureName = translator.get('properties.histogram.staticMeasureName');\n return translator.get('Properties.DimensionLimits.CalculatedAgainst', measureName);\n },\n },\n },\n },\n others: {\n show: false,\n items: {\n suppressOther: {\n defaultValue: true,\n },\n },\n },\n },\n };\n\n const data = {\n uses: 'data',\n items: {\n dimensions,\n },\n };\n\n const customBinMode = {\n ref: 'bins.binMode',\n type: 'string',\n component: 'dropdown',\n options: [\n {\n value: maxCountMode,\n translation: 'Visualization.Histogram.Binning.NumberOfBinsOption',\n },\n {\n value: sizeMode,\n translation: 'Visualization.Histogram.Binning.BarWidthOption',\n },\n ],\n defaultValue: maxCountMode,\n show(data) {\n return inAdvancedMode(data);\n },\n };\n\n const bins = {\n translation: 'Visualization.Histogram.Bins',\n type: 'items',\n component: 'items',\n items: {\n auto: {\n ref: 'bins.auto',\n translation: 'Visualization.Histogram.Binning',\n component: 'switch',\n type: 'boolean',\n defaultValue: true,\n undefinedValue: false,\n options: [\n {\n value: true,\n translation: 'Visualization.Histogram.Binning.Auto',\n },\n {\n value: false,\n translation: 'Visualization.Histogram.Binning.Custom',\n },\n ],\n },\n autoMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.AutoDescription',\n show(data /* , handler, args */) {\n return !inAdvancedMode(data);\n },\n },\n\n mode: customBinMode,\n\n binCount: {\n ref: 'bins.binCount',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n translation: 'Visualization.Histogram.Binning.BinCount',\n defaultValue: '',\n convertFunctions: {\n get(getter, definition, args) {\n const binCount = args.properties.bins.binCount;\n\n if (histogramUtils.isEmpty(binCount)) {\n return histogramUtils.getDerivedBinCount(args.layout);\n }\n\n return getter(null) || '';\n },\n set(value, setter, definition) {\n setter(definition.type, value, undefined);\n },\n },\n show: showBinCount,\n },\n binMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountRounding',\n show(data /* , handler, args */) {\n const binCount = getValue(data, 'bins.binCount');\n const isExpression = typeof binCount === 'object';\n\n return (\n showBinCount(data) &&\n !histogramUtils.isEmpty(binCount) &&\n !isExpression &&\n !isInteger(binCount) &&\n binCount > 0\n );\n },\n },\n minBinMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountMin',\n show(data) {\n const binCount = getValue(data, 'bins.binCount');\n\n return !!(showBinCount(data) && !histogramUtils.isEmpty(binCount) && binCount <= 0);\n },\n },\n binSize: {\n ref: 'bins.binSize',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n defaultValue: 10,\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.BinSize',\n },\n\n offset: {\n ref: 'bins.offset',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.Offset',\n },\n\n distinct: {\n ref: 'bins.countDistinct',\n type: 'boolean',\n defaultValue: false,\n component: 'checkbox',\n translation: 'Visualization.Histogram.CountDistinct',\n },\n },\n };\n\n return {\n type: 'items',\n component: 'accordion',\n items: {\n data,\n bins,\n addons,\n settings,\n },\n };\n}\n","export default {\n type: 'items',\n component: 'accordion',\n items: {\n data: {\n uses: 'data',\n items: {\n dimensions: {\n translation: 'Common.Fields',\n },\n },\n },\n },\n};\n","/**\n * Implementation details\n */\n\nfunction getExportRawDataOptions(menu, cell, exportDialog) {\n menu.addItem({\n translation: 'contextMenu.export',\n tid: 'export',\n select() {\n exportDialog.show(cell.model, '/qUndoExclude/box/qHyperCubeDef');\n },\n });\n\n return Promise.resolve();\n}\n\nexport default {\n getExportRawDataOptions,\n};\n","import conversion from 'qlik-object-conversion';\nimport pp from './histogram-properties';\nimport exploreProperties from './histogram-explore-properties';\nimport histogramExport from './histogram-export';\nimport data from './histogram-data';\n\nexport default function ext(env) {\n if (!env.anything?.sense) {\n return undefined;\n }\n\n return {\n definition: pp(env),\n softDefinition: exploreProperties,\n support: {\n cssScaling: false,\n snapshot: true,\n export: true,\n exportData: true,\n sharing: true,\n viewData: true,\n },\n importProperties: (exportFormat, initialProperties, extension, hypercubePath) => {\n const dataDefinition = data(env);\n extension.mapProperties();\n const defaultPropertyValues = {\n defaultDimension: extension.getDefaultDimensionProperties(),\n defaultMeasure: extension.getDefaultMeasureProperties(),\n };\n return conversion.hypercube.importProperties({\n exportFormat,\n initialProperties,\n dataDefinition,\n defaultPropertyValues,\n hypercubePath,\n });\n },\n exportProperties(propertyTree, hyperCubePath, viewDataMode) {\n return conversion.hypercube.exportProperties({ propertyTree, hyperCubePath, viewDataMode });\n },\n requireNumericDimension: true,\n exportTableProperties(propertyTree) {\n // the hypercube that will be used for \"building\" the table is under `qUndoExclude.box.qHyperCubeDef`\n const hypercubePath = 'qUndoExclude.box';\n return conversion.hypercube.exportProperties({ propertyTree, hypercubePath });\n },\n getExportRawDataOptions: histogramExport.getExportRawDataOptions,\n };\n}\n","import {\n useConstraints,\n useEffect,\n useElement,\n useModel,\n usePromise,\n useRenderState,\n useSelections,\n useState,\n useStaleLayout,\n} from '@nebula.js/stardust';\nimport $ from 'jquery';\nimport locale from '@qlik/common/locale';\nimport picassoSetup from '@qlik/common/picasso/picasso-setup';\nimport useLasso from '@qlik/common/nebula/use-lasso';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport properties from './object-properties';\nimport data from './histogram-data';\nimport ChartView from './histogram-view';\nimport BackednAPi from './backend-api';\nimport ext from './ext';\n\nexport default function supernova(env) {\n locale(env.translator);\n const picasso = picassoSetup();\n const dataDefinition = data(env);\n\n return {\n qae: {\n properties,\n data: {\n targets: [dataDefinition],\n },\n },\n ext: ext(env),\n component() {\n const constraints = useConstraints();\n const element = useElement();\n const environment = useEnvironment();\n const lasso = useLasso();\n const model = useModel();\n const selections = useSelections();\n const layout = useStaleLayout();\n const renderState = useRenderState();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const backendApi = new BackednAPi(model);\n const selectionsApi = selections;\n const view = new ChartView({\n $element,\n backendApi,\n environment,\n lasso,\n picasso,\n selectionsApi,\n renderState,\n });\n\n setInstance(view);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n const [, error] = usePromise(async () => {\n if (!instance) {\n return;\n }\n instance.updateEnvironment(environment);\n instance.updateConstraints(constraints);\n\n // TODO: confim selection if triggered from engine (another websocket to the same session (browser tab))\n\n await instance.updateData(layout);\n await instance.paint();\n }, [layout, instance, environment]);\n if (error) {\n throw error;\n }\n\n useResize(instance);\n setupSnapshot(instance);\n },\n };\n}\n","import all from './all.json';\n\nexport default function autoRegister(translator) {\n if (translator && translator.get && translator.add) {\n const t = 'Object.Disclaimer.LimitedData';\n const g = translator.get(t);\n // if translated string is different from its id\n // assume translations already exists for current locale\n if (g !== t) {\n return;\n }\n\n Object.keys(all).forEach((key) => {\n translator.add(all[key]);\n });\n }\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup() {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio(['canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import { useAction, useConstraints, useEffect, useLayout, useState } from '@nebula.js/stardust';\nimport lassoIcon from './lasso-icon';\n\nexport default function useSelect() {\n const constraints = useConstraints();\n const [enabled, setEnabled] = useState(false);\n const [active, setActive] = useState(false);\n const isInSelections = !!useLayout().qSelectionInfo.qInSelections;\n const [lasso] = useState(() => ({\n toggle() {\n setActive((a) => !a);\n },\n }));\n\n useEffect(() => {\n if (!constraints) {\n return;\n }\n\n setEnabled(!constraints.select && !constraints.active);\n }, [constraints]);\n\n useAction(\n () => ({\n key: 'lasso',\n label: 'Lasso',\n icon: lassoIcon,\n hidden: !enabled || !isInSelections,\n active,\n action() {\n setActive((a) => !a);\n },\n }),\n [isInSelections, active, enabled]\n );\n\n lasso.enabled = () => enabled;\n lasso.active = () => active;\n return lasso;\n}\n","import { useConstraints, useOptions, usePromise, useRect } from '@nebula.js/stardust';\n\nexport default function useResize(chartInstance) {\n const rect = useRect();\n const options = useOptions();\n const constraints = useConstraints();\n\n const [, error] = usePromise(async () => {\n if (!chartInstance) {\n return;\n }\n chartInstance.updateConstraints(constraints);\n chartInstance.options = options;\n await chartInstance.resize();\n }, [rect.width, rect.height]);\n\n if (error) {\n throw error;\n }\n}\n"],"names":["init","Picasso","component","mounted","element","classList","add","style","pointerEvents","zIndex","render","renderer","disableTriggers","preferredSize","h","this","settings","label","rtl","dock","layout","dir","rect","display","justifyContent","alignItems","color","fontStyle","fontSize","width","height","transform","transformOrigin","textAlign","getStyle","modifiedLabel","spanStyle","overflow","whiteSpace","textOverflow","ref","alignToRef","title","lassoIcon","shapes","type","attrs","d","BINNING_DEFAULTS","AUTO","BIN_COUNT","BIN_SIZE","LABEL","OFFSET","COUNT_DISTINCT","BIN_MODE","Object","freeze","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qAlwaysFullyExpanded","qSuppressZero","qSuppressMissing","bins","auto","binCount","binSize","offset","countDistinct","binMode","bar","paletteColor","index","dataPoint","showLabels","dimensionAxis","show","measureAxis","autoMinMax","max","min","minMax","spacing","gridlines","refLine","refLines","sorting","autoSort","showTitles","subtitle","footnote","data","env","translator","path","dimensions","description","get","measures","C","e","t","n","prototype","constructor","M","create","r","S","I","A","O","N","E","P","RegExp","j","T","F","L","H","z","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","R","rgb","formatHex","V","formatRgb","B","trim","toLowerCase","exec","length","parseInt","_","$","U","Q","hasOwnProperty","NaN","K","g","b","opacity","W","G","J","isNaN","Math","round","toString","Z","X","s","l","o","i","a","u","ee","Je","split","Ge","Number","lt","TypeError","ct","enumerable","configurable","writable","defineProperty","key","st","ft","value","copy","assign","displayable","hex","formatHsl","arguments","brighter","pow","darker","sn","fn","exports","c","f","p","search","v","substring","reverse","join","m","y","x","charAt","match","toFixed","lastIndexOf","indexOf","dn","replace","pn","vn","hn","mn","gn","yn","bn","xn","qn","wn","kn","toUpperCase","slice","Cn","Mn","pattern","abbreviate","concat","substr","pop","test","prefix","postfix","maxPrecision","percentage","numericPattern","numericRegex","groupTemp","decTemp","temp","localeInfo","thousandDelimiter","decimalDelimiter","patternSeparator","abbreviations","qNumericalAbbreviation","forEach","prepare","subtype","formatValue","_prepared","positive","isFunctional","negative","zero","floor","String","toExponential","Dn","keys","map","sort","abs","q","w","toPrecision","ceil","log","jn","Tn","Fn","Ln","Hn","zn","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","locale_days","locale_days_abbr","locale_months","locale_months_abbr","qTimeFmt","qDateFmt","qTimestampFmt","Date","getUTCHours","getUTCDay","year","getUTCFullYear","month","getUTCMonth","day","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","getTime","getDay","Rn","Y","YY","YYY","def","MM","MMM","WW","WWW","D","call","push","fnTest","Class","extend","className","proto","_super","name","tmp","ret","apply","Error","ctor","Function","idGen","getChar","charCode","val","charCodeAt","fromCharCode","base62","chr","id","random","generateId","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","lrm","rlm","detectTextDirection","lineSettings","options","defaultSettings","line","stroke","theme","getColorPickerColor","strokeDasharray","_options$style","lineType","lineLabelSettings","chartID","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","fill","fontFamily","maxWidthPx","isVisible","undefined","refLineExpr","getRefLineTitle","valueString","showValue","showLabel","RtlUtil","constants","SHOW_AXIS_LABELS_OPTIONS","SHOW_TITLE_OPTIONS","HORIZONTAL","VERTICAL","LAYOUTSETTINGS","lasso","displayOrder","rangeDim","rangeMeasure","rangeMinor","scrollBar","minimumLayoutMode","prioOrder","measureAxisTitle","dimensionAxisTitle","gridLines","refLinesLabels","DEFAULT_CHART_ORIENTATION","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includes","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","some","interactionActions","measureAxisSettings","scale","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","source","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","dimension","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","enable","events","tap","emit","panstart","pan","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","axisDockUtil","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","measure","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","refLineUtil","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","count","range","domain","trackBy","axis","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","labels","tiltAngle","maxEdgeBleed","maxSize","mode","measureScale","fields","expand","field","scaleSettings","dimensionScale","extract","props","qText","datum","xAxis","yAxis","xAxisTitle","yAxisTitle","getBublesAlign","isAlignStart","getDock","dockT","dockTargets","layoutModes","SPARK","XSMALL","SMALL","MEDIUM","FULL","LayoutModes","getLabel","context","end","dataset","getLayoutModeKeys","modeKey","layoutModeKeys","directions","left","right","up","down","createComponent","minor","boxMarker","pointMarker","backgroundColor","scrollbar","components","comp","contexts","rangeUtil","target","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","content","state","item","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","parseFloat","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","filter","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DISCLAIMERS","alignment","default","util","getNoDataExistAttribute","qHyperCube","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","stackedDataPages","result","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qData","qSubNodes","qDimensionInfo","node","qDown","qArea","qHeight","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","explicitMinOn","explicitMaxOn","len","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","DisclaimersConfig","config","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","isValid","list","Disclaimer","environment","clear","isValidAndSupported","disclaimer","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","message","vizAttributes","helper","DisclaimerComponentHelper","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","qTop","qLeft","qWidth","maxHeight","then","pages","hasValidData","paint","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","Promise","resolve","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","appLayout","_this$environment$app2","qLocaleInfo","getValue","colorService","update","partialData","setAttribute","destroy","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copyIsArray","clone","deep","_typeof2","getFieldAccessor","deps","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","cellToValue","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","_typeof","normalizeConfig","main","propsArr","track","trackType","tracker","trackedItems","items","k","fieldValues","fieldLabels","cfg","itemData","collect","sum","children","eachAfter","callback","current","next","nodes","compare","eachBefore","start","ancestor","leastCommonAncestor","parent","splice","aNodes","ancestors","bNodes","each","leaves","root","links","hierarchy","child","childs","Node","valued","defaultChildren","depth","computeHeight","node_copy","copyData","node_count","node_each","node_eachAfter","node_eachBefore","node_sum","node_sort","node_path","node_ancestors","descendants","node_descendants","node_leaves","node_links","keyPrefix","preroot","ambiguous","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","nodeByKey","subpath","container","carr","flattenTree","steps","arrIndexAtTargetDepth","treeAccessor","sourceDepth","targetDepth","findField","query","allFields","DIM_RX","M_RX","ATTR_EXPR_RX","ATTR_DIM_RX","getColumnOrder","qColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","columnOrder","fieldDepth","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","pCfg","coll","collStr","cells","accessor","valueAccessor","attrAccessor","reduce","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","matrix","order","__root","__id","isNew","__parent","attachPropsAccessors","itemDepthObject","accessors","augment","propDefs","idx","replicaDescendants","isTree","mapped","module","escapeRegExp","SIprefixes","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","decimal","formatRoman","nThousands","numeral","formatFunctional","escape","flags","justStr","createRegExp","thousand","getAbbreviations","listSeparator","abbreviation","abbreviationTuple","preparePattern","parts","lastPart","regex","matchPrecisionResult","splitPattern","NumberFormatter","prep","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","lowerAbbreviation","suggestedAbbrExponent","abbrArray","upperAbbreviation","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","numberFormatFactory","args","memoize","func","cacher","multipleArguments","toKey","arg","counter","fifo","has","qType","qformat","memoized","bind","format","TYPES","INTEGER","NUMBER","FIXED_TO","MONEY","DATE","TIME","DATE_TIME","INTERVAL","DAYS","DAYS_ABBR","MONTHS","MONTHS_ABBR","SECONDS_PER_DAY","pad","parseDate","twelveFormat","getRemainder","parseIntervalDays","days","ms","parseInterval","units","someT","getMasks","inst","DateFormatter","qtype","info","parsedDate","hasTwelveFlag","masks","masksArr","mask","dateTimeRegex","submask","dateFormatFactory","MS_PER_DAY","QlikTimeToDate","locale","li","nqt","createFromMetaInfo","meta","qNumFormat","timeFormat","qFmt","qThousandSep","qDecimalSep","isAuto","qIsAutoFormat","qThou","qDec","numberFormat","qField","values","fieldExtractor","sourceField","qElemNo","qValue","labelFn","qFallbackTitle","tags","qTags","createFields","parentKey","fieldKey","qNum","virtualFields","extractionConfig","extractor","hierarchyConfig","_cache","qNodesOnDim","TExtractor","augmentTree","qTreeDataPages","SExtractor","dimAcc","qElemNumber","measAcc","traverse","from","ff","override","LAYOUT_TO_PROP","HC_RX","TD_RX","SHORTEN_HC","SHORTEN_TD","extractFieldFromId","dimensionIdx","pathToCube","shortenizer","shortenPath","attrCol","hc","dim","qAttrExprInfo","meas","qBrush","byCells","primarySource","selections","methods","isActive","hasValues","brushes","ranges","multiRangeSelectTreeDataValues","qMeasureIx","qDimensionIx","qRange","qMinInclEq","qMaxInclEq","rangeSelectHyperCubeValues","selectHyperCubeContinuousRange","qDimIx","noOfLeftDims","qNoOfLeftDims","dimInterColSortIdx","selectPivotCells","validValues","qCol","selectHyperCubeCells","cols","params","method","orMode","initialize","qBrushHelper","selectionUtils","brushInterceptors","DIM_VALUE_NULL","DIM_VALUE_TOTAL","brushOnlyOne","activeBrushes","toggleOff","filterValues","lockedFields","lockedItems","brushItems","splitIndex","datasetName","fieldName","qLocked","itemsAreLocked","DEFAULT_OPTIONS","startOnEmptySelection","active","inactive","Selections","selectPaths","selectionContexts","selectionsApiRestoreHelper","propertiesToRestore","on","paths","added","removed","begin","PicassoQ","select","toggleValues","filterResult","itms","Actions","lastShift","shiftToggle","keyCode","shiftKey","toggle","confirmOrCancelSelection","event","cancel","confirm","register","listeners","sleep","deregister","removeListener","dependentComponents","setUp","tearDown","setUpBrush","selectionTrigger","ctrlKey","isSingleSelect","globalPropagation","selectionConsumer","createContext","fieldsLocked","dimFields","dataPath","areAllFieldsLocked","getFieldsLocked","intercept","setUpStart","setUpDone","removeInterceptor","pauseEngineCalls","resumeEngineCalls","run","document","addEventListener","onDeactivated","removeEventListener","unbindDeactivated","onActivated","unbindActivated","isOn","lassoState","allFieldsLocked","NoSelections","warn","TooltipActions","componentKey","tooltipKey","hasOpen","closeTooltip","isOpen","getAffectedShapes","openTooltip","toggleInterceptor","check","formatMeasureValue","measureContent","isCustomFormatted","createContent","tooltipInfo","uniqueShapes","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","header","headerResolver","measureRows","measureRow","rowData","rowResolver","colorByData","colorData","colorSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","fieldType","ids","mapping","elemNoObj","othersIndex","getOthersIndex","_shape$attrs","getColorByDimData","unshift","rowCount","extractContent","renderSettings","TOOLTIP_CONTAINER_SELECTOR","appendTooltipContainer","querySelector","createElement","body","appendChild","tooltip","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","appendTo","placement","arrow","background","hyphens","getDirection","rtlUtils","formatting","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","treatAsDesktop","deRegContext","mouseLeave","TooltipAction","attrDimPath","filterShapes","deviceType","createTooltip","uniques","filterDuplicateShapes","hash","generateHash","hashData","hashFromString","JSON","stringify","updateHash","qUndoExclude","hashCode","hashBuilder","getDefaultHashDataForHyperCube","hyperCubeDef","app","dfds","qLibraryId","libraryId","getMeasure","getProperties","qMeasure","qDef","getMeasureDataFromLibraryItem","all","getMeasureExpressions","measureExpressions","drillLevel","getDrillIndices","dimensionExpressions","getDimensionExpressions","dimensionInfo","qGroupFieldDefs","getDimensions","qGroupPos","JSONPatch","originalExtend","isObject","isUndef","isSpecialProperty","getParent","numPart","part","generate","newData","basePath","patches","generateValue","oldVal","tmpPath","op","newA","oldA","tmpIdx","findIndex","qInfo","qId","patchArray","patch","newValues","oldParent","createPatch","updateObject","SoftPropertyHandler","model","_model","prevEffectiveProperties","effectiveProperties","qOp","qPath","applyPatches","propertiesPromise","effectivePromise","getEffectiveProperties","effective","qExtendsId","setProperties","clearSoftPatches","canModifyHardProperties","qHasSoftPatches","qMeta","privileges","saveDerivedProperties","prevProperties","hardPropertiesChecker","saveSoftProperties","validate","generateDerivedProperties","DerivedProperties","_generationInProgress","isDerivedUpToDate","InputValidator","Hash","updateDerivedProperties","layoutIsUpdated","Save","addDefaultHyperCubeHash","HashBuilder","ExpressionWrapper","wrapExpression","expression","ExpressionReplacer","replaceExpressionTokens","tokenMappings","tokenIdentifiers","tokenExpression","tokenString","identifiers","returnExpression","string","isGlobal","isGrouped","escapedString","regexpString","ExpressionGenerator","generateExpression","template","mappings","explicitMappings","wrap","variations","variation","variationExpressions","regExp","stringArray","assembleVariation","HyperCubeGenerator","generateHyperCubeDef","returnPromise","knownMappings","spliceIdentifiedMatches","getMappingRegExp","getExpressionFromDimension","getExpressionFromMeasure","getKnownMappings","allMappings","generatedHyperCubeDef","dimensionTemplate","qFieldDefs","measureTemplate","getAllHyperCubeExpressions","getExpressionFromLibraryItem","drillIndex","qDim","matches","isNumeric","isFinite","isInteger","histogramUtils","getBinSize","getDerivedBinSize","getDerivedBinOffset","getDerivedBinCount","getBinCount","getBinOffset","isAutoBin","isCountDistinct","getBinMode","isEmpty","LOG10","NICE_NUMBERS1","NICE_NUMBERS2","LOOP_CONTROL_NUMBERS","getGoodNumber","niceNumbers","roundedFraction","magnitude","fraction","calculateNumEmptyBins","nbrOfBins","newMin","newMax","binSizeCalculator","calculateBinSize","validateInput","niceBinSize","delta","loop","rawBinSize","numEmptyBins","histogramMappings","getMappingValues","binOffset","binInfo","distinct","dimInfo","getBinInfo","getMappings","BinSize","Label","Offset","Distinct","mappingValues","hyperCubeTemplate","binCountTemplate","expressionsPromise","HyperCubeDefGenerator","boxCubeDefPromise","expressions","boxCubeDef","binCountExpr","qValueExpression","qExpr","setValue","qSortByNumeric","cubesGenerator","generateHyperCubes","isOnComponentForRange","targets","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","handlers","hitComp","onComponentChecker","selectionHandler","recognizeWith","scrollHandler","lassostart","switchTo","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","lassocancel","callMeasureRangeGesture","activeRangeBrush","dimRangeBrushKey","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","rangeSelStatus","isOpenMea","measureSelecting","gesture","measureRangeBrushKey","requireFailure","measurerangestart","measurerangemove","measurerangeend","measurerangecancel","getAxisOrientation","callAreaRangeGesture","isOpenDim","minoring","arearangestart","areaBrushKey","arearangemove","arearangeend","arearangecancel","callDimensionRangeGesture","dimAxis","majoring","majorrangestart","majorrangemove","majorrangeend","majorrangecancel","callDragGesture","hasSelections","dragPoint","dragging","isNavigationEnabled","getBrushConfig","dragstart","change","getItemSize","getScrollApi","move","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","clearKey","activeChart","newType","cont","onScrollUpdate","rangeClearTap","dimensionRangeGesture","measureRangeGesture","areaRangeGesture","dragGesture","getMaxGlyphCountForDimAxis","qApprMaxGlyphCount","DimensionAxis","createSettings","maxGlyphCount","DimensionScale","isAutoMode","colorStruct","transparent","rgba","hexShort","hsl","hsla","Color","lcs","h_","rgb_","colorString","_invalid","_r","_g","_b","_a","CSSColors","_spaces","isInvalid","setAlpha","getAlpha","toRGB","toRGBA","toHex","toHSL","luma","toHSLA","toHSV","hsvComp","toHSVComponents","toNumber","isDark","getLuminance","_lumi","shiftLuminance","chsla","isEqual","blend","c2","createShiftedColor","lumi","greenMultiplier","hsla_string","ch","c1","r1","g1","b1","getBlend","isCSSColor","getBestContrast","cl","cd","lum","getContrast","color1","color2","l1","l2","useDarkLabel","areaColor","bgIsDark","chartUtils","TRANSPARENT_BLACK","TRANSPARENT_WHITE","LIGHT_GREY","DARK_GREY","BLACK","WHITE","getInverse","colorObj","getContrastingGrey","getContrastingTransparent","BoxMarker","chartView","basicSelectionSettings","dimensionSelectionSettings","measureSelectionSettings","tooltipSettings","boxFillColor","brushTrigger","brushConsume","_tooltipHandler","box","chartStyleUtils","Infinity","minWidthPx","minWidth","whiskers","elemNo","ChartSettings","dimTitle","_selectionHandler","lockedDim","retrieveRangeSelStatus","dimInfos","getLockedDim","_dependentActions","DependentInteractions","include","boxMarkerSettings","binLabelSettings","rangeSelSettings","HistogramView","namespace","renderState","__do_not_use_findShapes","findShapes","_derivedProperties","SelectionHandler","TooltipHandler","updateConstraints","constraints","passive","selection","onlyNanData","qIsNull","_this","binMappings","binProperties","getHashData","restore","updateCache","pending","undoExclude","BackednAPi","maxStackedValues","getHyperCubeData","window","Symbol","toStringTag","__esModule","updated","previous","dimensionList","qName","qDerivedFieldData","qDerivedFieldLists","fieldList","fullAccumulation","fullRange","crossAllDimensions","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","isFullRange","getNumDimensions","getExpressionWithExcludedComp","treatMissingAsNull","getRowNoComp","getNumStepComp","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","iterator","disabled","translationKey","numDimensions","enableTotalsFunction","propertyPanelDef","translation","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","qGroupFallbackTitles","crossAllDimensionsTooltip","rangeFull","rangeCustom","rangeSteps","ext","support","modifiers","nullSuppression","showNull","inverted","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","re","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","ne","te","oe","ie","ae","se","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","getFieldList","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","ue","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","le","initBase","restoreBase","base","ce","pe","fe","accumulation","movingAverage","difference","normalization","me","de","applyModifiers","ye","cleanUpMeasure","qe","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","he","Se","Ne","ifEnableTotalsFunction","ve","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","Ee","Ve","Le","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Pe","newProperties","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","measureLibraryIds","dimensionLibraryIds","getDimension","Fe","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","isAtomicValue","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","excludedDimensions","addMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","parse","qv","othersLabel","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","numFormatFromTemplate","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","createNewProperties","initialProperties","hypercubePath","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","urlLabel","url","qAttribute","moveByIdFromGroup","IDMAP","CELL_BACKGROUND_COLOR","CELL_FOREGROUND_COLOR","COLOR_BY_ALTERNATIVE","COLOR_BY_EXPRESSION","TOOLTIP","CELL_LINK_LABEL","CELL_LINK_URL","getNumMeasures","wrapFieldName","getItemLabel","colorModeOptions","primary","multiColor","scatterplot","piechart","linechart","distributionplot","altLabel","qStringExpression","isDimension","attributeExpression","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","byDimDef","activeDimensionIndex","byMeasureDef","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","handleMeasuresAxis","measureType","measureAxes","series","marker","total","supportedAutoMinMax","arrayPath","quarantineName","arrayName","itemPath","unquarantine","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","onChangeCalcCond","baseCube","generatedCube","_data$qUndoExclude","_data$qUndoExclude$bo","qCalcCond","qCalcCondition","inAdvancedMode","showBinCount","propertyDefinition","anything","sense","uses","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","undefinedValue","autoMessage","expressionType","convertFunctions","getter","definition","setter","binMessage","isExpression","minBinMessage","addons","dataHandling","calcCond","propsLogic","colorBackground","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","measureTitle","_props$qHyperCubeDef$4","presentation","snapshot","tid","showGridLines","gridSpacing","colors","classification","section","barColor","dualOutput","getDataColorSpecials","palette","getDataColorPickerPalettes","placeholderTranslation","othersGroup","getExportRawDataOptions","menu","exportDialog","addItem","_env$anything","pp","softDefinition","exploreProperties","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","histogramExport","supernova","picassojs","prio","use","PicassoHammer","picassoSetup","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useState","setEnabled","setActive","isInSelections","useLayout","qSelectionInfo","qInSelections","useEffect","useAction","icon","hidden","useLasso","useModel","useSelections","useStaleLayout","useRenderState","setInstance","view","usePromise","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../chart-modules/common/picasso/plugins/event-area.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component.jsx","../../../../chart-modules/common/nebula/lasso-icon.js","../../../../chart-modules/common/nebula/snapshot.js","../../src/binning-defaults.js","../../src/object-properties.js","../../src/histogram-data.js","../../../../node_modules/qlik-chart-modules/dist/qlik-chart-modules.esm.js","../../../../chart-modules/common/extra/class.js","../../../../chart-modules/common/extra/generate-id.js","../../../../chart-modules/common/picasso/chart-builder/components/util/axis-dock-util.js","../../../../chart-modules/common/extra/rtl-util.js","../../../../chart-modules/common/picasso/chart-builder/components/util/ref-line-util.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/constants.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/layout-settings.js","../../../../chart-modules/common/picasso/chart-builder/presets/dimension-measure-chart/dimension-measure-chart.js","../../../../chart-modules/common/picasso/scroll/scroll-actions.js","../../../../chart-modules/common/picasso/chart-builder/scale.js","../../../../chart-modules/common/picasso/chart-builder/components/axis.js","../../../../chart-modules/common/picasso/chart-builder/components/text.js","../../../../chart-modules/common/picasso/chart-builder/components/util/range-util.js","../../../../chart-modules/common/picasso/chart-builder/layout-modes.js","../../../../chart-modules/common/picasso/chart-builder/components/labels.js","../../../../chart-modules/common/picasso/chart-builder/components/categorical-legend.js","../../../../chart-modules/common/picasso/chart-builder/chart-builder.js","../../../../chart-modules/common/picasso/chart-builder/components/box-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/point-marker.js","../../../../chart-modules/common/picasso/chart-builder/components/scrollbar.js","../../../../chart-modules/common/picasso/chart-builder/components/lasso.js","../../../../chart-modules/common/picasso/chart-builder/components/range.js","../../../../chart-modules/common/picasso/chart-builder/components/range-area.js","../../../../chart-modules/common/picasso/chart-builder/components/sequential-legend.js","../../../../chart-modules/common/picasso/chart-builder/components/grid-line.js","../../../../chart-modules/common/picasso/chart-builder/components/interaction.js","../../../../chart-modules/common/picasso/chart-builder/components/ref-line.js","../../../../chart-modules/common/picasso/chart-builder/components/event-area.js","../../../../chart-modules/common/picasso/chart-builder/chart-presets.js","../../../../chart-modules/common/picasso/disclaimer/disclaimers-config.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-attributes-util.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer-component-helper.js","../../../../chart-modules/common/picasso/disclaimer/disclaimer.js","../../../../chart-modules/common/picasso/chart-view.js","../../../../node_modules/picasso-plugin-q/node_modules/extend/index.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-s.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/picasso-plugin-q/node_modules/d3-hierarchy/src/stratify.js","../../../../node_modules/picasso-plugin-q/src/json-path-resolver.js","../../../../node_modules/picasso-plugin-q/src/data/util.js","../../../../node_modules/picasso-plugin-q/src/data/extractor-t.js","../../../../node_modules/picasso-plugin-q/node_modules/number-format.js/lib/format.min.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-number-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/memoize.js","../../../../node_modules/picasso-plugin-q/src/formatter/numberFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/constants.js","../../../../node_modules/picasso-plugin-q/src/formatter/parts/qs-date-formatter.js","../../../../node_modules/picasso-plugin-q/src/formatter/timeFormat.js","../../../../node_modules/picasso-plugin-q/src/formatter/index.js","../../../../node_modules/picasso-plugin-q/src/data/field.js","../../../../node_modules/picasso-plugin-q/src/data/dataset.js","../../../../node_modules/picasso-plugin-q/src/brush/q-brush.js","../../../../node_modules/picasso-plugin-q/src/index.js","../../../../chart-modules/common/picasso/selections/selection-utils.js","../../../../chart-modules/common/picasso/selections/selections-handler.js","../../../../chart-modules/common/picasso/selections/selection-actions.js","../../../../chart-modules/common/picasso/tooltip/tooltip-actions.js","../../../../chart-modules/common/picasso/formatting.js","../../../../chart-modules/common/picasso/tooltip/tooltip-content.js","../../../../chart-modules/common/picasso/tooltip/tooltips-component.js","../../../../chart-modules/common/picasso/tooltip/tooltip-renderer.jsx","../../../../chart-modules/common/picasso/tooltip/tooltips-handler.js","../../../../chart-modules/common/picasso/derived-properties/hash/hash.js","../../../../chart-modules/common/extra/hash-from-string.js","../../../../chart-modules/common/picasso/derived-properties/hash/hash-builder.js","../../../../chart-modules/common/extra/json-patch.js","../../../../chart-modules/common/extra/soft-property-handler.js","../../../../chart-modules/common/extra/hard-properties-checker.js","../../../../chart-modules/common/picasso/derived-properties/save/save.js","../../../../chart-modules/common/picasso/derived-properties/input-validator/input-validator.js","../../../../chart-modules/common/picasso/derived-properties/derived-properties.js","../../../../chart-modules/common/picasso/expression-generator/expression-wrapper.js","../../../../chart-modules/common/picasso/expression-generator/expression-replacer.js","../../../../chart-modules/common/picasso/expression-generator/expression-generator.js","../../../../chart-modules/common/picasso/hypercube-def-generator/hypercube-def-generator.js","../../../../chart-modules/common/extra/is-numeric.js","../../../../chart-modules/common/extra/is-integer.js","../../src/histogram-utils.js","../../src/derived-properties/bin-size-calculator.js","../../src/derived-properties/histogram-mappings.js","../../src/derived-properties/histogram-cubes-generator.js","../../../../chart-modules/common/picasso/selections/gestures/on-component-checker.js","../../../../chart-modules/common/picasso/selections/gestures/lasso-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/measure-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/area-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/dimension-range-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/drag-gesture.js","../../../../chart-modules/common/picasso/selections/gestures/navigational-button-gesture.js","../../../../chart-modules/common/picasso/selections/dependent-interactions.js","../../src/chart-settings/dimension-axis.js","../../src/chart-settings/dimension-scale.js","../../../../chart-modules/common/extra/css-colors.js","../../../../chart-modules/common/extra/color.js","../../../../chart-modules/common/extra/chart-style-utils.js","../../src/chart-settings/box-marker.js","../../src/chart-settings/label.js","../../src/chart-settings/chart-settings.js","../../src/histogram-view.js","../../src/backend-api.js","../../../../node_modules/qlik-object-conversion/dist/conversion.js","../../src/histogram-properties-logic.js","../../src/histogram-properties.js","../../src/histogram-explore-properties.js","../../src/histogram-export.js","../../src/ext.js","../../src/index.js","../../../../chart-modules/common/locale/index.js","../../../../chart-modules/common/picasso/picasso-setup.js","../../../../chart-modules/common/nebula/use-environment.js","../../../../chart-modules/common/nebula/use-lasso.js","../../../../chart-modules/common/nebula/resize.js"],"sourcesContent":["export default function init(Picasso) {\n // Transparent component, placed on top of the data area and used to register event on\n Picasso.component('event-area', {\n mounted(element) {\n element.classList.add('event-area');\n element.style.pointerEvents = 'auto';\n element.style.zIndex = 1;\n },\n render() {\n const nodes = [];\n return nodes;\n },\n });\n}\n","/** @jsx h */\n\nfunction getStyle(dock, rect) {\n const style = {\n pointerEvents: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#7b7a78',\n fontStyle: 'italic',\n fontSize: '13px',\n };\n\n switch (dock) {\n case 'left':\n style.width = `${rect.height}px`;\n style.transform = `rotate(-90deg) translate(-${rect.height}px, 0)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'right':\n style.width = `${rect.height}px`;\n style.transform = `rotate(90deg) translate(0, -${rect.width}px)`;\n style.transformOrigin = 'top left';\n break;\n\n case 'center':\n style.width = `${rect.width}px`;\n style.height = `${rect.height}px`;\n style.color = '#595959';\n style.fontStyle = 'normal';\n style.fontSize = '1.2em';\n style.textAlign = 'center';\n break;\n\n default:\n case 'top':\n case 'bottom':\n style.justifyContent = 'flex-start';\n style.alignItems = 'flex-start';\n break;\n }\n return style;\n}\n\nexport default {\n renderer: 'dom',\n disableTriggers: true,\n preferredSize: function preferredSize() {\n return 22;\n },\n render(h) {\n const {\n settings: { label, rtl },\n layout: { dock },\n } = this.settings;\n const dir = (dock === 'top' || dock === 'bottom') && rtl ? 'rtl' : 'ltr';\n const style = getStyle(dock, this.rect);\n\n const modifiedLabel = dock === 'center' ? label : `* ${label}`;\n\n const spanStyle = dock !== 'center' ? { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' } : {};\n\n return (\n <div style={style} dir={dir}>\n <span ref={this.alignToRef} style={spanStyle} title={modifiedLabel}>\n {modifiedLabel}\n </span>\n </div>\n );\n },\n};\n","const lassoIcon = {\n shapes: [\n {\n type: 'path',\n attrs: {\n d: 'M15.9488039,5.20769129 C16.0487326,6.70662306 15.3492311,8.30548361 14.050157,9.30477145 C12.651154,10.5039169 10.8524359,10.8037032 8.85386017,10.4039881 L7.3549284,10.0042729 L5.75606786,9.70448659 C5.75606786,9.90434416 5.65613907,10.0042729 5.4562815,10.2041305 C5.05656637,10.6038456 4.55692244,10.8037032 4.05727852,10.8037032 C3.75749217,10.8037032 3.45770582,10.7037744 3.15791946,10.6038456 C3.05799068,10.903632 3.15791946,11.2034184 3.45770582,11.7030623 C5.05656637,14.0014243 3.85742095,15.9000712 3.75749217,16 L2.2585604,15.3004985 C2.2585604,15.2005697 2.95806189,14.0014243 1.95877405,12.6024213 C1.6589877,12.0028486 1.15934378,11.0035608 1.55905891,10.0042729 C1.6589877,9.80441537 1.75891648,9.6045578 1.95877405,9.40470024 C1.6589877,8.90505631 1.55905891,8.30548361 1.85884527,7.7059109 C1.55905891,7.40612455 1.25927256,7.1063382 1.15934378,6.70662306 C0.859557424,5.90719279 0.959486209,4.5081898 1.6589877,3.30904439 C1.95877405,2.6095429 2.55834676,2.0099702 3.15791946,1.51032628 C3.95734974,0.91075357 4.95663758,0.610967217 6.15578299,0.311180864 C9.05371774,-0.388320626 11.9516525,0.111323295 13.9502282,1.61025506 C15.1493736,2.50961412 15.8488751,3.80868831 15.9488039,5.20769129 Z M13.0508691,8.10562604 C13.8502994,7.40612455 14.3499433,6.40683671 14.3499433,5.30762008 C14.2500145,4.20840345 13.550513,3.40897318 12.9509403,2.90932926 C12.1515101,2.40968533 11.252151,2.0099702 10.1529344,1.81011263 C8.95378895,1.61025506 7.75464354,1.71018384 6.45556935,1.91004141 C4.75678001,2.30975655 3.65756338,3.00925804 3.05799068,4.10847467 C2.55834676,5.00783373 2.65827554,5.90719279 2.75820433,6.20697914 C2.75820433,6.30690792 2.85813311,6.40683671 3.05799068,6.40683671 C3.15791946,6.40683671 3.25784825,6.40683671 3.35777703,6.40683671 C3.45770582,6.40683671 3.45770582,6.40683671 3.45770582,6.40683671 L3.5576346,6.40683671 L3.65756338,6.40683671 C4.65685123,6.40683671 5.4562815,6.90648063 5.85599664,7.80583969 L5.85599664,8.00569726 C6.35564056,8.10562604 7.05514205,8.30548361 7.75464354,8.50534118 L9.25357531,8.90505631 C10.0530056,9.0049851 10.7525071,9.0049851 11.4520086,8.80512753 C12.0515813,8.70519875 12.5512252,8.40541239 13.0508691,8.10562604 Z',\n },\n },\n ],\n};\n\nexport default lassoIcon;\n","import { onTakeSnapshot, useImperativeHandle } from '@nebula.js/stardust';\n\nconst setupSnapshot = (chartInstance) => {\n onTakeSnapshot((layout) => {\n if (!chartInstance) {\n return undefined;\n }\n\n return chartInstance.setSnapshotData(layout);\n });\n\n useImperativeHandle(\n () => ({\n getViewState() {\n if (!chartInstance) {\n return undefined;\n }\n return chartInstance.getViewState();\n },\n }),\n [chartInstance]\n );\n};\n\nexport default setupSnapshot;\n","const BINNING_DEFAULTS = {\n AUTO: true, // True means we calculate the BIN_SIZE to generate BIN_COUNT number of bins\n BIN_COUNT: 10, // The number of bins the user wants when AUTO = true\n BIN_SIZE: 10, // The size(width) of the bins the user wants when AUTO = false\n LABEL: 'x', // The label parameter to the Class function\n OFFSET: 0, // The offset parameter to the Class function\n COUNT_DISTINCT: false, // True means we only count distinct values\n BIN_MODE: 'maxCount', // \"maxCount\" means that we can only adjust the maximum amount of bins. \"size\" mean that we can adjust the width and offset\n};\n\nObject.freeze(BINNING_DEFAULTS);\n\nexport default BINNING_DEFAULTS;\n","import BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Color information structure. Holds the actual color and index in palette.\n * @typedef {object} paletteColor\n * @property {string} color - Color as hex string (mandatory if index: -1)\n * @property {number} index - Index in palette\n */\n\n/**\n * Styling settings for reference line\n * @typedef {object} refLineStyle\n * @property {number} [lineThickness=2] Set the thickness for this reference line.\n * @property {string} [lineType=''] Set the dash type for this reference line.\n */\n\n/**\n * @typedef {object} refLine\n * @property {boolean|ValueExpression} show=true Set to true to display this reference line.\n * @property {string} label Reference line label.\n * @property {boolean} [showLabel=true] Set to true to show the label of this reference line.\n * @property {boolean} [showValue=true] Set to true to show the value of this reference line.\n * @property {paletteColor} paletteColor\n * @property {refLineStyle} [style] - Styling settings for reference line\n * @property {boolean} [coloredBackground=false] Set to true to fill the label and/or value of this reference line with this color\n */\n\n/**\n * @namespace properties\n * @entry\n */\nconst properties = {\n /**\n * Current version of this generic object definition.\n * @type {string}\n * @default\n */\n version: process.env.PACKAGE_VERSION,\n\n /**\n * Extends `HyperCubeDef`, see Engine API: `HyperCubeDef`.\n * @extends {HyperCubeDef}\n */\n qHyperCubeDef: {\n qDimensions: [],\n qMeasures: [],\n qMode: 'S',\n qAlwaysFullyExpanded: true,\n qSuppressZero: false,\n qSuppressMissing: true,\n },\n /**\n * Bin settings.\n * @type {object}\n */\n bins: {\n /**\n * Auto mode generates a nice looking histogram without special parameters.\n * @type {boolean}\n * @default\n */\n auto: BINNING_DEFAULTS.AUTO,\n /**\n * Number of bars to be displayed, used when binMode is set to 'maxCount'.\n * @type {number}\n * @default\n */\n binCount: '',\n /**\n * The width of the bars, used when binMode is set to 'size'.\n * @type {number}\n * @default\n */\n binSize: BINNING_DEFAULTS.BIN_SIZE,\n /**\n * Used to know where to start displaying bars on x-axis.\n * @type {number}\n * @default\n */\n offset: BINNING_DEFAULTS.OFFSET,\n /**\n * Shows unique values.\n * @type {boolean}\n * @default\n */\n countDistinct: BINNING_DEFAULTS.COUNT_DISTINCT,\n /**\n * MaxCount - Able to adjust the maximum number of bars to be displayed. size - Able to adjust size of bars and offset from x-axis.\n * @type {string}\n * @default\n */\n binMode: BINNING_DEFAULTS.BIN_MODE,\n },\n /**\n * Color settings.\n * @type {object}\n */\n color: {\n /**\n * @type {object}\n */\n bar: {\n /**\n * The paletteColor object is used to define the bar color.\n * @type {paletteColor}\n * @default { index: 6 }\n */\n paletteColor: {\n index: 6,\n color: '#4477aa',\n },\n },\n },\n /**\n * Data points\n * @type {object}\n */\n dataPoint: {\n /**\n * Show labels on bars\n * @type {boolean}\n * @default\n */\n showLabels: false,\n },\n /**\n * Dimension axis settings.\n * @type {object}\n */\n dimensionAxis: {\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label orientation\n * @type {'auto'}\n * @default\n */\n label: 'auto',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n */\n show: 'all',\n },\n /**\n * Measure axis settings.\n * @type {object}\n */\n measureAxis: {\n /**\n * Automatic max/min\n * @type {boolean}\n * @default\n */\n autoMinMax: true,\n /**\n * Axis docking position\n * @type {'near'|'far'}\n * @default \"near\"\n */\n dock: 'near',\n /**\n * Label to show on the measure axis, if left empty it defaults to 'Frequency'\n * @type {(string|StringExpression)=}\n * @default\n */\n label: '',\n /**\n * Axis max value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"max\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n max: 10,\n /**\n * Axis min value. `\"autoMinMax\"` must be set to false and `\"minMax\"`\n * must be set to `\"min\"` or `\"minMax\"` to use this property\n * @type {number|ValueExpression}\n * @default\n */\n min: 0,\n /**\n * Set custom max/min\n * @type {'min'|'max'|'minMax'}\n * @default \"min\"\n */\n minMax: 'min',\n /**\n * Labels and title\n * @type {'all'|'labels'|'title'|'none'}\n * @default \"all\"\n */\n show: 'all',\n /**\n * Axis scale\n * @type {number}\n * @default\n */\n spacing: 1,\n },\n /**\n * Grid lines settings.\n * @type {object}\n */\n gridlines: {\n /**\n * Automatic grid line spacing.\n * @type {boolean}\n * @default\n */\n auto: true,\n /**\n * Grid line spacing. Used only when auto is set to false.\n * @type {0|2|3}\n * @default\n */\n spacing: 2,\n },\n /**\n * Reference lines settings\n * @type {object}\n */\n refLine: {\n /**\n * Array of measure based reference line definitions\n * @type {refLine[]}\n */\n refLines: [],\n },\n /**\n * Wrapper for sorting properties which will be set on the outer dimension.\n * @type {object}\n */\n sorting: {\n /**\n * Sort automatically\n * @type {true}\n * @default\n */\n autoSort: true,\n },\n /**\n * Show title for the visualization.\n * @type {boolean=}\n * @default\n */\n showTitles: true,\n /**\n * Visualization subtitle.\n * @type {(string|StringExpression)=}\n * @default\n */\n subtitle: '',\n /**\n * Visualization title.\n * @type {(string|StringExpression)=}\n * @default\n */\n title: '',\n /**\n * Visualization footnote.\n * @type {(string|StringExpression)=}\n * @default\n */\n footnote: '',\n};\n\nexport default properties;\n","export default function data(env) {\n const { translator } = env;\n\n const dimensions = {\n min: 1,\n max: 1,\n description() {\n return translator.get('Visualization.Histogram.Binning');\n },\n };\n const measures = {\n min: 0,\n max: 0,\n };\n return {\n path: '/qHyperCubeDef',\n dimensions,\n measures,\n };\n}\n","/*\n* qlik-chart-modules v0.35.0\n* Copyright (c) 2022 QlikTech International AB\n* Released under the MIT license.\n*/\n\nfunction e(t){return e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e(t)}function t(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(e){return void n(e)}u.done?t(l):Promise.resolve(l).then(r,o)}function n(e){return function(){var n=this,r=arguments;return new Promise((function(o,i){var a=e.apply(n,r);function u(e){t(a,o,i,u,l,\"next\",e)}function l(e){t(a,o,i,u,l,\"throw\",e)}u(void 0)}))}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||c(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e,t){if(e){if(\"string\"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=Object.prototype.hasOwnProperty,d=Object.prototype.toString,p=Object.defineProperty,v=Object.getOwnPropertyDescriptor,h=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===d.call(e)},m=function(e){if(!e||\"[object Object]\"!==d.call(e))return!1;var t,n=f.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&f.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||f.call(e,t)},y=function(e,t){p&&\"__proto__\"===t.name?p(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},g=function(e,t){if(\"__proto__\"===t){if(!f.call(e,t))return;if(v)return v(e,t).value}return e[t]},b=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=g(u,n),u!==(o=g(t,n))&&(s&&o&&(m(o)||(i=h(o)))?(i?(i=!1,a=r&&h(r)?r:[]):a=r&&m(r)?r:{},y(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&y(u,{name:n,newValue:o}));return u};function x(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.value%o.length]}))},valueAccessor:e.value}}function q(e,t){return{range:function(e){var n=e.resources,r=e.data,o=n.theme.palette(\"categorical\",0===t?r.items.length:t);return r.items.map((function(e){return o[e.row.value%o.length]}))},valueAccessor:e.value}}function w(e,t,n,r,o){var i,a=o.byRow,u=o.byElemNo;if(r&&(t.input.persistent||e.hc.qDimensionInfo.length>1||void 0===n.activeDimensionIndex&&e.hc.qSize.qcy>((null===(i=e.hc.qDataPages[0])||void 0===i?void 0:i.qArea.qHeight)||0)))return u(r,r.raw().qCardinal);if(r){var l=t.pic.extract({field:r.key(),trackBy:r.value}).length;return a(r,l)}return{}}function M(e,t){var n=e.hc.qDimensionInfo,r=t.input.byDimDef||{activeDimensionIndex:n.length-1};if(r.activeDimensionIndex>=0){var o=n[r.activeDimensionIndex];r=o.coloring&&o.coloring.colorMapRef?{type:\"libraryItem\",key:o.coloring.colorMapRef,activeDimensionIndex:r.activeDimensionIndex}:{activeDimensionIndex:r.activeDimensionIndex}}return r}function k(e,t){var n;return t.activeDimensionIndex>=0?n=e.pic.fields().filter((function(e){return\"dimension\"===e.type()}))[t.activeDimensionIndex]:\"libraryItem\"===t.type?!1===(n=t.key?e.pic.field((function(e){return e.raw().colorMapRef===t.key})):void 0)&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n}function C(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function D(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function S(){}var I=1/.7,O=\"\\\\s*([+-]?\\\\d+)\\\\s*\",A=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",E=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",N=/^#([0-9a-f]{3,8})$/,P=new RegExp(\"^rgb\\\\(\"+[O,O,O]+\"\\\\)$\"),T=new RegExp(\"^rgb\\\\(\"+[E,E,E]+\"\\\\)$\"),L=new RegExp(\"^rgba\\\\(\"+[O,O,O,A]+\"\\\\)$\"),j=new RegExp(\"^rgba\\\\(\"+[E,E,E,A]+\"\\\\)$\"),F=new RegExp(\"^hsl\\\\(\"+[A,E,E]+\"\\\\)$\"),V=new RegExp(\"^hsla\\\\(\"+[A,E,E,A]+\"\\\\)$\"),R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function H(){return this.rgb().formatHex()}function z(){return this.rgb().formatRgb()}function B(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=N.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?_(t):3===n?new W(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Y(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Y(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=P.exec(e))?new W(t[1],t[2],t[3],1):(t=T.exec(e))?new W(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=L.exec(e))?Y(t[1],t[2],t[3],t[4]):(t=j.exec(e))?Y(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=F.exec(e))?J(t[1],t[2]/100,t[3]/100,1):(t=V.exec(e))?J(t[1],t[2]/100,t[3]/100,t[4]):R.hasOwnProperty(e)?_(R[e]):\"transparent\"===e?new W(NaN,NaN,NaN,0):null}function _(e){return new W(e>>16&255,e>>8&255,255&e,1)}function Y(e,t,n,r){return r<=0&&(e=t=n=NaN),new W(e,t,n,r)}function U(e){return e instanceof S||(e=B(e)),e?new W((e=e.rgb()).r,e.g,e.b,e.opacity):new W}function K(e,t,n,r){return 1===arguments.length?U(e):new W(e,t,n,null==r?1:r)}function W(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function $(){return\"#\"+X(this.r)+X(this.g)+X(this.b)}function G(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?\")\":\", \"+e+\")\")}function X(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?\"0\":\"\")+e.toString(16)}function J(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Z(e,t,n,r)}function Q(e){if(e instanceof Z)return new Z(e.h,e.s,e.l,e.opacity);if(e instanceof S||(e=B(e)),!e)return new Z;if(e instanceof Z)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,u=i-o,l=(i+o)/2;return u?(a=t===i?(n-r)/u+6*(n<r):n===i?(r-t)/u+2:(t-n)/u+4,u/=l<.5?i+o:2-i-o,a*=60):u=l>0&&l<1?0:a,new Z(a,u,l,e.opacity)}function Z(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ee(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}C(S,B,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:H,formatHex:H,formatHsl:function(){return Q(this).formatHsl()},formatRgb:z,toString:z}),C(W,K,D(S,{brighter:function(e){return e=null==e?I:Math.pow(I,e),new W(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new W(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$,formatHex:$,formatRgb:G,toString:G})),C(Z,(function(e,t,n,r){return 1===arguments.length?Q(e):new Z(e,t,n,null==r?1:r)}),D(S,{brighter:function(e){return e=null==e?I:Math.pow(I,e),new Z(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Z(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new W(ee(e>=240?e-240:e+120,o,r),ee(e,o,r),ee(e<120?e+240:e-120,o,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===e?\")\":\", \"+e+\")\")}}));var te=Math.PI/180,ne=180/Math.PI,re=4/29,oe=6/29,ie=3*oe*oe;function ae(e){if(e instanceof ue)return new ue(e.l,e.a,e.b,e.opacity);if(e instanceof ve)return he(e);e instanceof W||(e=U(e));var t,n,r=fe(e.r),o=fe(e.g),i=fe(e.b),a=le((.2225045*r+.7168786*o+.0606169*i)/1);return r===o&&o===i?t=n=a:(t=le((.4360747*r+.3850649*o+.1430804*i)/.96422),n=le((.0139322*r+.0971045*o+.7141733*i)/.82521)),new ue(116*a-16,500*(t-a),200*(a-n),e.opacity)}function ue(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function le(e){return e>.008856451679035631?Math.pow(e,1/3):e/ie+re}function ce(e){return e>oe?e*e*e:ie*(e-re)}function se(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function fe(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function de(e){if(e instanceof ve)return new ve(e.h,e.c,e.l,e.opacity);if(e instanceof ue||(e=ae(e)),0===e.a&&0===e.b)return new ve(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*ne;return new ve(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function pe(e,t,n,r){return 1===arguments.length?de(e):new ve(e,t,n,null==r?1:r)}function ve(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function he(e){if(isNaN(e.h))return new ue(e.l,0,0,e.opacity);var t=e.h*te;return new ue(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}function me(e){return function(){return e}}function ye(e){return 1==(e=+e)?ge:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):me(isNaN(t)?n:t)}}function ge(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):me(isNaN(e)?t:e)}C(ue,(function(e,t,n,r){return 1===arguments.length?ae(e):new ue(e,t,n,null==r?1:r)}),D(S,{brighter:function(e){return new ue(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker:function(e){return new ue(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb:function(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new W(se(3.1338561*(t=.96422*ce(t))-1.6168667*(e=1*ce(e))-.4906146*(n=.82521*ce(n))),se(-.9787684*t+1.9161415*e+.033454*n),se(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),C(ve,pe,D(S,{brighter:function(e){return new ve(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker:function(e){return new ve(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb:function(){return he(this).rgb()}}));var be=function e(t){var n=ye(t);function r(e,t){var r=n((e=K(e)).r,(t=K(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=ge(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+\"\"}}return r.gamma=e,r}(1),xe=/^class(-pyramid)?/,qe=function(e,t,n,r){var o=void 0!==n.min?n.min:r.min(),i=void 0!==n.max?n.max:r.max(),a=o,u=i,c=t.limits,s={},f=\"percent\"===t.limitType?c.map((function(e){return o+(i-o)*e})):c,d=t.colors.map((function(t){return e.resolveUIColor(t)}));if(o=Math.min.apply(Math,[o].concat(l(f))),i=Math.max.apply(Math,[i].concat(l(f))),s.min=o,s.max=i,t.breakTypes&&-1===t.breakTypes.indexOf(!0))s.type=\"categorical\",Object.assign(s,function(e){var t=e.min,n=e.max,r=e.limits,o=e.range,i=[],a=[];if(r.length)if(r[r.length-1]<t)a.push(t,n),i.push(o[o.length-1],o[o.length-1],o[o.length-1]);else if(r[0]>n)a.push(t,n),i.push(o[0],o[0],o[0]);else{if(r[0]>t)a.push(t),i.push(o[0]);else{a.push(t);for(var u=0;u<r.length;u++)if(t<r[u]){i.push(o[u]);break}}for(var l=0;l<r.length;l++)t<r[l]&&r[l]<n&&(a.push(r[l]),i.push(o[l]));if(r[r.length-1]<n)a.push(n),i.push(o[r.length]),i.push(o[r.length]);else{a.push(n);for(var c=0;c<r.length;c++)if(r[c]>n){i.push(o[c]),i.push(o[c]);break}}}else i.push(o[0]);return{min:t,max:n,range:i,domain:a}}({min:\"percent\"===t.limitType?o:a,max:\"percent\"===t.limitType?i:u,range:d,limits:\"percent\"===t.limitType?f:c}));else if(t.breakTypes){var p=t.breakTypes;s.type=\"continuous\",s.domain=[o],s.range=[d[0]];for(var v=0;v<f.length;v+=1)if(p[v]){var h=d[v],m=d[v+1],y=be(h,m)(.5);s.range.push(y),s.domain.push(f[v]),v<f.length-1&&p[v+1]&&(s.range.push(d[v+1]),s.domain.push((f[v]+f[v+1])/2))}else s.range.push(d[v]),s.range.push(d[v+1]),s.domain.push(f[v]),s.domain.push(f[v]+Math.min(1e-6,(i-o)/1e6));s.range.push(d[d.length-1]),s.domain.push(i)}else s.domain=f,s.range=d;return s};function we(e,t,n,r,o){var i,a,u,l=0,c=[],s=(e-t)/(r+1);if(0===s)return 1;for(i=0;i<n.length;i+=1)a=.99*(n[i]-t),u=n[i]>e?Math.floor(e/s):n[i]<t?0:Math.floor(a/s),Number.isNaN(u)||(c[u]?c[u]+=1:c[u]=1);for(i=0;i<c.length;i+=1)c[i]&&(l+=1);return l<=r||l>=o?Math.max(l,r):we(e,t,n,r+1,o)}var Me=function(e,t,n,r){var o,i,a=t.theme,u=t.hc,c=r.f,s={mode:\"field\",fieldType:\"measure\",field:c?c.key():void 0,reverse:n.input.reverseScheme||!1,type:\"continuous\",range:function(e){return e.resources.theme.palette(\"quant\")}},f=[],d=!0;if(c){if(Number.isNaN(+c.min())||Number.isNaN(+c.max()))return{invalid:!0};(d=!(\"S\"===(o=n.pic.raw()).qMode&&(o.qDataPages[0]&&o.qSize.qcy>o.qDataPages[0].qArea.qHeight||!o.qDataPages.length&&o.qSize.qcy>0)||\"K\"===o.qMode&&o.qStackedDataPages[0]&&o.qSize.qcy>o.qStackedDataPages[0].qArea.qHeight||\"T\"===o.qMode&&o.qSize.qcy>o.qTreeDataPages[0].qGroupSize))&&(f=n.pic.extract({field:0,props:{num:{field:c.key()},exclude:{fields:u.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return Math.min.apply(Math,l(e))<0}}}}).filter((function(e){return e.value>=0&&!e.exclude.value})).map((function(e){return e.num.value})).filter((function(e){return\"number\"==typeof e})))}if(!1===n.input.autoMinMax){if(s.min=n.input.measureMin,s.max=n.input.measureMax,s.max<s.min)return{invalid:!0}}else if(c&&!d)s.min=c.min(),s.max=c.max();else if(c){if(!f.length)return{invalid:!0};s.min=Math.min.apply(Math,l(f)),s.max=Math.max.apply(Math,l(f))}if(n.input.measureScheme&&(s.palettes={quant:n.input.measureScheme}),a){var p=a.getDataColorScales().filter((function(e){return e.key===n.input.measureScheme}))[0];s.type=p&&xe.test(p.type)?\"categorical\":\"continuous\",\"categorical\"===s.type&&(i=p.colors.some((function(e){return Array.isArray(e)}))?Math.max.apply(Math,l(p.colors.map((function(e){return e?e.length:0})))):p.colors.length)}if(\"categorical\"===s.type){for(var v=d?we(s.max,s.min,f,1,i):i,h=(s.max-s.min)/v,m=[],y=0;y<v+1;y+=1)m.push(s.min+h*y);s.domain=m,s.range=function(e){for(var t=e.resources.theme.palette(\"quant\",v),n=Math.max(1,Math.floor(t.length/v)),r=[],o=0;o<v;o+=1)r.push(t[o*n]);return[r[0]].concat(r,[r[r.length-1]])}}return s};function ke(e,t){var n;return t.activeMeasureIndex>=0?n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[t.activeMeasureIndex]:\"libraryItem\"===t.type?n=e.pic.field((function(e){return e.raw().colorMapRef===t.key&&void 0!==t.key})):\"expression\"===t.type&&(n=e.pic.field((function(e){return\"colorByAlternative\"===e.raw().id}))),n||(n=e.pic.field((function(e){return void 0!==e.raw().matchMeasure})))&&(n=e.pic.fields().filter((function(e){return\"measure\"===e.type()}))[n.raw().matchMeasure]),n}function Ce(e){var t,n=e.cm,r=e.defaults,o=e.index,a=e.input,u=e.pic;if(!a||!a.on)return null;var l=null!==(t=a.mode)&&void 0!==t?t:\"primary\";return\"primary\"===l?function(e,t,n){var r=n.primary;return void 0!==t.paletteColor&&t.paletteColor&&(r=e.resolveUIColor(t.paletteColor)),i(i({},n),{},{mode:\"constant\",type:\"constant\",primary:r})}(n,a,r):\"byExpression\"===l?function(e,t,n){var r=\"qMeasureInfo/\".concat(e,\"/\"),o=t.field((function(e){return e.id().startsWith(r)&&\"colorByMeasureExpression\"===e.raw().id})),a=o;return i(i({},n),{},a?{mode:\"field\",fieldType:\"expression\",field:o?o.key():void 0,type:\"color\"}:{mode:\"constant\",type:\"constant\",primary:n.nil})}(o,u,r):null}function De(e){e.measureOverrides.every((function(e){return!e}))&&(e.measureOverrides=null)}function Se(e,t){for(var n=(null==t?void 0:t.domain)||[],r=(null==t?void 0:t.range)||[],o=[],i=0;i<e.length;++i){var a=e[i];if(\"constant\"===(null==a?void 0:a.mode)){var u=n.indexOf(i);-1===u?(n.push(i),r.push(a.primary)):r[u]=a.primary,e[i]=null}else if(a){o.push(i);var l=n.indexOf(i);-1!==l&&(n.splice(l,1),r.splice(l,1))}}return{domain:n,range:r,exclude:o}}function Ie(e,t,n,r){if(t.input&&!t.input.auto){if(\"byMeasure\"===t.input.mode)return function(e,t,n){var r=t.theme,o=t.hc,i=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).getCField,a=void 0===i?ke:i,u=n.input.byMeasureDef||{activeMeasureIndex:0},l=a(n,u),c=Me(0,{theme:r,hc:o},n,{f:l});if(c.invalid)return c;(\"expression\"===u.type||u.activeMeasureIndex<0)&&(c.label=u.label,l&&\"color.altLabel\"===l.raw().labelExpRef&&(c.label=n.input.altLabel)),!c.label&&l&&(c.label=l.title());var s=u.activeMeasureIndex>=0?l:null;if(!s&&l&&void 0!==l.raw().matchMeasure&&l.raw().matchMeasure>-1&&(s=n.pic.fields().filter((function(e){return\"measure\"===e.type()}))[l.raw().matchMeasure]),n.input.useMeasureGradient&&\"libraryItem\"===u.type)if(s){var f=s.raw().coloring;f&&f.gradient&&b(c,qe(e,f.gradient,c,s))}else c.auxiliary=u;return c}(e,n,t);if(\"byDimension\"===t.input.mode)return function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.getCDef,i=void 0===o?M:o,a=r.getCByField,u=void 0===a?k:a,l=r.getPersistence,c=void 0===l?w:l,s=i(t,n),f=u(n,s),d=f?f.raw():{},p=n&&n.pic?n.pic.raw():{};if(d.qError||d.qSize&&0===d.qSize.qcy&&!p.qHasOtherValues)return{invalid:!0};var v={mode:\"field\",fieldType:\"dimension\",type:\"categorical\",field:f?f.key():void 0,isFieldLocked:d.qLocked};return(\"expression\"===s.type||s.activeDimensionIndex<0)&&(v.label=s.label,\"color.altLabel\"===d.labelExpRef&&(v.label=n.input.altLabel)),!v.label&&f&&(v.label=f.title()),n.input.dimensionScheme&&(v.palettes={categorical:n.input.dimensionScheme}),n.input.useDimColVal&&\"libraryItem\"===s.type&&(v.auxiliary=s),b(v,c(t,n,s,f,{byRow:q,byElemNo:x})),v}(e,n,t);if(\"byExpression\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,u=n.pic.field((function(e){return\"colorByExpression\"===e.raw().id}));if(!u||!u.raw().qFallbackTitle&&!n.input.colorExpression||!(Number.isFinite(u.raw().qMin)&&Number.isFinite(u.raw().qMax)||n.input.expressionIsColor))return{mode:\"constant\",type:\"constant\",primary:r.nil};if(n.input.expressionIsColor)return{mode:\"field\",fieldType:\"expression\",field:u?u.key():void 0,type:\"color\"};var l=Me(0,{hc:o,theme:i},n,{f:u});return l.invalid||(l.label=n.input.expressionLabel||a.get(\"Object.ChartTooltip.ColorExpression\")),l}(0,n,t,r);if(\"byMultiple\"===t.input.mode||\"primary\"===t.input.mode)return function(e,t,n,r){var o=t.hc,i=t.theme,a=t.translator,u=n.input.useBaseColors;if((\"byMultiple\"===n.input.mode||\"primary\"===n.input.mode&&\"measure\"===n.input.useBaseColors)&&o.qMeasureInfo.length>1&&(u=\"measure\"),\"measure\"===u){var l=[],c=[];\"measure\"===n.input.useBaseColors&&o.qMeasureInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){l.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?c.push(r.primary):c.push(o)}}));var s=n.input.dimensionScheme?{categorical:n.input.dimensionScheme}:void 0,f=i?i.getDataColorPalettes()[0]:void 0;return\"measure\"===n.input.useBaseColors&&f&&(s={categorical:f.key}),{mode:\"measure\",type:\"categorical\",palettes:s,label:a?a.get(\"Common.Measures\"):void 0,explicit:l.length?{domain:l,range:c}:void 0}}if(\"dimension\"===u){var d=[],p=[];return o.qDimensionInfo.forEach((function(t,n){if(t.baseColor||t.coloring&&t.coloring.baseColor){d.push(n);var o=e.resolveUIColor(t.baseColor||t.coloring.baseColor);\"none\"===o?p.push(r.primary):p.push(o)}})),{mode:\"dimension\",type:\"categorical\",field:d.length?d[0]:void 0,explicit:d.length?{domain:d,range:p}:void 0}}var v=r.primary;if(void 0!==n.input.paletteColor)n.input.paletteColor&&(v=e.resolveUIColor(n.input.paletteColor));else{var h=n.input.singleColor;\"number\"!=typeof h||Number.isNaN(h)||(v=[\"#b0afae\",\"#7b7a78\",\"#545352\",\"#4477aa\",\"#7db8da\",\"#b6d7ea\",\"#46c646\",\"#f93f17\",\"#ffcf02\",\"#276e27\",\"#ffffff\",\"#000000\"][h])}return{mode:\"constant\",type:\"constant\",primary:v}}(e,n,t,r)}return{}}function Oe(e,t,n,r){var o,i=Ie(e,t,n,r);return null!==(o=t.input)&&void 0!==o&&o.measureOverrides?(i.measureOverrides=t.input.measureOverrides.map((function(n,o){return Ce({cm:e,input:n,defaults:r,index:o,pic:t.pic})})),function(e,t){var n,r,o,i=t.translator;if(De(e),1===(null===(n=e.measureOverrides)||void 0===n?void 0:n.length))return e.measureOverrides[0];if(\"measure\"===e.mode&&e.measureOverrides&&(e.explicit=Se(e.measureOverrides,e.explicit),De(e)),null!==(r=e.measureOverrides)&&void 0!==r&&r.every((function(e){return\"constant\"===(null==e?void 0:e.mode)}))){var a={mode:\"measure\",type:\"categorical\",label:null==i?void 0:i.get(\"Common.Measures\")};return a.explicit=Se(e.measureOverrides),a}return null!==(o=e.measureOverrides)&&void 0!==o&&o.every((function(e){return e}))?{invalid:!0,measureOverrides:e.measureOverrides}:e}(i,n)):i}function Ae(e){var t=i({hc:null,colorProps:null,layout:null,theme:null},e),n={},r={auto:function(){return{mode:\"primary\"}},getDimensionColorMap:function(){return Promise.reject()},getMeasure:function(){return Promise.reject()},getAttributeDimension:function(){return Promise.reject()}},o={auto:function(e){return e?(r.auto=e,o):r.auto},getDimensionColorMap:function(e){return e?(r.getDimensionColorMap=e,o):r.getDimensionColorMap},getAttributeDimension:function(e){return e?(r.getAttributeDimension=e,o):r.getAttributeDimension},getMeasure:function(e){return e?(r.getMeasure=e,o):r.getMeasure},set:function(e){var o;if(!e.colorProps)throw new Error('Missing \"colorProps\"');if(b(t,e),(n={pic:t.picasso.data(\"q\")({data:t.hc,config:{localeInfo:t.localeInfo}}),input:t.colorProps}).input.auto){var i=r.auto(e.layout);n.input=b(!0,{},n.input,i,{auto:!1});var a=t.theme?t.theme.getDataColorPalettes():[];a[0]&&(n.input.dimensionScheme=a[0].key);var u=0;n.input.byDimDef&&+n.input.byDimDef.activeDimensionIndex>=0&&(u=+n.input.byDimDef.activeDimensionIndex),t.hc&&t.hc.qDimensionInfo[u]&&t.hc.qDimensionInfo[u].coloring&&t.hc.qDimensionInfo[u].coloring.colorMapRef&&n.input.byDimDef&&(n.input.byDimDef.type=\"libraryItem\",n.input.byDimDef.key=t.hc.qDimensionInfo[u].coloring.colorMapRef)}null!==(o=n.input.measureOverrides)&&void 0!==o&&o.every((function(e){return!e||!e.on}))&&(n.input=b(!1,{},n.input,{measureOverrides:null}))},palettes:function(){if(!n.palettes){var e=t.theme,r=[];(e&&e.getDataColorPickerPalettes()||[]).forEach((function(e){r.push({key:\"ui\",colors:e.colors})})),n.palettes=r}return n.palettes},getAuxiliaryData:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"/qHyperCubeDef\";if(!e.auxiliary&&!/qAttrDimInfo/.test(e.field))return Promise.resolve();var o=e.auxiliary||{},i=o.key;if(\"measure\"===e.fieldType)return r.getMeasure(i,t).catch((function(){}));if(\"dimension\"===e.fieldType){var a=\"\".concat(n,\"/\").concat(e.field).replace(\"qDimensionInfo\",\"qDimensions\").replace(\"qAttrDimInfo\",\"qAttributeDimensions\");return Promise.all([/qAttrDimInfo/.test(e.field)?r.getAttributeDimension(a,t).catch((function(){})):Promise.resolve(),i?r.getDimensionColorMap(i,t).catch((function(){})):Promise.resolve()])}return Promise.resolve()},getAuxiliarySettings:function(e,r){var o=this;return e.auxiliary||/qAttrDimInfo/.test(e.field)?(this.palettes(),this.getAuxiliaryData(e,r).then((function(r){if(!r)return{};if(\"measure\"===e.fieldType){if(r.coloring&&r.coloring.gradient){var a=n.pic.field(e.field);return qe(o,r.coloring.gradient,e,a)}return{}}if(\"dimension\"===e.fieldType){var u={nil:e.nil,others:e.others},l=r[0],c=r[1]?r[1].colorMap:null;if(l){var s=t.picasso.data(\"q\")({data:{qDimensionInfo:[n.pic.field(e.field).raw(),n.pic.field(e.field).raw()],qMeasureInfo:[],qDataPages:l,qInterColumnSortOrder:[0,1],qMode:\"S\"}});u.legendDataset=s}return c?function(e,t,n,r){var o=r.external,a=r.field,u=i({},e);b(u,x(a,a.raw().qCardinal));var l=o.theme?o.theme.getDataColorPalettes()[0]:null;return t.nul&&(u.nil=n.resolveUIColor(t.nul)),t.oth&&(u.others=n.resolveUIColor(t.oth)),t.usePal?(u.palettes={categorical:t.pal},l&&!t.pal&&(u.palettes.categorical=l.key,b(u,x(a)))):!1===t.autoFill&&t.single?u.range=[n.resolveUIColor(t.single)]:t.autoFill&&(l&&(u.palettes={categorical:l.key}),b(u,x(a))),t.colors&&t.colors.length&&(u.explicit=function(e,t,n){for(var r={},o=0;o<e.length;o+=1)r[e[o].value]=e[o].baseColor;var i=[];return{domain:function(e){var o=e.data,a=[];i=[];for(var u=0;u<o.items.length;u++){var l=o.items[u],c=(l.text||l).label;r[c]&&-1===a.indexOf(l.value)&&(a.push(l.value),i.push(t.resolveUIColor(r[c])))}return a.push(-3,-2),i.push(n.others),i.push(n.nil),a},range:function(){return i}}}(t.colors,n,u)),u}(u,c,o,{external:t,field:n.pic.field(e.field)}):u}return{}}))):Promise.resolve()},resolveUIColor:function(e){if(e.index<0||void 0===e.index)return e.color;if(void 0===n.uiPalette&&(n.uiPalette=this.palettes().filter((function(e){return\"ui\"===e.key}))[0]||!1),!n.uiPalette)return e.color;var t=\"none\"===n.uiPalette.colors[0]?e.index:e.index-1;return void 0===n.uiPalette.colors[t]?e.color:n.uiPalette.colors[t]},settings:function(){if(this.palettes(),!n.settings){var e={primary:\"steelblue\",others:\"#aaa\",nil:\"#ddd\"},r=t.theme;r&&(e=i(i({},e),r.getDataColorSpecials())),n.settings=b(e,Oe(this,n,t,e))}return n.settings}};return o}var Ee=function(e,t){var n=e.fieldType,r={};if(t)if(\"measure\"===n){var o=t.coloring;o&&(r.measureGradient=o.gradient)}else if(\"dimension\"===n){var i=t[0],a=t[1];i&&(r.legendDataPage=i),a&&(r.dimValsData=a.colorMap)}return r},Ne=function(e){throw e.isHandled=!0,e},Pe=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.dimValsData?Promise.resolve({colorMap:n.snapshotData.content.chartData.dimValsData}):Promise.reject():r&&r.getObject?r.getObject(\"ColorMapModel_\".concat(e)).then((function(e){return e.getLayout()})):Promise.reject()},Te=function(e,t){var n=t.layout,r=t.app;return n&&n.snapshotData?n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.measureGradient?Promise.resolve({coloring:{gradient:n.snapshotData.content.chartData.measureGradient}}):Promise.reject():r&&r.getMeasure?r.getMeasure(e).then((function(e){return e.getMeasure()})):Promise.reject()},Le=function(e,t){var n=t.layout,r=t.model,o=t.app;if(n&&n.snapshotData)return n.snapshotData.content&&n.snapshotData.content.chartData&&n.snapshotData.content.chartData.legendDataPage?Promise.resolve(n.snapshotData.content.chartData.legendDataPage):Promise.reject();if(r&&r.session&&o){return r.getHyperCubeData(e,[{qHeight:100,qLeft:0,qTop:0,qWidth:2}]).catch(Ne)}return Promise.reject()};function je(e){var t=e.hc,n=e.source,r=e.coloring,o={data:{extract:[{source:\"dummy\",field:0,filter:function(){return o.expando=t.qDataPages[0]?t.qDataPages[0].qArea.qTop:0,!1}},{source:n,field:r.field,trackBy:r.valueAccessor,reduce:\"first\",props:{row:{reduce:function(){return o.expando++}},text:{value:function(e){return e.qText},reduce:\"first\"}}}]},expando:0};return o}function Fe(t){return function(n){return\"object\"===e(n.datum[t])?n.datum[t].value:void 0}}function Ve(t){return\"object\"===e(t.datum.isNull)?t.datum.isNull.value:-2===t.datum.value}function Re(e){return-3===e.datum.value}var He=function(e,t,n){var r=e&&e.dock||void 0;if(\"auto\"!==r)return r||\"right\";if(t){var o=t.element.getBoundingClientRect();if(o.height>o.width)return\"bottom\"}return n?\"left\":\"right\"},ze=function(e,t,n){return!(n.invalid||\"color\"===n.type||\"measure\"===n.mode&&t.qMeasureInfo.length<=1||\"dimension\"===n.mode)&&(\"function\"==typeof e.show?e.show():!1!==e.show)};function Be(e,t){var n=e.styleReference,r=e.chart,o=e.rtl,i=t.legendProps,a=t.coloring,u=t.theme,l=t.hc;return{layout:{minimumLayoutMode:\"MEDIUM\",dock:He(i,r,o)},show:\"function\"==typeof i.show?function(){return ze(i,l,a)}:ze(i,l,a),renderer:\"svg\",mounted:function(e){e.childNodes[0].style.pointerEvents=\"none\",e.style.overflow=\"hidden\"},settings:{title:{show:!1!==i.showTitle,wordBreak:\"break-word\",maxLines:2,lineHeight:1.2,text:a.label||\"\",fill:u?u.getStyle(n,\"legend.title\",\"color\"):void 0,fontSize:u?u.getStyle(n,\"legend.title\",\"fontSize\"):\"16px\",fontFamily:u?u.getStyle(n,\"legend.title\",\"fontFamily\"):\"QlikView Sans, sans-serif\"}}}}function _e(e,t,n){return\"categorical\"===t.coloring.type?function(e,t,n){var r=Be(e,t);if(!r.show)return!1;var o=e.key,i=e.styleReference,a=e.viewState,u=e.rtl,l=e.settings,c=e.style,s=t.scaleKey,f=t.theme,d=t.scales,p={up:\"M13.6,11 L2.4,11 C2.28954305,11 2.2,10.9104569 2.2,10.8 C2.2,10.756726 2.21403557,10.7146192 2.24,10.68 L7.84,3.21333333 C7.90627417,3.12496777 8.03163444,3.10705916 8.12,3.17333333 C8.13516113,3.18470418 8.14862915,3.1981722 8.16,3.21333333 L13.76,10.68 C13.8262742,10.7683656 13.8083656,10.8937258 13.72,10.96 C13.6853808,10.9859644 13.643274,11 13.6,11 Z\",down:\"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z\",left:\"M11,2.4 L11,13.6 C11,13.7104569 10.9104569,13.8 10.8,13.8 C10.756726,13.8 10.7146192,13.7859644 10.68,13.76 L3.21333333,8.16 C3.12496777,8.09372583 3.10705916,7.96836556 3.17333333,7.88 C3.18470418,7.86483887 3.1981722,7.85137085 3.21333333,7.84 L10.68,2.24 C10.7683656,2.17372583 10.8937258,2.19163444 10.96,2.28 C10.9859644,2.31461923 11,2.35672596 11,2.4 Z\",right:\"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z\"},v=\"\".concat(s,\"Legend\");return b(!0,r,{type:\"legend-cat\",key:\"\".concat(o,\"-cat\"),scale:v in d?v:s,settings:{layout:{scrollOffset:function(){return a?a.get(\"legendScrollOffset\"):void 0},size:-1!==[\"top\",\"bottom\"].indexOf(r.layout.dock)?2:1,direction:u?\"rtl\":\"ltr\",horizontal:20},item:{show:function(e){return-2!==e.datum.value},label:{fill:f?f.getStyle(i,\"legend.label\",\"color\"):void 0,fontSize:f?f.getStyle(i,\"legend.label\",\"fontSize\"):void 0,fontFamily:f?f.getStyle(i,\"legend.label\",\"fontFamily\"):\"QlikView Sans, sans-serif\",maxLines:3,wordBreak:\"break-word\"}},navigation:{disabled:n,button:{content:function(e,t){var n=t.direction;return e(\"i\",{style:{\"pointer-events\":\"none\",fontSize:\"12px\",display:\"inline-block\",fontStyle:\"normal\",lineHeight:\"0\",textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizelegibility\",margin:\"0px\"}},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},[e(\"path\",{d:p[n]})])])}}}},brush:{consume:[{context:\"selection\",data:[\"\",o],style:{inactive:{opacity:.3}}}]}},{settings:l,style:c})}(e,t,n):\"continuous\"===t.coloring.type&&function(e,t){var n=e.key,r=e.styleReference,o=e.rtl,i=e.settings,a=e.style,u=t.scaleKey,l=t.theme,c=Be(e,t);return!!c.show&&b(!0,c,{type:\"legend-seq\",key:\"\".concat(n,\"-seq\"),settings:{fill:u,major:\"\".concat(u,\"Range\"),length:1,tick:{fill:l?l.getStyle(r,\"legend.label\",\"color\"):void 0,fontSize:l?l.getStyle(r,\"legend.label\",\"fontSize\"):void 0,fontFamily:l?l.getStyle(r,\"legend.label\",\"fontFamily\"):\"QlikView Sans, sans-serif\"},title:{anchor:!o||\"top\"!==c.layout.dock&&\"bottom\"!==c.layout.dock?void 0:\"right\",padding:parseFloat(c.settings.title.fontSize)||16}}},{settings:i,style:a})}(e,t)}function Ye(e,t,n){var o=[],i=[],a=_e(e,t,n&&n.navigationDisabled);return o.push(a),a&&\"legend-cat\"===a.type&&(i.push(function(e){var t=e.key,n=e.requireFailure,r=e.recognizeWith,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:tap-\".concat(t),type:\"Tap\",requireFailure:n,recognizeWith:r,options:{event:\"legendtap\",interval:10,pointers:1,enable:function(e,n){var r;if(!n)return!0;if(null!=o&&null!==(r=o.interact)&&void 0!==r&&r.enabled&&!o.interact.enabled())return!1;if(!this.chart.componentsFromPoint({x:n.center.x,y:n.center.y}).some((function(e){return e.key===\"\".concat(t,\"-cat\")})))return!1;var i=n.srcEvent.target;return!!(i&&i.hasAttribute(\"data-action\")&&i.hasAttribute(\"data-component-key\"))||!(!i||!i.childNodes[0]||\"BUTTON\"!==i.childNodes[0].nodeName)}},events:{legendtap:function(e){e.preventDefault();var t=e.srcEvent.target;t&&t.hasAttribute(\"data-action\")&&t.hasAttribute(\"data-component-key\")&&this.chart.component(t.getAttribute(\"data-component-key\")).emit(t.getAttribute(\"data-action\"))}}}}(e,n)),i.push(function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.eventName,o=t.key,i=t.requireFailure,a=t.recognizeWith,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).actions;return{key:\"event:pan-\".concat(o),type:\"Pan\",requireFailure:i,recognizeWith:a,options:{event:n,pointers:1,threshold:10,enable:function(e,t){var r;return this.started===n||!t||!(null!=u&&null!==(r=u.interact)&&void 0!==r&&r.enabled&&!u.interact.enabled())&&this.chart.componentsFromPoint({x:t.center.x,y:t.center.y}).some((function(e){return e.key===\"\".concat(o,\"-cat\")}))}},events:(e={},r(e,\"\".concat(n,\"start\"),(function(e){e.preventDefault(),this.started!==n&&(this.started=n,this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panstart\",e))})),r(e,\"\".concat(n,\"move\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panmove\",e)})),r(e,\"\".concat(n,\"end\"),(function(e){e.preventDefault(),this.chart.component(\"\".concat(o,\"-cat\")).emit(\"panend\",e),this.started=!1})),e)}}(e,n))),{interactions:i,components:o}}var Ue=function(e){return\"rgba(\".concat([(16711680&e)>>16,(65280&e)>>8,255&e,((4278190080&e)>>>24)/255].join(\",\"),\")\")};function Ke(e){var t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.auto,n=Ae(e.resources).auto(t||function(){return{mode:\"byDimension\",persistent:!1,useDimColVal:!0,byDimDef:{activeDimensionIndex:0,type:\"expression\",label:\"\"}}}).getDimensionColorMap((function(e,t){var n=t.layout,r=t.app;return Pe(e,{layout:n,app:r})})).getMeasure((function(e,t){var n=t.layout,r=t.app;return Te(e,{layout:n,app:r})})).getAttributeDimension((function(e,t){var n=t.layout,r=t.model,o=t.app;return Le(e,{layout:n,model:r,app:o})}));return n.getSnapshotData=Ee,n}({resources:e}),n={},o={},a=function(e){return o.settings||(e||console.warn(\"settings() called before auxiliarySettings()\"),o.settings=t.settings()),o.settings},u={config:function(r){if(n=i({},r),o={},!n.key)throw new Error(\"Missing key\");t.set(i(i({},e),n))},auto:function(e){return e?(t.auto(e),u):t.auto()},getAuxiliarySettings:function(e){return o.auxiliarySettings?Promise.resolve(o.auxiliarySettings):t.getAuxiliarySettings(a(!0),e).then((function(e){return o.auxiliarySettings=e||{},o.settings=i(i({},o.settings),o.auxiliarySettings),o.scales=void 0,o.color=void 0,o.auxiliarySettings}))},getAuxiliaryData:function(){return t.getAuxiliaryData(a())},getSnapshotData:function(e){var n=a();return t.getAuxiliaryData(n,e).then((function(e){return t.getSnapshotData(n,e)}))},resolveUIColor:function(e){return t.resolveUIColor(e)},settings:function(){var e=a();return{mode:e.mode,type:e.type,label:e.label,field:e.field,fieldType:e.fieldType,nil:e.nil,others:e.others,primary:e.primary}},settingsForMeasure:function(e){var t,n=null===(t=a().measureOverrides)||void 0===t?void 0:t[e];return n||this.settings()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return function(e,t){var n=t.isMeasureSelectionLocked;return\"field\"!==e.mode||(\"dimension\"===e.fieldType?e.isFieldLocked:\"measure\"!==e.fieldType||n)}(a(),{isMeasureSelectionLocked:t})},palettes:function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.colorProps,n=e.coloring,r=e.theme,o=[];if(n&&n.palettes&&r){var i=n.palettes.categorical||t.dimensionScheme,a=r.getDataColorPalettes().filter((function(e){return e.key===i}))[0]||r.getDataColorPalettes()[0];i&&a&&o.push({key:\"categorical\",colors:a.colors});var u=n.palettes.metric||t.measureScheme,c=r.getDataColorScales().filter((function(e){return e.key===u}))[0];if(c){var s=c.colors[0]?c.colors:[[]].concat(l(c.colors.slice(1)));s=Array.isArray(s[0])?s.map((function(e){return e.slice().reverse()})):s.slice().reverse(),o.push({key:\"quant\",colors:s})}}return o}({coloring:a(),colorProps:n.colorProps,theme:n.theme})},scales:function(){return o.scales=o.scales||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hc,n=e.coloring,r=e.rtl,o=e.key,a=e.source,u=e.picasso,c={},s=o;if(n){var f={override:!0,domain:n.explicit&&\"function\"==typeof n.explicit.domain?n.explicit.domain:[].concat(l((n.explicit||{}).domain||[]),[-3,-2]),range:n.explicit&&\"function\"==typeof n.explicit.range?n.explicit.range:[].concat(l((n.explicit||{}).range||[]),[n.others,n.nil])};if(\"field\"===n.mode){if(\"dimension\"===n.fieldType){var d,p=je({hc:t,source:a,coloring:n}).data;if(n.legendDataset){var v=0,h={};u.data(\"q\")({data:t}).extract({field:n.field,trackBy:n.valueAccessor,reduce:function(e){var t=e[0];return h[t]=v++,e[0]}}),d={source:\"attrDim\",extract:{field:\"qDimensionInfo/0\",filter:function(e){return e.qElemNumber>=0},props:{row:{value:function(e){return h[e.qElemNumber]}}}}}}var m={data:p,range:n.range,domain:n.domain,explicit:f,type:\"categorical-color\",label:function(e){return e.datum.text&&e.datum.text.value?e.datum.text.value:e.datum.label}};c[s]=m,d&&(c[\"\".concat(s,\"Legend\")]=i(i({},m),{},{data:d})),t&&t.qHasOtherValues&&d&&((d||m.data).amend=[{label:t.qDimensionInfo[0].othersLabel,source:{key:\"qHyperCube\",field:\"qDimensionInfo/0\"},row:{value:-3},value:-3}])}else if(\"measure\"===n.fieldType){var y={data:{field:n.field},min:n.min,max:n.max};c[s]=b({},y,{type:\"categorical\"===n.type?\"threshold-color\":\"sequential-color\",range:n.range,domain:n.domain,invert:n.reverse}),\"sequential-color\"===c[s].type&&(c[\"\".concat(s,\"Range\")]=b({},y,{invert:!!r}))}else if(\"color\"!==n.type)throw new Error(\"UNUSED FIELD\")}else if(\"dimension\"===n.mode){var g={data:t.qDimensionInfo.map((function(e,t){return t})),label:function(e){return t.qDimensionInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};c[s]=g}else if(\"measure\"===n.mode){var x={data:t.qMeasureInfo.map((function(e,t){return t})).filter((function(e){var t,r;return!(null!==(t=n.explicit)&&void 0!==t&&null!==(r=t.exclude)&&void 0!==r&&r.includes(e))})),label:function(e){return t.qMeasureInfo[e.datum.value].qFallbackTitle},explicit:f,type:\"categorical-color\"};c[s]=x}}return c}({hc:n.hc,coloring:a(),key:n.key,source:n.source,picasso:e.picasso}),o.scales},color:function(){return o.color=o.color||function(e){var t=e.coloring,n=e.scales,r=e.key,o=Fe(r),i=Fe(\"\".concat(r,\"IsAnOther\")),a=function(e,t){var r=e.fieldType,a=e.invalid,u=e.mode,l=e.nil,c=e.others,s=e.primary,f=e.type;return a?function(e){return Re(e)||i(e)?c:l}:n[t]?function(e){return Re(e)?c:Ve(e)||-2===o(e)&&\"dimension\"===r||\"NaN\"===o(e)?l:i(e)?c:e.resources.scale(t)(o(e))||c}:\"constant\"===u?function(e){return Re(e)||i(e)?c:Ve(e)?l:s}:\"color\"===f?function(e){return Re(e)||i(e)?c:Ve(e)?l:o(e)||c}:null},u=a(t,r);if(t.measureOverrides){var l=Fe(\"\".concat(r,\"MeasureIdx\")),c=t.measureOverrides.map((function(e){return e&&a(e)}));return function(e){var t=l(e);return c[t]?c[t](e):u(e)}}return u}({coloring:a(),scales:this.scales(),key:n.key}),o.color},datumProps:function(e){return function(e){var t,n,o=e.hc,i=e.coloring,a=e.scales,u=e.key,l=e.addMeasureIx,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=u,f=i.nil;\"field\"===i.mode&&i.field?t=i.field:a[u]&&\"field\"===i.mode&&(t=a[u].data.field||i.field),t?(n={field:t,reduce:\"first\"},\"color\"===i.type&&(n.value=function(e){return\"NaN\"!==e.qNum?Ue(e.qNum):e.qText&&B(e.qText)?e.qText:f})):\"dimension\"===i.mode?n=void 0!==i.field?i.field:o.qDimensionInfo.length-1:\"measure\"===i.mode&&(n=c);var d=r({},s,n);return o.qDimensionInfo.length>1&&(d[\"\".concat(s,\"IsAnOther\")]={fields:o.qDimensionInfo.map((function(e,t){return{field:\"qDimensionInfo/\".concat(t)}})),value:function(e){return-1!==e.indexOf(-3)}}),l&&(d[\"\".concat(s,\"MeasureIdx\")]=c),d}({coloring:this.settingsForMeasure(e),scales:this.scales(),key:n.key,hc:n.hc,addMeasureIx:a().measureOverrides},e)},data:function(){var e=a(),t={key:\"dummy\",data:[[\"field\"],[\"a\"]]};return e.legendDataset?[t,{type:\"q\",key:\"attrDim\",data:e.legendDataset.raw(),config:{localeInfo:n.localeInfo}}]:[t]},legend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.eventName,r=e.key,o=e.viewState,i=e.chart,u=e.rtl,l=e.styleReference,c=void 0===l?\"object.legend\":l,s=e.settings,f=void 0===s?{}:s,d=e.style,p=void 0===d?{}:d,v=arguments.length>1?arguments[1]:void 0;return Ye({eventName:t,key:r,rtl:u,viewState:o,chart:i,styleReference:c,settings:f,style:p},{legendProps:n.legendProps,scaleKey:n.key,coloring:a(),theme:n.theme,hc:n.hc,scales:this.scales()},v)}};return u}var We=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function $e(e){var t=e.qHyperCube,n=t.qDimensionInfo,r=t.qMeasureInfo,o=n.some(We),i=r.some(We),a=e.color.useBaseColors;return\"measure\"===a&&!i||\"dimension\"===a&&!o?\"off\":a}function Ge(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i(i(i({},e),t),{},{colorProps:i(i({},e.colorProps),t.colorProps||{})});return n}var Xe=function(e){return e.baseColor||e.coloring&&e.coloring.baseColor};function Je(e){var t,n=e.qHyperCube.qDimensionInfo.some(Xe),r=e.qHyperCube.qMeasureInfo.some(Xe),o=n?\"dimension\":void 0;return{mode:\"primary\",useBaseColors:null!==(t=null!=o?o:r?\"measure\":void 0)&&void 0!==t?t:\"off\",paletteColor:null}}var Qe=function(){};function Ze(e){var t,n,r,o,a=e.picasso,u=e.model,l=e.app,c=e.translator,s=e.layoutService,f=void 0===s?void 0:s,d=e.createConfig,p=void 0===d?Qe:d,v=e.config,h=void 0===v?{}:v,m=e.custom,y=void 0===m?{}:m,g=h.localeInfo,b=h.key,x=h.theme,q=void 0===x?void 0:x,w=h.auto,M=void 0===w?void 0:w,k=h.definitionPath,C=null==f||null===(t=f.getLayout)||void 0===t?void 0:t.call(f),D={theme:q,key:b,localeInfo:g,layout:C,hc:null==f||null===(n=f.getHyperCube)||void 0===n?void 0:n.call(f),legendProps:null==f||null===(r=f.getLayoutValue)||void 0===r?void 0:r.call(f,\"legend\"),colorProps:i(i({},null==f||null===(o=f.getLayoutValue)||void 0===o?void 0:o.call(f,\"color\")),{},{useBaseColors:C?$e(C):void 0})},S=Ke({picasso:a,model:u,app:l,translator:c,auto:M});!1!==M&&S.auto((function(e){return M?M({layout:e,defaultAuto:Je}):Je(e)}));var I=!1,O={getColor:function(){return S.color()},getPaletteColor:function(e){var t=e.index,n=e.color;return S.resolveUIColor({index:t,color:n})},getData:function(){return S.data()},getDatumProps:function(e){return S.datumProps(e)},getSnapshotData:function(){return S.getSnapshotData(k)},getSettingsForMeasure:function(e){return S.settingsForMeasure(e)},getSettings:function(){return S.settings()},getLegend:function(e,t){return S.legend(e,t)},getScales:function(){return S.scales()},getPalettes:function(){return S.palettes()},isSelectionLocked:function(e){var t=e.isMeasureSelectionLocked;return S.isSelectionLocked({isMeasureSelectionLocked:t})},isInitialized:function(){return I},custom:i({},y),initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createConfig,n=void 0===t?p:t,r=n({getUseBaseColors:$e}),o=Ge(D,r);S.config(o);var i=S.getAuxiliarySettings(k).then((function(){I=!0}));return i}};return O}function et(e){var t=e.chart,n=e.logicalSize;if(n)return n;var r=t?t.element.getBoundingClientRect():{};return{width:r.width,height:r.height}}var tt=[{key:\"FULL\",size:{width:550,height:450}},{key:\"MEDIUM\",size:{width:400,height:220}},{key:\"SMALL\",size:{width:300,height:150}},{key:\"XSMALL\",size:{width:150,height:75}}];function nt(e){var t=e.width,n=e.height,r=tt.filter((function(e){return t>=e.size.width&&n>=e.size.height})).shift();return r?r.key:\"SPARK\"}var rt={left:\"right\",right:\"left\",top:\"bottom\",bottom:\"top\",near:\"far\",far:\"near\"};function ot(e){var t=e.orientation,n=e.dock,r=e.btt,o=e.rtl,i=\"horizontal\"===t?function(e){return\"bottom\"===e||\"near\"===e?\"bottom\":\"top\"}(n):function(e,t){var n=\"left\"===e||\"near\"===e?\"left\":\"right\";return t?rt[n]:n}(n,o),a=function(e,t,n){return\"vertical\"===e?t?\"bottom\":\"top\":n?\"right\":\"left\"}(t,r,o);return{current:i,opposite:rt[i],start:a,end:rt[a]}}function it(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,a=o.logicalSize,u=void 0!==a&&a,l=o.rtl,c=void 0!==l&&l,s={chart:{size:void 0,mode:void 0},x:{dock:void 0,opposite:void 0,size:void 0},y:{dock:void 0,opposite:void 0,size:void 0}},f={type:\"x-y\",config:i({},o),meta:s,update:function(e){s.chart.size={width:e.width,height:e.height},s.chart.mode=nt(e);var t=ot({orientation:\"horizontal\",dock:n.getLayoutValue(\"xAxis.dock\"),btt:!1,rtl:c}),r=t.current,o=t.opposite;s.x.dock=r,s.x.opposite=o,s.x.size=e.width;var i=ot({orientation:\"vertical\",dock:n.getLayoutValue(\"yAxis.dock\"),btt:!0,rtl:c}),a=i.current,u=i.opposite;s.y.dock=a,s.y.opposite=u,s.y.size=e.height}};return f.update(et({chart:t,logicalSize:u})),f}var at=\"vertical\",ut=\"horizontal\";function lt(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,a=e.typeConfig,u=void 0===a?{}:a,l=o.logicalSize,c=void 0!==l&&l,s=o.rtl,f=void 0!==s&&s,d=u.fallback===at?at:ut,p=!!u.invert,v=u.measureAxes||[{ref:\"measureAxis\",name:\"minor\"}],h={chart:{orientation:void 0,size:void 0,mode:void 0},major:{orientation:void 0,dock:void 0,opposite:void 0,size:void 0}},m={type:\"major-minor\",config:i({},o),meta:h,update:function(e){h.chart.orientation=n.getLayoutValue(\"orientation\",d),h.chart.size={width:e.width,height:e.height},h.chart.mode=nt(e),h.major.orientation=function(e){var t=e.layoutService,n=e.chartOrientation,r=e.invert;return t.meta.isContinuous?ut:r?n===at?ut:at:n}({layoutService:n,chartOrientation:h.chart.orientation,invert:p});var t=ot({orientation:h.major.orientation,dock:n.getLayoutValue(\"dimensionAxis.dock\"),btt:!1,rtl:f}),r=t.current,o=t.opposite;h.major.dock=r,h.major.opposite=o,h.major.size=h.major.orientation===at?e.height:e.width,v.forEach((function(t){var r={};r.orientation=h.major.orientation===at?ut:at;var o=ot({orientation:r.orientation,dock:n.getLayoutValue(\"\".concat(t.ref,\".dock\")),btt:!0,rtl:f}),i=o.current,a=o.opposite,u=o.start,l=o.end;r.dock=i,r.opposite=a,r.start=u,r.end=l,r.size=r.orientation===at?e.height:e.width,h[t.name]=r}))}};return m.update(et({chart:t,logicalSize:c})),m}function ct(e){var t=e.chart,n=e.layoutService,r=e.config,o=void 0===r?{}:r,i=e.typeConfig,a=void 0===i?{}:i;return(\"x-y\"===a.type?it:lt)({chart:t,layoutService:n,config:o,typeConfig:a})}function st(e,t,n){if(void 0===e||void 0===t)return n;for(var r=t.split(\".\"),o=e,i=0;i<r.length;++i){var a=r[i];if(void 0===o[a])return n;o=o[a]}return o}function ft(e,t,n){if(void 0!==e&&void 0!==t){for(var r=t.split(\".\"),o=r[r.length-1],i=e,a=0;a<r.length-1;++a){var u=r[a];void 0===i[u]&&(i[u]=Number.isNaN(+r[a+1])?{}:[]),i=i[u]}void 0!==n?i[o]=n:delete i[o]}}function dt(){var e={};return{get:function(t){return e[t]},set:function(t,n){return e[t]=n,n},has:function(t){return t in e},remove:function(t){delete e[t]},empty:function(){e={}}}}function pt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=dt();return function(r){var o=t(r);return n.has(o)?n.get(o):n.set(o,e(r))}}function vt(e){var t=i({},e),n={},r={},o=!1,a={get:function(e){return t[e]},set:function(e,i){var a=t[e];!o&&n[e]?t[e]=n[e](i,a):t[e]=i,!o&&r[e]&&r[e](t[e],a)},preventSet:function(e,t){o=!0,a.set(e,t),o=!1},intercept:function(e,t){n[e]=t},onChanged:function(e,t){r[e]=t}};return a}function ht(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return function(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];var u=function(){return e.apply(r,i)};clearTimeout(t),t=setTimeout(u,n)}}function mt(e){var t,n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=0;return function(){t=this;for(var a=arguments.length,u=new Array(a),l=0;l<a;l++)u[l]=arguments[l];n=u;var c=Date.now()-i,s=function(){i=Date.now(),r=0,e.apply(t,n)};r||(c>=o?s():r=setTimeout(s,o-c))}}function yt(e){var t;return((null==e||null===(t=e.qHyperCube)||void 0===t?void 0:t.qDimensionInfo)||[]).map((function(e){var t,n=null===(t=e.qCardinalities)||void 0===t?void 0:t.qHypercubeCardinal;if(n)return n;var r=e.qStateCounts||{},o=r.qLocked,i=void 0===o?0:o,a=r.qOption,u=void 0===a?0:a,l=r.qSelected;return i+u+(void 0===l?0:l)}))}function gt(e){switch(e.qHyperCube.qMode){case\"S\":return function(e){var t=e.qHyperCube.qSize;return{refs:{dataPages:\"qHyperCube.qDataPages\"},size:{x:t.qcx,y:t.qcy,dimensions:yt(e)}}}(e);case\"K\":return function(e){var t=yt(e);return{refs:{dataPages:\"qHyperCube.qStackedDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);case\"T\":return function(e){var t=yt(e);return{refs:{dataPages:\"qHyperCube.qTreeDataPages\"},size:{x:e.qHyperCube.qSize.qcx,y:t[0],dimensions:t}}}(e);default:throw new Error(\"Mode not supported\")}}function bt(e){var t=e.source,n=e.metaAdditionsFn,r=b(!0,{},t),o=gt(r),a=function(){return function(e){var t=e.layout,n=e.additionsFn,r=void 0===n?function(){return{}}:n,o=e.additionsProps,a=void 0===o?{}:o,u=t.qHyperCube,l=u.qDimensionInfo,c=u.qMeasureInfo,s=u.qMode,f=l.length,d=c.length,p=i({mode:{S:\"S\"===s,P:\"P\"===s,K:\"K\"===s,T:\"T\"===s},dimensionCount:f,measureCount:d,hasMultipleDimensions:f>1,hasMultipleMeasures:d>1,isOneDimensional:1===f,isTwoDimensional:2===f},a);return i(i({},p),r({layout:t,meta:p}))}({layout:r,additionsFn:n,additionsProps:{size:o.size}})},u={refs:i({},o.refs),meta:a(),getLayout:function(){return r},getLayoutValue:function(e,t){return st(r,e,t)},setLayoutValue:function(e,t){ft(r,e,t),o=gt(r),u.meta=a()},getHyperCube:function(){return r.qHyperCube},getHyperCubeValue:function(e,t){return st(r.qHyperCube,e,t)},setHyperCubeValue:function(e,t){ft(r.qHyperCube,e,t),o=gt(r),u.meta=a()},getDataPages:function(){return st(r,o.refs.dataPages)},setDataPages:function(e){ft(r,o.refs.dataPages,e),u.meta=a()}};return u}function xt(e){var t=e.originalArray,n=e.newArray,r=e.matchKey;return Array.isArray(t)&&t.length?(n.forEach((function(e){var n=-1;t.some((function(t,o){return t[r]&&t[r]===e[r]&&(n=o),n})),n>-1?t[n]=e:t.push(e)})),t):n}function qt(t){var r=t.picassoInstance,o=t.plugins,a=t.pluginArgs,c=void 0===a?{}:a,s={initialized:!1,definitions:[]};return{initialize:function(){return n(regeneratorRuntime.mark((function t(){var a,u,f,d;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!s.initialized){t.next=2;break}return t.abrupt(\"return\");case 2:return u=Promise.all(o.filter((function(e){return\"custom-component\"===e.info.type})).map(function(){var t=n(regeneratorRuntime.mark((function t(n){var o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.info.componentName){t.next=2;break}throw new Error(\"plugin-service: Custom component is missing componentName\");case 2:return t.next=4,n.fn(i({},c));case 4:if(\"object\"===e(o=t.sent)){t.next=7;break}throw new Error(\"plugin-service: Custom component needs to be an object\");case 7:r.component(n.info.componentName,o);case 8:case\"end\":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())),f=Promise.all(o.filter((function(e){return\"component-definition\"===e.info.type})).map((function(e){return e.fn(i({},c))}))),t.next=6,Promise.all([u,f]);case 6:d=t.sent,s.initialized=!0,(a=s.definitions).push.apply(a,l(d[1]));case 9:case\"end\":return t.stop()}}),t)})))()},extendComponents:function(t){return s.initialized?(s.definitions.filter(Boolean).forEach((function(n){var r=u(t.filter((function(e){return e.key&&e.key===n.key})),1)[0];if(r){var o=b(!0,{},r.brush);b(!0,r,n),n.brush&&(r.brush=function(t,n){return\"object\"===e(t)&&Object.keys(t).length?(Array.isArray(n.consume)&&(t.consume=xt({originalArray:t.consume,newArray:n.consume,matchKey:\"context\"})),Array.isArray(n.trigger)&&(t.trigger=xt({originalArray:t.trigger,newArray:n.trigger,matchKey:\"on\"})),t):n}(o,n.brush))}else t.push(n)})),t):t}}}function wt(e){return wt=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},wt(e)}function Mt(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function kt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ct(e,t,n){return t&&kt(e.prototype,t),n&&kt(e,n),e}function Dt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function St(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function It(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?St(Object(n),!0).forEach((function(t){Dt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ot(e,t){return Ot=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Ot(e,t)}function At(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function Et(e,t,n){return Et=At()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Ot(o,n.prototype),o},Et.apply(null,arguments)}function Nt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||Tt(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Pt(e){return function(e){if(Array.isArray(e))return Lt(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Tt(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Tt(e,t){if(e){if(\"string\"==typeof e)return Lt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Lt(e,t):void 0}}function Lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var jt=Object.prototype.hasOwnProperty,Ft=Object.prototype.toString,Vt=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,Ht=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===Ft.call(e)},zt=function(e){if(!e||\"[object Object]\"!==Ft.call(e))return!1;var t,n=jt.call(e,\"constructor\"),r=e.constructor&&e.constructor.prototype&&jt.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||jt.call(e,t)},Bt=function(e,t){Vt&&\"__proto__\"===t.name?Vt(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},_t=function(e,t){if(\"__proto__\"===t){if(!jt.call(e,t))return;if(Rt)return Rt(e,t).value}return e[t]},Yt=function e(){var t,n,r,o,i,a,u=arguments[0],l=1,c=arguments.length,s=!1;for(\"boolean\"==typeof u&&(s=u,u=arguments[1]||{},l=2),(null==u||\"object\"!=typeof u&&\"function\"!=typeof u)&&(u={});l<c;++l)if(null!=(t=arguments[l]))for(n in t)r=_t(u,n),u!==(o=_t(t,n))&&(s&&o&&(zt(o)||(i=Ht(o)))?(i?(i=!1,a=r&&Ht(r)?r:[]):a=r&&zt(r)?r:{},Bt(u,{name:n,newValue:e(s,a,o)})):void 0!==o&&Bt(u,{name:n,newValue:o}));return u};function Ut(e,t,n){if(!e)return-1;var r=n.cache,o=e.origin?e.origin():null;o&&(e=o);var i=r.fields.indexOf(e),a=-1,u=-1;if(-1===i)for(var l=0;l<r.wrappedFields.length;l++)if(u=r.wrappedFields[l].attrDims.map((function(e){return e.instance})).indexOf(e),a=r.wrappedFields[l].attrExps.map((function(e){return e.instance})).indexOf(e),-1!==u||-1!==a){i=l;break}return(i-=t.qArea.qLeft)<0||i>=t.qArea.qWidth?-1:u>=0?function(e){return e[i].qAttrDims.qValues[u]}:a>=0?function(e){return e[i].qAttrExps.qValues[a]}:function(e){return e[i]}}function Kt(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function Wt(e){var t=e.cache,n=e.f,r=e.mainCell,o=e.p;e.prop;var i=e.page,a=e.rowIdx,u=e.row,l=e.sourceKey,c=e.target,s=e.targetProp,f=r;if(o.field&&o.field!==n){var d=Ut(o.field,i,{cache:t});if(-1===d)return;f=Yt({qRow:a},d(u))}c[s]=Kt(o,f,{key:l})}function $t(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){for(var u=t.raw(),l=t.key(),c=\"object\"===wt(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=!!o[a].trackBy,h=wt(o[a].trackBy),m={},y=[],g=[],b=0;b<u.qDataPages.length;b++){var x=Ut(c,u.qDataPages[b],{cache:n});if(-1!==x)for(var q=0;q<u.qDataPages[b].qMatrix.length;q++){var w=u.qDataPages[b].qArea.qTop+q,M=Yt({qRow:w},x(u.qDataPages[b].qMatrix[q])),k=Kt(d,M,{key:l});if(!(d.filter&&!d.filter(M))){for(var C=0;C<p.length;C++){var D=f[p[C]],S=D.fields||[D];D.fields&&(k[p[C]]=[]);for(var I=0;I<S.length;I++)Wt({cache:n,f:c,mainCell:M,p:S[I],prop:p[C],props:f,page:u.qDataPages[b],rowIdx:w,row:u.qDataPages[b].qMatrix[q],sourceKey:l,target:D.fields?k[p[C]]:k,targetProp:D.fields?I:p[C]});if(D.fields){var O=k[p[C]].map((function(e){return e.value})),A=k[p[C]].map((function(e){return e.label}));k[p[C]]={value:\"function\"==typeof D.value?D.value(O):void 0!==D.value?D.value:O,label:\"function\"==typeof D.label?D.label(A):void 0!==D.label?String(D.label):String(k[p[C]].value)}}}v&&r.track({cfg:o[a],itemData:M,obj:k,target:y,tracker:m,trackType:h}),g.push(k)}}}v?i.push.apply(i,Pt(r.collect(y,{main:d,propsArr:p,props:f}))):i.push.apply(i,g)}return i}function Gt(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Xt(e,t){var n,r,o,i,a,u=new en(e),l=+e.value&&(u.value=e.value),c=[u];for(null==t&&(t=Jt);n=c.pop();)if(l&&(n.value=+n.data.value),(o=t(n.data))&&(a=o.length))for(n.children=new Array(a),i=a-1;i>=0;--i)c.push(r=n.children[i]=new en(o[i])),r.parent=n,r.depth=n.depth+1;return u.eachBefore(Zt)}function Jt(e){return e.children}function Qt(e){e.data=e.data.data}function Zt(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function en(e){this.data=e,this.depth=this.height=0,this.parent=null}function tn(e){if(\"function\"!=typeof e)throw new Error;return e}en.prototype=Xt.prototype={constructor:en,count:function(){return this.eachAfter(Gt)},each:function(e){var t,n,r,o,i=this,a=[i];do{for(t=a.reverse(),a=[];i=t.pop();)if(e(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r])}while(a.length);return this},eachAfter:function(e){for(var t,n,r,o=this,i=[o],a=[];o=i.pop();)if(a.push(o),t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n]);for(;o=a.pop();)e(o);return this},eachBefore:function(e){for(var t,n,r=this,o=[r];r=o.pop();)if(e(r),t=r.children)for(n=t.length-1;n>=0;--n)o.push(t[n]);return this},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){var e=[];return this.each((function(t){e.push(t)})),e},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Xt(this).eachBefore(Qt)}};var nn={depth:-1},rn={};function on(e){return e.id}function an(e){return e.parentId}function un(e,t){\"/\"===e.charAt(0)&&(e=e.substring(1));for(var n,r=e.split(\"/\"),o=t,i=0;i<r.length;i++){if(\"*\"===r[i]&&Array.isArray(o)){var a=[];n=r.slice(i+1).join(\"/\");for(var u=0;u<o.length;u++){var l=un(n,o[u]);Array.isArray(l)?a.push.apply(a,Pt(l)):a.push(l)}return a}if(!r[i]&&Array.isArray(o)){var c=new Array(o.length);n=r.slice(i+1).join(\"/\");for(var s=0;s<o.length;s++)c[s]=un(n,o[s]);return c}r[i]in o&&(o=o[r[i]])}return o}function ln(e,t,n){var r=[];if(!e||!e.length)return r;if(t<=0){var o=n>=0?[e[n]]:e;r.push.apply(r,Pt(o))}else for(var i=0;i<e.length;i++)e[i].children&&e[i].children.length&&r.push.apply(r,Pt(ln(e[i].children,t-1,n)));return r}function cn(e,t,n){if(e===t)return function(e){return e};if(e>t){var r=Math.max(0,Math.min(100,e-t)),o=Pt(Array(r)).map(String.prototype.valueOf,\"parent\").join(\".\");return Function(\"node\",\"return node.\".concat(o,\";\"))}if(t>e){var i=Math.max(0,Math.min(100,t-e));return function(e){return ln(e.children,i-1,n)}}return!1}function sn(e,t){var n=t.cache;if(\"number\"==typeof e)return n.fields[e];var r=n.allFields;if(\"function\"==typeof e){for(var o=0;o<r.length;o++)if(e(r[o]))return r[o];return!1}if(\"string\"==typeof e){for(var i=0;i<r.length;i++)if(r[i].key()===e||r[i].title()===e)return r[i]}else if(e&&-1!==r.indexOf(e))return e;throw Error(\"Field not found: \".concat(e))}var fn=/^qDimensionInfo(?:\\/(\\d+))?/,dn=/^\\/?qMeasureInfo\\/(\\d+)/,pn=/\\/qAttrExprInfo\\/(\\d+)/,vn=/\\/qAttrDimInfo\\/(\\d+)/;function hn(e){return(e.qColumnOrder&&e.qColumnOrder.length?e.qColumnOrder:e.qDimensionInfo.map((function(e,t){return t}))).filter((function(t){return t<e.qDimensionInfo.length}))}function mn(e,t){var n=t.cube;if(!e)return-1;var r=e.origin&&e.origin()?e.origin().key():e.key(),o=!1,i=-1,a=-1,u=-1,l=-1,c=-1,s=r,f=n.qEffectiveInterColumnSortOrder,d=hn(n);return fn.test(s)&&(o=!0,i=+fn.exec(s)[1],s=r.replace(fn,\"\")),dn.test(s)&&(\"K\"===n.qMode?l=+dn.exec(s)[1]:f&&-1!==f.indexOf(-1)?(l=+dn.exec(s)[1],c=0):c=+dn.exec(s)[1],s=s.replace(dn,\"\")),s&&(vn.exec(s)?u=+vn.exec(s)[1]:pn.exec(s)&&(a=+pn.exec(s)[1])),{fieldDepth:(o?\"S\"===n.qMode?d[i]:f?f.indexOf(i):i:f&&-1!==f.indexOf(-1)?f.indexOf(-1):n.qDimensionInfo.length-(\"K\"===n.qMode?0:1))+1,pseudoMeasureIndex:l,measureIdx:c,attrDimIdx:u,attrIdx:a}}function yn(e,t){var n,r,o=cn(e.fieldDepth,t.fieldDepth,t.pseudoMeasureIndex);return n=t.measureIdx>=0?function(e){return e.data.qValues[t.measureIdx]}:function(e){return e.data},t.attrDimIdx>=0?r=function(e){var n;return null==e||null===(n=e.qAttrDims)||void 0===n?void 0:n.qValues[t.attrDimIdx]}:t.attrIdx>=0&&(r=function(e){var n;return null==e||null===(n=e.qAttrExps)||void 0===n?void 0:n.qValues[t.attrIdx]}),{nodeFn:o,attrFn:r,valueFn:n}}function gn(e,t,n){var r=n.key,o={value:\"function\"==typeof e.value?e.value(t):void 0!==e.value?e.value:t};return o.label=\"function\"==typeof e.label?e.label(t):void 0!==e.label?String(e.label):String(o.value),e.field&&(o.source={key:r,field:e.field.key()}),o}function bn(e){for(var t=e.propsArr,n=e.props,r=e.item,o=e.itemData,i=e.ret,a=e.sourceKey,u=0;u<t.length;u++){var l=n[t[u]],c=l.fields||[l],s=void 0,f=void 0;l.fields&&(s=[],f=[]);for(var d=function(e){var n=c[e],d=void 0,p=void 0,v=void 0,h=void 0,m=void 0,y=void 0;if(\"primitive\"===n.type?(v=n.value,y=String(n.value)):(\"function\"==typeof n.value&&(d=function(e){return n.value(e,r)}),\"function\"==typeof n.label&&(p=function(e){return n.label(e,r)}),n.accessor?(h=n.accessor(r),Array.isArray(h)?(m=h.map(n.valueAccessor),n.attrAccessor&&(m=m.map(n.attrAccessor)),d&&(v=m.map(d),d=null),p&&(y=m.map(p),p=null),v=n.reduce?n.reduce(v):v,y=n.reduceLabel?n.reduceLabel(y,v):String(v)):y=v=n.attrAccessor?n.attrAccessor(n.valueAccessor(h)):n.valueAccessor(h)):(v=o,y=o)),l.fields){var g=d?d(v):v;s.push(g),f.push(p&&null!=y?p(y):null!=y?y:String(g))}else{var b=d?d(v):v;i[t[u]]={value:b,label:p?p(y):null!=y?y:String(b)},n.field&&(i[t[u]].source={field:n.field.key(),key:a})}},p=0;p<c.length;p++)d(p);s&&(i[t[u]]={value:\"function\"==typeof l.value?l.value(s,r):s,label:\"function\"==typeof l.label?l.label(f,r):f})}}var xn=function(e,t,n){var r=\"K\"===e.qMode?\"/qStackedDataPages/*/qData\":\"/qTreeDataPages/*\",o=\"K\"===e.qMode?\"qSubNodes\":\"qNodes\",i=un(r,e);return i&&i[0]?(t.tree=Xt(i[0],n.children||function(e){return e[o]}),t.tree):null};function qn(e){for(var t=e.raw().qDataPages.length?e.raw().qDataPages[0].qMatrix:[],n=function(e){var t=e.raw().qColumnOrder,n=e.fields();return t&&t.length===n.length?t:n.map((function(e,t){return t}))}(e),r=e.fields(),o=e.fields().filter((function(e){return\"dimension\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),i=e.fields().filter((function(e){return\"measure\"===e.type()})).map((function(e){return n.indexOf(r.indexOf(e))})),a={__root:{__id:\"__root\",qValues:[]}},u=0;u<t.length;u++){for(var l=t[u],c=\"__root\",s=!1,f=0;f<o.length;f++){var d=l[o[f]],p=\"\".concat(c,\"__\").concat(d.qText);a[p]||(a[p]=It({__id:p,__parent:c,qValues:[]},d),s=!0),c=p}if(s)for(var v=0;v<i.length;v++){var h=l[i[v]];a[c].qValues.push(h)}}var m=Object.keys(a).map((function(e){return a[e]})),y=function(){var e=on,t=an;function n(n){var r,o,i,a,u,l,c,s=n.length,f=new Array(s),d={};for(o=0;o<s;++o)r=n[o],u=f[o]=new en(r),null!=(l=e(r,o,n))&&(l+=\"\")&&(d[c=\"$\"+(u.id=l)]=c in d?rn:u);for(o=0;o<s;++o)if(u=f[o],null!=(l=t(n[o],o,n))&&(l+=\"\")){if(!(a=d[\"$\"+l]))throw new Error(\"missing: \"+l);if(a===rn)throw new Error(\"ambiguous: \"+l);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(i)throw new Error(\"multiple roots\");i=u}if(!i)throw new Error(\"no root\");if(i.parent=nn,i.eachBefore((function(e){e.depth=e.parent.depth+1,--s})).eachBefore(Zt),i.parent=null,s>0)throw new Error(\"cycle\");return i}return n.id=function(t){return arguments.length?(e=tn(t),n):e},n.parentId=function(e){return arguments.length?(t=tn(e),n):t},n}().id((function(e){return e.__id})).parentId((function(e){return e.__parent}))(m);return y}var wn=function(e){for(var t=e.propsArr,n=e.props,r=e.cube,o=e.cache,i=e.itemDepthObject,a=e.f,u=0;u<t.length;u++)for(var l=n[t[u]],c=l.fields?l.fields:[l],s=0;s<c.length;s++){var f=c[s];if(f.field!==a){var d=yn(i,mn(f.field,{cube:r,cache:o}));f.accessor=d.nodeFn,f.valueAccessor=d.valueFn,f.attrAccessor=d.attrFn}}};function Mn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=t.raw(),i=t.key(),a=\"S\"===o.qMode?qn(t):xn(o,n,e);if(!a)return null;for(var u=a.height,l=[],c=0;c<=u;c++){var s=null;if(c>0)if(\"S\"===o.qMode){var f=hn(o),d=f[c-1];s=n.fields[d]}else{var p=o.qEffectiveInterColumnSortOrder[c-1];c>o.qEffectiveInterColumnSortOrder.length&&(p=o.qDimensionInfo.length),s=n.fields[p]}var v=r.normalizeConfig(It(It({},e),{},{field:s?s.key():void 0}),t),h=v.props,m=v.main,y=Object.keys(h);l[c]={propsArr:y,props:h,main:m};var g=s?mn(s,{cube:o,cache:n}):{fieldDepth:0};wn({propsArr:y,props:h,cube:o,cache:n,itemDepthObject:g,f:s})}for(var b=a.copy(),x=b.descendants(),q=a.descendants(),w=0;w<q.length;w++){var M=l[q[w].depth].propsArr,k=l[q[w].depth].props,C=l[q[w].depth].main,D=x[w],S=D.data,I=gn(C,S,{key:i});bn({propsArr:M,props:k,item:D,itemData:S,ret:I,sourceKey:i,isTree:!0}),q[w].data=I}return a}function kn(e,t,n,r){for(var o=Array.isArray(e)?e:[e],i=[],a=0;a<o.length;a++)if(void 0!==o[a].field){var u=t.raw(),l=t.key();if(!xn(u,n,e))continue;var c=\"object\"===wt(o[a].field)?o[a].field:t.field(o[a].field),s=r.normalizeConfig(o[a],t),f=s.props,d=s.main,p=Object.keys(f),v=mn(c,{cube:u,cache:n}),h=yn({fieldDepth:0},v),m=h.nodeFn,y=h.attrFn,g=h.valueFn;wn({propsArr:p,props:f,cube:u,cache:n,itemDepthObject:v,f:c});for(var b=!!o[a].trackBy,x=wt(o[a].trackBy),q={},w=[],M=m(n.tree),k=[],C=0;C<M.length;C++){var D=M[C],S=y?y(g(D)):g(D);if(!(d.filter&&!d.filter(S))){var I=gn(d,S,{key:l});bn({propsArr:p,props:f,item:D,itemData:S,ret:I,sourceKey:l}),b&&r.track({cfg:o[a],itemData:S,obj:I,target:w,tracker:q,trackType:x}),k.push(I)}}b?i.push.apply(i,Pt(r.collect(w,{main:d,propsArr:p,props:f}))):i.push.apply(i,k)}return i}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var Cn,Dn,Sn=(Cn=function(e){\n/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\ne.exports=function(e,t){if(!e||isNaN(+t))return t;var n,r,o,i,a,u,l,c,s,f,d=e.length,p=e.search(/[0-9\\-\\+#]/),v=p>0?e.substring(0,p):\"\",h=e.split(\"\").reverse().join(\"\"),m=h.search(/[0-9\\-\\+#]/),y=d-m,g=e.substring(y,y+1),b=y+(\".\"===g||\",\"===g?1:0),x=m>0?e.substring(b,d):\"\";if(n=(t=\"-\"===(e=e.substring(p,b)).charAt(0)?-t:+t)<0?t=-t:0,o=(r=e.match(/[^\\d\\-\\+#]/g))&&r[r.length-1]||\".\",i=r&&r[1]&&r[0]||\",\",e=e.split(o),t=+(t=t.toFixed(e[1]&&e[1].length))+\"\",u=e[1]&&e[1].lastIndexOf(\"0\"),(!(c=t.split(\".\"))[1]||c[1]&&c[1].length<=u)&&(t=(+t).toFixed(u+1)),s=e[0].split(i),e[0]=s.join(\"\"),(a=e[0]&&e[0].indexOf(\"0\"))>-1)for(;c[0].length<e[0].length-a;)c[0]=\"0\"+c[0];else 0==+c[0]&&(c[0]=\"\");if((t=t.split(\".\"))[0]=c[0],l=s[1]&&s[s.length-1].length){for(h=\"\",y=(f=t[0]).length%l,d=f.length,b=0;b<d;b++)h+=f.charAt(b),!((b-y+1)%l)&&b<d-l&&(h+=i);t[0]=h}return t[1]=e[1]&&t[1]?o+t[1]:\"\",\"0\"!==(r=t.join(\"\"))&&\"\"!==r||(n=!1),v+(n?\"-\":\"\")+r+x}},Cn(Dn={exports:{}},Dn.exports),Dn.exports);function In(e){return e.replace(/[-[\\]/{}()*+?.\\\\^$|]/g,\"\\\\$&\")}var On={3:\"k\",6:\"M\",9:\"G\",12:\"T\",15:\"P\",18:\"E\",21:\"Z\",24:\"Y\",\"-3\":\"m\",\"-6\":\"μ\",\"-9\":\"n\",\"-12\":\"p\",\"-15\":\"f\",\"-18\":\"a\",\"-21\":\"z\",\"-24\":\"y\"},An=/%$/,En=/^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,Nn=/^\\(oct\\)/i,Pn=/^\\(dec\\)/i,Tn=/^\\(hex\\)/i,Ln=/^\\(bin\\)/i,jn=/^\\(rom\\)/i,Fn=/^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,Vn=/#|0/g;function Rn(e,t,n,r){return e=e.toString(t),n[1]===n[1].toUpperCase()&&(e=e.toUpperCase()),e.length-e.indexOf(\".\")>10&&(e=e.slice(0,e.indexOf(\".\")+11)),e.replace(\".\",r||\".\")}function Hn(e,t,n){var r;return En.test(t)?e=Rn(e,Number(/\\d{2}/.exec(t)[0]),t,n):Nn.test(t)?e=Rn(e,8,t,n):Pn.test(t)?e=Rn(e,10,t,n):Tn.test(t)?e=Rn(e,16,t,n):Ln.test(t)?e=Rn(e,2,t,n):jn.test(t)&&(r=\"\",e<0&&(r=\"-\",e=-e),0===(e=Math.floor(e))?e=\"0\":e<=5e5?(e=function(e,t){for(var n,r=\"\",o=Number(String(e).slice(-3)),i=(e-o)/1e3,a=[0,1,4,5,9,10,40,50,90,100,400,500,900].reverse(),u=[\"0\",\"I\",\"IV\",\"V\",\"IX\",\"X\",\"XL\",\"L\",\"XC\",\"C\",\"CD\",\"D\",\"CM\"].reverse();o>0;)for(n=0;n<a.length;n++)if(a[n]<=o){r+=u[n],o-=a[n];break}for(n=0;n<i;n++)r=\"M\".concat(r);return t[1]!==t[1].toUpperCase()&&(r=r.toLowerCase()),r}(e,t),e=r+e):e=t+r+e.toExponential(0)),e}function zn(e,t,n){var r=In(e);return n?r:new RegExp(r||\"\",t)}function Bn(e,t,n){var r,o,i,a,u,l,c,s,f,d,p,v=e.pattern;v.indexOf(\"A\")>=0&&(v=v.replace(\"A\",\"\"),e.abbreviate=!0),d=t,(p=n)&&(p=In(p)),d&&(d=In(d)),f=new RegExp(\"(?:[#0]+\".concat(d,\")?[#0]+(?:\").concat(p,\"[#0]+)?\")),a=(i=(i=v.match(f))?i[0]:\"\")?v.substr(0,v.indexOf(i)):v,u=i?v.substring(v.indexOf(i)+i.length):\"\",i||(i=v?\"#\":\"##########\"),t&&t===n&&(o=(r=i.split(n)).pop(),i=r.join(\"\")+n+o,t=\"\"),l=t,t=/,/.test(n)?\"¤\":\",\",l&&(i=i.replace(zn(l,\"g\"),t)),c=n,n=\".\",c&&(i=i.replace(zn(c,\"g\"),n)),s=(s=i.match(/#/g))?s.length:0;var h,m=v.split(c);m[1]&&(h=m[1].match(Vn)),e.prefix=a||\"\",e.postfix=u||\"\",e.pattern=v,e.maxPrecision=h?h.length:2,e.percentage=An.test(v),e.numericPattern=i||\"\",e.numericRegex=new RegExp(\"\".concat(zn(t,null,!0),\"|\").concat(zn(n,null,!0)),\"g\"),e.groupTemp=l,e.decTemp=c,e.t=t,e.d=n,e.temp=s}var _n=function(){function e(t,n,r,o,i){Mt(this,e),this.localeInfo=t,this.pattern=n,this.thousandDelimiter=r||\",\",this.decimalDelimiter=o||\".\",this.type=i||\"numeric\",this.patternSeparator=\";\",this.abbreviations=function(e,t){if(!e||!e.qNumericalAbbreviation)return On;var n={};return e.qNumericalAbbreviation.split(t).forEach((function(e){var t=e.split(\":\");2===t.length&&(n[t[0]]=t[1])})),n}(t,this.patternSeparator),this.prepare()}return Ct(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern,this.thousandDelimiter,this.decimalDelimiter,this.type);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t,n,r){return this.prepare(t,n,r),this.formatValue(e)}},{key:\"prepare\",value:function(e,t,n){var r;void 0===e&&(e=this.pattern),void 0===t&&(t=this.thousandDelimiter),void 0===n&&(n=this.decimalDelimiter),e?(this._prepared={positive:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},negative:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"},zero:{d:n,t:t,abbreviate:!1,isFunctional:!1,prefix:\"\",postfix:\"\"}},r=this._prepared,e=e.split(this.patternSeparator),r.positive.pattern=e[0],r.negative.pattern=e[1],r.zero.pattern=e[2],Fn.test(e[0])&&(r.positive.isFunctional=!0),e[1]?Fn.test(e[1])&&(r.negative.isFunctional=!0):r.negative=!1,e[2]?Fn.test(e[2])&&(r.zero.isFunctional=!0):r.zero=!1,r.positive.isFunctional||Bn(r.positive,t,n),r.negative&&!r.negative.isFunctional&&Bn(r.negative,t,n),r.zero&&!r.zero.isFunctional&&Bn(r.zero,t,n)):this._prepared={pattern:!1}}},{key:\"formatValue\",value:function(e){var t,n,r,o,i,a,u,l,c,s=this._prepared,f=\"\",d=\"\",p=e;if(isNaN(e))return\"\".concat(p);if(e=+e,!1===s.pattern)return e.toString();if(0===e&&s.zero)return(s=s.zero).pattern;if(e<0&&s.negative?(s=s.negative,e=-e):s=s.positive,i=s.d,a=s.t,s.isFunctional)e=Hn(e,s.pattern,i);else{if(s.percentage&&(e*=100),s.abbreviate){var v,h,m=Object.keys(this.abbreviations).map((function(e){return parseInt(e,10)})).sort((function(e,t){return e-t})),y=m[0];for(u=0,n=Number(Number(e).toExponential().split(\"e\")[1]);y<=n&&u<m.length;)y=m[++u];u>0&&(v=m[u-1]),v&&n>0&&v>0?h=v:(n<0&&v<0||!v)&&(y<0&&y-n<=s.maxPrecision?h=y:v<=n&&!(y>0&&-n<=s.maxPrecision)&&(h=v)),h&&(f=this.abbreviations[h],e/=Math.pow(10,h))}if(r=Math.abs(e),t=s.temp,c=(l=s.numericPattern).split(i)[1],\"I\"===this.type&&(e=Math.round(e)),o=e,c||\"#\"!==l.slice(-1)[0])if(r>=1e15||r>0&&r<=1e-14)e=r?r.toExponential(15).replace(/\\.?0+(?=e)/,\"\"):\"0\";else{var g=Number(e.toFixed(Math.min(20,c?c.length:0)).split(\".\")[0]),b=l.split(i)[0];if(e=Sn(b+=i,g)||\"0\",c){var x=Math.max(0,Math.min(14,c.length)),q=c.replace(/#+$/,\"\").length,w=(\"I\"===this.type?0:r%1).toFixed(x).slice(2).replace(/0+$/,\"\");for(u=w.length;u<q;u++)w+=\"0\";w&&(e+=i+w)}else 0===g&&(o=0)}else if(r>=Math.pow(10,t)||r<1||r<1e-4)0===e?e=\"0\":r<1e-4||r>=1e20?(e=(e=o.toExponential(Math.max(1,Math.min(14,t))-1)).replace(/\\.?0+(?=e)/,\"\"),d=\"\"):(e=e.toPrecision(Math.max(1,Math.min(14,t)))).indexOf(\".\")>=0&&(e=(e=e.replace(e.indexOf(\"e\")<0?/0+$/:/\\.?0+(?=e)/,\"\")).replace(\".\",i));else{for(l+=i,t=Math.max(0,Math.min(20,t-Math.ceil(Math.log(r)/Math.log(10)))),u=0;u<t;u++)l+=\"#\";e=Sn(l,e)}e=e.replace(s.numericRegex,(function(e){return e===a?s.groupTemp:e===i?s.decTemp:\"\"})),o<0&&!/^-/.test(e)&&(e=\"-\".concat(e))}return s.prefix+e+d+f+s.postfix}}],[{key:\"getStaticFormatter\",value:function(){return{prepare:function(){},formatValue:function(e){return\"\".concat(e)}}}}]),e}();function Yn(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.size,i=void 0===o?5e3:o,a=r.multipleArguments,u=void 0!==a&&a,l=r.toKey,c=void 0===l?function(e){return e}:l,s=Object.create(null),f=Object.create(null),d=0,p=0;return t=u?function(){return n=c.apply(void 0,arguments),t.has(n)?t.get(n):t.set(n,e.apply(void 0,arguments))}:function(r){return n=c(r),t.has(n)?t.get(n):t.set(n,e(r))},t.set=function(e,t){return d>=i&&(delete s[f[p]],delete f[p],d--,p++),s[e]=t,f[d]=e,d++,t},t.get=function(e){return s[e]},t.has=function(e){return e in s},t.clear=function(){s=Object.create(null),f=Object.create(null),d=0,p=0},t.size=function(){return d},t}function Un(e,t,n,r,o){var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Et(_n,t)}(o,e,t,n,r),a=Yn(i.formatValue.bind(i),{toKey:function(e){return isNaN(e)?e:+e}});function u(e){return a(e)}return u.format=function(e,t,n,r){return a.clear(),i.format(t,e,n,r)},u.pattern=function(e){return e&&(a.clear(),i.pattern=e,i.prepare()),i.pattern},u}var Kn=\"D\",Wn=\"T\",$n=\"TS\",Gn=\"IV\",Xn=[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"],Jn=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"],Qn=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],Zn=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function er(e,t){for(var n=e.length;n<t;n++)e=\"0\".concat(e);return e}function tr(e){var t=e.toString().split(\".\");return t[1]?t=Number(\"0.\".concat(t[1])):0}function nr(e,t){var n,r=function(e){var t=e,n=24*tr(t),r=60*tr(n),o=60*tr(r),i=1e3*tr(o);return{d:Math.floor(t),h:Math.floor(n),m:Math.floor(r),s:Math.floor(o),f:Math.round(i)}}(e),o=r.d,i=r.h,a=r.m,u=r.s,l=r.f,c=0;/w+|t+/gi.test(t)&&(n=new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,Math.round(86400*(e-Math.floor(e))))),isNaN(n.getTime())&&(n=null)),/D+/gi.test(t)||(i+=24*o),/h+/gi.test(t)||(a+=60*i),/m+/gi.test(t)||(u+=60*a),/w+/gi.test(t)&&(c=n?n.getDay()-1:0)<0&&(c=6);var s=\"\";return n&&(s=n.getUTCHours()>=12?\"pm\":\"am\"),{year:0,month:0,day:c,date:o,h:i,m:a,s:u,f:l,t:s}}var rr=function(){function e(t,n,r){Mt(this,e);var o,i=t||{};(i.qCalendarStrings||(i.qCalendarStrings={qLongDayNames:Xn,qDayNames:Jn,qLongMonthNames:Qn,qMonthNames:Zn}),this.localeInfo=i,this.locale_days=i.qCalendarStrings.qLongDayNames.slice(),this.locale_days_abbr=i.qCalendarStrings.qDayNames.slice(),this.locale_months=i.qCalendarStrings.qLongMonthNames.slice(),this.locale_months_abbr=i.qCalendarStrings.qMonthNames.slice(),n)||(n=(Dt(o={},Wn,i.qTimeFmt||\"hh:mm:ss\"),Dt(o,Kn,i.qDateFmt||\"YYYY-MM-DD\"),Dt(o,$n,i.qTimestampFmt||\"YYYY-MM-DD hh:mm:ss\"),o)[r]);this.pattern=n}return Ct(e,[{key:\"clone\",value:function(){var t=new e(this.localeInfo,this.pattern);return t.subtype=this.subtype,t}},{key:\"format\",value:function(e,t){t||(t=this.pattern?this.pattern:\"YYYY-MM-DD hh:mm:ss\"),t=t.replace(/\\[.+]|\\[|]/g,\"\");var n,r,o,i,a,u=/t+/gi.test(t);e instanceof Date?(o=u,i=(r=e).getUTCHours(),a=r.getUTCDay()-1,o&&((i%=12)||(i=12)),a<0&&(a=6),n={year:r.getUTCFullYear(),month:r.getUTCMonth(),day:a,date:r.getUTCDate(),h:i,m:r.getUTCMinutes(),s:r.getUTCSeconds(),f:r.getUTCMilliseconds(),t:r.getUTCHours()>=12?\"pm\":\"am\"}):(e<0&&(e=-e,t=\"-\".concat(t)),n=nr(e,t));var l=function(e,t){return{\"Y+|y+\":{Y:\"\".concat(Number(\"\".concat(t.year).slice(-2))),YY:er(\"\".concat(t.year).slice(-2),2),YYY:er(\"\".concat(t.year).slice(-3),3),def:function(e){return er(\"\".concat(t.year),e.length)}},\"M+\":{M:t.month+1,MM:er(\"\".concat(t.month+1),2),MMM:e.locale_months_abbr[t.month],def:e.locale_months[t.month]},\"W+|w+\":{W:t.day,WW:er(\"\".concat(t.day),2),WWW:e.locale_days_abbr[t.day],def:e.locale_days[t.day]},\"D+|d+\":{D:t.date,def:function(e){return er(\"\".concat(t.date),e.length)}},\"h+|H+\":{h:t.h,def:function(e){return er(\"\".concat(t.h),e.length)}},\"m+\":{m:t.m,def:function(e){return er(\"\".concat(t.m),e.length)}},\"s+|S+\":{s:t.s,def:function(e){return er(\"\".concat(t.s),e.length)}},\"f+|F+\":{def:function(e){var n=\"\".concat(t.f),r=e.length-n.length;if(r>0)for(var o=0;o<r;o++)n+=\"0\";else r<0&&(n=n.slice(0,e.length));return n}},\"t{1,2}|T{1,2}\":{def:function(e){var n=t.t;return e[0].toUpperCase()===e[0]&&(n=n.toUpperCase()),n.slice(0,e.length)}}}}(this,n),c=[];for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&c.push(s);var f=new RegExp(c.join(\"|\"),\"g\"),d=t.replace(f,(function(e){var t,n,r;for(n in l)if(Object.prototype.hasOwnProperty.call(l,n)&&(t=new RegExp(n)).test(e))break;if(!t)return\"\";for(var o in l[n])if(o===e||o.toLowerCase()===e){void 0===(r=l[n][o])&&(r=l[n][o.toLowerCase()]);break}return void 0===r&&(r=l[n].def),\"function\"==typeof r&&(r=r(e)),r}));return d}}]),e}();function or(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Et(rr,t)}function ir(e){return new Date(Date.UTC(1899,11,30+Math.floor(e),0,0,0,Math.round(864e5*(e-Math.floor(e)))))}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"TS\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=or(n,e,t),o=Yn(r.format.bind(r),{toKey:function(e){return\"object\"===wt(e)&&\"function\"==typeof e.getTime?e.getTime():e}});function i(e){return t!==Gn?ir(e):e}function a(e){return e=i(e),o(e)}return a.format=function(e,t){return o.clear(),t=i(t),r.format(t,e)},a.locale=function(n){return r=or(n,e,t),o=Yn(r.format.bind(r),{toKey:function(e){return\"object\"===wt(e)?e.getTime():e}}),this},a.qtype=function(e){return void 0!==e&&(t=e,o.clear()),t},a}function ur(e,t){if(e&&e.qNumFormat&&-1!==[\"D\",\"T\",\"TS\",\"IV\"].indexOf(e.qNumFormat.qType))return ar(e.qNumFormat.qFmt,e.qNumFormat.qType,t);var n=\"#\",r=t&&void 0!==t.qThousandSep?t.qThousandSep:\",\",o=t&&void 0!==t.qDecimalSep?t.qDecimalSep:\".\",i=\"U\",a=e&&!!e.qIsAutoFormat;return e&&e.qNumFormat?(n=e.qNumFormat.qFmt||n,r=e.qNumFormat.qThou||r,o=e.qNumFormat.qDec||o,i=e.qNumFormat.qType||i,a=a&&-1===[\"M\"].indexOf(e.qNumFormat.qType)):a=!0,(a||\"U\"===i)&&(n=\"#\".concat(o,\"##A\"),i=\"U\"),Un(n,r,o,i,t)}function lr(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.meta,r=t.id,o=t.key,i=t.localeInfo,a=t.fieldExtractor,u=t.value,l=t.type,c=t.sourceField,s=u||(\"dimension\"===l?function(e){return e.qElemNo}:function(e){return e.qValue}),f=function(e){return e.qText||\"\"},d=\"dimension\"===l?\"first\":\"avg\",p=ur(n,i),v=\"dimension\"===l?\"first\":function(e,t){return p(t)},h={id:function(){return r},key:function(){return o},raw:function(){return n},title:function(){return n.qFallbackTitle||n.label},type:function(){return l},origin:function(){return c},items:function(){return e||(e=a(h)),e},min:function(){return n.qMin},max:function(){return n.qMax},value:s,label:f,reduce:d,reduceLabel:v,formatter:function(){return p},tags:function(){return n.qTags}};return h}function cr(e,t,n,r,o){return(t[e]||[]).map((function(t,i){var a=\"\".concat(r?\"\".concat(r,\"/\"):\"\").concat(e,\"/\").concat(i),u={instance:lr(Yt({id:\"\".concat(n?\"\".concat(n,\"/\"):\"\").concat(a),key:a,meta:t},o))};return u.attrDims=cr(\"qAttrDimInfo\",t,n,a,Yt({},o,{value:function(e){return e.qElemNo},type:\"dimension\"})),u.attrExps=cr(\"qAttrExprInfo\",t,n,a,Yt({},o,{value:function(e){return e.qNum},type:\"measure\"})),u.measures=cr(\"qMeasureInfo\",t,n,a,Yt({},o,{value:function(e){return e.qValue},type:\"measure\"})),u}))}function sr(){var e,t,n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=r.key,i=r.data,a=r.config,u=void 0===a?{}:a,l={fields:[],wrappedFields:[],allFields:[],virtualFields:[]},c=i;if(!c)throw new Error('Missing \"data\" input');if(!c.qDimensionInfo)throw new Error('The \"data\" input is not recognized as a hypercube');var s=sr.util,f={cache:l,cube:c,localeInfo:u.localeInfo,fieldExtractor:null,pages:null,hierarchy:function(){return null},virtualFields:u.virtualFields},d={key:function(){return o},raw:function(){return c},field:function(e){return sn(e,f)},fields:function(){return l.fields.slice()},extract:function(e){return f.extractor(e,d,l,s)},hierarchy:function(e){return f.hierarchy(e,d,l,s)},_cache:function(){return l}};\"K\"===c.qMode||\"T\"===c.qMode||!c.qMode&&c.qNodesOnDim?(f.extractor=kn,f.hierarchy=Mn,f.pages=\"K\"===c.qMode?c.qStackedDataPages:c.qTreeDataPages):\"S\"===c.qMode?(f.extractor=$t,f.pages=c.qDataPages,f.hierarchy=Mn):f.extractor=function(){return[]},f.fieldExtractor=function(e){return f.extractor({field:e},d,l,s)};var p=\"S\"===c.qMode?function(e){return e.qElemNumber}:void 0,v=\"S\"===c.qMode?function(e){return e.qNum}:void 0;(e=l.wrappedFields).push.apply(e,Pt(cr(\"qDimensionInfo\",c,o,\"\",Yt({},f,{value:p,type:\"dimension\"})))),(t=l.wrappedFields).push.apply(t,Pt(cr(\"qMeasureInfo\",c,o,\"\",Yt({},f,{value:v,type:\"measure\"})))),l.fields=l.wrappedFields.map((function(e){return e.instance}));var h=function e(t){t.forEach((function(t){l.allFields.push(t.instance),e(t.measures),e(t.attrDims),e(t.attrExps)}))};return h(l.wrappedFields),(u.virtualFields||[]).forEach((function(e){var t=d.field(e.from),n=lr(It({meta:t.raw(),id:\"\".concat(o,\"/\").concat(e.key),sourceField:t,fieldExtractor:function(e){return f.extractor({field:e},d,l,s)},key:e.key,type:t.type(),localeInfo:f.localeInfo,value:t.value},e.override||{}));l.virtualFields.push(n)})),(n=l.allFields).push.apply(n,Pt(l.virtualFields)),d}var fr=[[\"qHyperCube\",\"qHyperCubeDef\"],[\"qTreeData\",\"qTreeDataDef\"],[\"qDimensionInfo\",\"qDimensions\"],[\"qMeasureInfo\",\"qMeasures\"],[\"qAttrDimInfo\",\"qAttributeDimensions\"],[\"qAttrExprInfo\",\"qAttributeExpressions\"]],dr=/\\/qDimensionInfo(?:\\/(\\d+))?/,pr=/\\/qMeasureInfo\\/(\\d+)/,vr=/\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/,hr=/\\/qAttrExprInfo\\/(\\d+)/,mr=/\\/?qHyperCube/,yr=/\\/?qTreeData/,gr=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qHyperCubeDef\")+14))},br=function(e){return\"\".concat(e.substr(0,e.indexOf(\"/qTreeDataDef\")+13))};function xr(e,t){var n=e,r=-1,o=-1,i=\"\",a=function(e){return e};mr.test(e)?(i=\"\".concat(n.substr(0,n.indexOf(\"qHyperCube\")+10)),a=gr):yr.test(e)&&(i=\"\".concat(n.substr(0,n.indexOf(\"qTreeData\")+9)),a=br);var u=!0;if(dr.test(e)&&(r=+dr.exec(e)[1]),pr.test(e)&&(o=+pr.exec(e)[1]),vr.test(e)){o=-1,r=0;var l=+vr.exec(n)[2];isNaN(l)||(r=l,n=n.replace(/\\/\\d+$/,\"\")),u=!1}if(hr.test(e)){var c=o;if(t){o=0;var s=un(i,t);o+=(s.qMeasureInfo||[]).length,r>-1?(o=s.qDimensionInfo.slice(0,r).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),r=-1):(o=s.qDimensionInfo.reduce((function(e,t){return e+t.qAttrExprInfo.length}),o),o=s.qMeasureInfo.slice(0,c).reduce((function(e,t){return e+t.qAttrExprInfo.length}),o)),o+=+hr.exec(n)[1]}else r>-1?(r=-1,o=+hr.exec(n)[1]):o+=+hr.exec(n)[1]+1}return fr.forEach((function(e){var t=Nt(e,2),r=t[0],o=t[1];n=n.replace(r,o)})),u&&(n=a(n)),n&&\"/\"!==n[0]&&(n=\"/\".concat(n)),{measureIdx:o,dimensionIdx:r,path:n}}function qr(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=n.byCells,i=n.primarySource,a=[],u={},l=e.isActive(),c=!1;if(e.brushes().forEach((function(e){var t=xr(e.id,r);if(\"range\"===e.type&&t.measureIdx>-1&&t.dimensionIdx>-1){var n=e.brush.ranges();n.length&&(c=!0,u.multiRangeSelectTreeDataValues||(u.multiRangeSelectTreeDataValues={path:t.path,ranges:[]}),n.forEach((function(e){return u.multiRangeSelectTreeDataValues.ranges.push({qMeasureIx:t.measureIdx,qDimensionIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}else{if(\"range\"===e.type&&t.measureIdx>-1){var l=e.brush.ranges();l.length&&(c=!0,u.rangeSelectHyperCubeValues||(u.rangeSelectHyperCubeValues={path:t.path,ranges:[]}),l.forEach((function(e){return u.rangeSelectHyperCubeValues.ranges.push({qMeasureIx:t.measureIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!0}})})))}if(\"range\"===e.type&&t.dimensionIdx>-1){var s=e.brush.ranges();s.length&&(c=!0,u.selectHyperCubeContinuousRange||(u.selectHyperCubeContinuousRange={path:t.path,ranges:[]}),s.forEach((function(e){return u.selectHyperCubeContinuousRange.ranges.push({qDimIx:t.dimensionIdx,qRange:{qMin:e.min,qMax:e.max,qMinInclEq:!0,qMaxInclEq:!1}})})))}if(\"value\"===e.type&&t.dimensionIdx>-1)if(o)if(r&&r.qHyperCube&&(\"P\"===r.qHyperCube.qMode||\"T\"===r.qHyperCube.qMode||\"K\"===r.qHyperCube.qMode)){var f=r.qHyperCube,d=f.qNoOfLeftDims,p=f.qEffectiveInterColumnSortOrder.indexOf(t.dimensionIdx);if(u.selectPivotCells||(u.selectPivotCells={path:t.path,cells:[]}),e.id===i||!i){var v=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));(0===d||p>=d)&&d>-1?v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"T\",qCol:e,qRow:p-d})})):v.forEach((function(e){u.selectPivotCells.cells.push({qType:\"L\",qCol:t.dimensionIdx,qRow:e})})),c=!!u.selectPivotCells.cells.length}}else u.selectHyperCubeCells||(u.selectHyperCubeCells={path:t.path,cols:[]}),u.selectHyperCubeCells.cols.push(t.dimensionIdx),e.id!==i&&(i||u.selectHyperCubeCells.values)||(u.selectHyperCubeCells.values=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)})),c=!!u.selectHyperCubeCells.values.length);else{var h=e.brush.values().map((function(e){return+e})).filter((function(e){return!isNaN(e)}));c=!!h.length,a.push({params:[t.path,t.dimensionIdx,h,!1],method:\"selectHyperCubeValues\"})}}})),!c&&l)return[{method:\"resetMadeSelections\",params:[]}];u.rangeSelectHyperCubeValues&&a.push({method:\"rangeSelectHyperCubeValues\",params:[u.rangeSelectHyperCubeValues.path,u.rangeSelectHyperCubeValues.ranges,[],null===(t=n.orMode)||void 0===t||t]});return u.selectHyperCubeContinuousRange&&a.push({method:\"selectHyperCubeContinuousRange\",params:[u.selectHyperCubeContinuousRange.path,u.selectHyperCubeContinuousRange.ranges]}),u.selectHyperCubeCells&&a.push({method:\"selectHyperCubeCells\",params:[u.selectHyperCubeCells.path,u.selectHyperCubeCells.values,u.selectHyperCubeCells.cols]}),u.selectPivotCells&&a.push({method:\"selectPivotCells\",params:[u.selectPivotCells.path,u.selectPivotCells.cells]}),u.multiRangeSelectTreeDataValues&&a.push({method:\"multiRangeSelectTreeDataValues\",params:[u.multiRangeSelectTreeDataValues.path,u.multiRangeSelectTreeDataValues.ranges]}),a}function wr(e){sr.util=e.data(\"matrix\").util,e.data(\"q\",sr),e.formatter(\"q-number\",Un),e.formatter(\"q-time\",ar)}function Mr(e){var t=st(e.layout||{},e.path.split(\"/\").join(\".\"));if(!t)return!1;var n=t.qIsOneAndOnlyOne;return void 0!==n&&n}function kr(e){var t,n,r,o=e.selections,i=e.picassoSelections,a=e.layout,u={lockedDimensions:[],singleSelectDimensions:[]};null!=o&&null!==(t=o.isModal)&&void 0!==t&&t.call(o)&&o.confirm(),i.layout(a);var l=(null!==(n=null==a?void 0:a.qHyperCube)&&void 0!==n?n:{}).qDimensionInfo,c=void 0===l?[]:l;return u.lockedDimensions=c.map((function(e){return!!e.qLocked})),u.singleSelectDimensions=c.map((function(e,t){return Mr({layout:a,path:\"qHyperCube/qDimensionInfo/\".concat(t)})})),u.singleSelectIndex=function(e){var t,n=((null==e?void 0:e.qHyperCube)||{}).qDimensionInfo,r=void 0===n?[]:n;return null!==(t=r.map((function(e,t){var n;return!(e.qLocked||(null===(n=e.qCardinalities)||void 0===n?void 0:n.qHypercubeCardinal)<=1)&&t})).filter((function(e){return\"number\"==typeof e}))[0])&&void 0!==t?t:Math.max(r.length-1,0)}(a),u.canSelect=0===c.length||c.some((function(e){return!e.qLocked})),u.dimensionLocked=!(null===(r=c[0])||void 0===r||!r.qLocked),u}function Cr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(null==t||!t.length)return!1;var n=t.filter((function(t){return\"object\"===e(t.data)&&Array.isArray(t.data.fields)})).every((function(e){return e.data.fields.every((function(e){var t=e.raw();return!(!t.qLocked&&t.qCardinal)}))}));return n}function Dr(e){var t=e.brush,n=e.colorField,r=e.legendAlias,o=e.useLegendCube,i=void 0!==o&&o;!n||/qAttrDimInfo/.test(n)?(t.removeKeyAlias(\"attrDim/qDimensionInfo/0\"),r&&t.removeKeyAlias(r),t.addKeyAlias(\"attrDim/qDimensionInfo/0\",\"qHyperCube/\".concat(n))):i&&t.addKeyAlias(r,\"qHyperCube/\".concat(n))}wr.qBrushHelper=qr,wr.selections=qr;var Sr=\"Enter\",Ir=\"Escape\",Or=\"Esc\",Ar=\"Shift\";function Er(e){var t=e.brush,n=e.getConfig;return{interceptor:function(e){var r=t.brushes(),o=n(),i=o.allowSimultaneous,a=o.layout,u=void 0===a?{}:a;r.forEach((function(n){var r,o,a;(\"range\"===n.type||null!==(r=e[0])&&void 0!==r&&r.key&&(null===(o=e[0])||void 0===o?void 0:o.key)!==n.id&&0!==i.indexOf(null===(a=e[0])||void 0===a?void 0:a.key))&&t.clear([])}));var c=e.filter((function(e){return-2!==e.value}));if(c.length>1){var s=function(e){var t=e.layout,n=void 0===t?{}:t,r=e.values,o=void 0===r?[]:r;if(null==o||!o.length)return[];var i=Array.from(new Set(o.map((function(e){return e.key})))),a=[];return i.forEach((function(e){var t=Mr({layout:n,path:e}),r=o.filter((function(t){return t.key===e})),i=t?[r.pop()]:r;a.push.apply(a,l(i))})),a.filter(Boolean)}({layout:u,values:c});return s}return c},rangeInterceptor:function(e){var r=t.brushes(),o=n().allowSimultaneous;return r.filter((function(e){return\"value\"===e.type})).length?(t.clear([]),e):(r.forEach((function(n){var r=n.id===e[0].key||o.includes(n.id)&&o.includes(e[0].key);\"range\"!==n.type||r||t.clear([])})),e)}}}var Nr=[],Pr=0,Tr=function(e){var t=Nr.filter((function(e){var t;return null===(t=e.selections)||void 0===t?void 0:t.isActive()}));t.length&&(e.key===Sr?t.forEach((function(e){return e.selections.confirm()})):e.key!==Ir&&e.key!==Or||t.forEach((function(e){return e.selections.cancel()})))},Lr=function(){document.addEventListener(\"keyup\",Tr)},jr=function(){document.removeEventListener(\"keyup\",Tr)},Fr=function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},Vr=function(e,t){Object.keys(t).forEach((function(n){e.removeListener(n,t[n])}))};function Rr(e,t,n){if(t&&void 0!==n&&\"selectHyperCubeContinuousRange\"===e.method){var r=e.params;if(r&&r[1]&&r[1][0]){var o=r[1][0],i=o.qDimIx,a=o.qRange;\"undefined\"!==i&&a&&!1===a.qMaxInclEq&&a.qMax>=n&&(a.qMaxInclEq=!0)}}}function Hr(e){var t=e.chart,n=e.document,r=e.selectionInfo,o=e.eventName,i=e.componentName,a=e.brushName,u=void 0===a?\"selection\":a,l=e.emit,c=void 0===l?\"rangeClear\":l,s=r.event===o,f=n.querySelector(\"[data-key='\".concat(i,\"-edge-0']\"));if(s||!f)return!1;var d=t.component(i);return!!d&&(d.emit(c),\"string\"==typeof u&&t.brush(u).clear(),d)}function zr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"discreteRange\":o,a=e.componentName,u=void 0===a?\"discrete-range-brush\":a,l=e.cleared;return Hr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,emit:\"areaClear\",brushName:e.brushName})}function Br(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.eventName,i=void 0===o?\"continuousRange\":o,a=e.componentName,u=void 0===a?\"continuous-range-brush\":a,l=e.cleared;return Hr({selectionInfo:t,chart:n,document:r,eventName:void 0!==l&&l?void 0:i,componentName:u,brushName:e.brushName})}function _r(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.componentName,i=void 0===o?\"minor-range-brush\":o,a=e.eventName,u=void 0===a?\"minorRange\":a,l=e.cleared,c=void 0!==l&&l,s=e.brushName,f=Hr({selectionInfo:t,chart:n,document:r,eventName:c?void 0:u,componentName:i,brushName:void 0!==s&&s});if(f){var d=f.settings.settings,p=d.scale,v=d.brush,h=n.scale(p).data().fields.map((function(e){return e.id()})),m=n.brush(v),y=m.brushes().filter((function(e){return\"range\"===e.type&&h.some((function(t){return t===e.id}))}));m&&y.length&&y.forEach((function(e){m.removeRanges(e.brush.ranges().map((function(t){return{key:e.id,range:t}})))}))}}function Yr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"xAxis\":i,u=e.cleared;Hr({selectionInfo:t,chart:n,document:r,eventName:void 0!==u&&u?void 0:a,componentName:\"\".concat(a,\"-range-brush\"),emit:\"areaClear\",brushName:!1})&&o.clear()}function Ur(e){var t=e.chart,n=e.selectionInfo,r=e.selections,o=e.events,i=void 0===o?[\"tap\"]:o,a=e.brushNames,u=void 0===a?[]:a;if(n&&i.includes(n.event)){var l=n.currentComponent;n.previousComponent!==l&&(r.clear(),u.forEach((function(e){return t.brush(e).end()})))}}function Kr(e){var t=e.selectionInfo,n=e.chart,r=e.document,o=e.selections,i=e.eventName,a=void 0===i?\"legendRange\":i,u=e.componentName,l=void 0===u?\"legend-range-brush\":u,c=e.cleared,s=void 0!==c&&c,f=e.brushName;Hr({selectionInfo:t,chart:n,document:r,eventName:s?void 0:a,componentName:l,brushName:void 0!==f&&f})&&o.clear()}var Wr=function(e){e.chart,e.document,e.selections,e.selectionInfo;var t=a(e,[\"chart\",\"document\",\"selections\",\"selectionInfo\"]);t.clearDiscrete(),t.clearContinuous(),t.clearMinor(),t.clearRange(),t.clearTap(),t.clearLegend()};function $r(e){var t=e.selectionEvents,n=e.selections,r=e.selectionInfo,o=e.clear,a=e.chart,u=e.document,l=t.start,c={selections:n,selectionInfo:r,chart:a,document:u},s=function(e){return Object.assign(r,e||{})},f=function(e){var t=e.event,n=e.components;return function(){return function(e){var t=e.selectionInfo,n=void 0===t?{}:t,r=e.setSelectionInfo,o=e.clear,a=e.event,u=e.components,l=void 0===u?[]:u;r(i(i({},n),{},{event:a,components:l.map((function(e){return e.key})).filter(Boolean)})),o()}({event:t,components:n,clear:o,chart:a,selectionInfo:r,setSelectionInfo:s})}};return\"function\"==typeof l?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];l(i(i({defaultFunc:f({event:e,components:t}),setSelectionInfo:s,clear:o},c),{},{event:e,components:t}))}:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];f({event:e,components:t})()}}function Gr(e){var t,n=e.lasso;null!=n&&null!==(t=n.active)&&void 0!==t&&t.call(n)&&(null==n||n.action(!1))}function Xr(e){var t,n=e.chart,r=e.selectionInfo,o=e.selectionActions,a=e.actions,l=void 0===a?{}:a,c=e.selections,s=e.selectionEvents;if(!1===o||!1===s)return function(){};var f=(l||{}).lasso,d=void 0!==f&&f,p=o.reset,v=void 0===p?Gr:p,h=o.clear,m=!1!==h&&function(e){var t=e.clear,n=void 0===t?Wr:t,r=e.selections,o=e.selectionInfo,a=e.chart;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).cleared,t={selections:r,selectionInfo:o,chart:a,document:document,cleared:e};return n(i({clearDiscrete:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return zr(i(i({},t),e))},clearContinuous:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Br(i(i({},t),e))},clearMinor:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _r(i(i({},t),e))},clearRange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Yr(i(i({},t),e))},clearTap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Ur(i(i({},t),e))},clearLegend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Kr(i(i({},t),e))}},t))}}({clear:h,selections:c,selectionInfo:r,chart:n}),y=function(e){var t=e.chart,n=e.lasso,r=e.reset,o=e.clear,i=!1,a={deactivated:function(e){r({e:e,lasso:n})},canceled:function(e){r({e:e,lasso:n}),o({e:e,chart:t,document:document})},cleared:function(e){i||(i=!0,o({e:e,chart:t,document:document,cleared:!0}),i=!1)}};return!1===r&&delete a.deactivated,!1===o&&delete a.cleared,!1===r&&!1===o&&delete a.canceled,a}({chart:n,clear:m,reset:v,lasso:d}),g={};Object.entries(y).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];g[n]=function(e,t){return t?function(n){return t({event:n,defaultFunc:e})}:e}(r,s[n])}));var b=$r({selectionEvents:s,selections:c,selectionInfo:r,clear:m,chart:n,document:document});return null==l||null===(t=l.select)||void 0===t||t.on(\"start\",b),Object.entries(g).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.on(n,r)})),function(){var e;null==l||null===(e=l.select)||void 0===e||e.removeListener(\"start\",b),Object.entries(g).forEach((function(e){var t=u(e,2),n=t[0],r=t[1];null==c||c.removeListener(n,r)}))}}function Jr(e){var t=e.chart,n=e.selectionActions,r=e.brush,o=e.actions,i=e.selectionInfo,a=e.selections,l=e.selectionEvents,c=function(e){var t=e.brush,n=e.chart,r=e.selectionInfo,o=e.brushEvents,i=void 0===o?{}:o,a=Object.entries(i).map((function(e){var o=u(e,2),i=o[0],a=o[1],l=function(){return a({chart:n,selectionInfo:r})};return t.on(i,l),[i,l]}));return function(){a.forEach((function(e){var n=u(e,2),r=n[0],o=n[1];t.removeListener(r,o)}))}}({brush:r,chart:t,selectionInfo:i,brushEvents:e.brushEvents}),s=Xr({chart:t,selectionInfo:i,selectionActions:n,actions:o,selections:a,selectionEvents:l}),f=function(e){var t=e.actions;if(null==t||!t.lasso)return function(){};var n=!1,r=function(e){n||e.key!==Ar||(t.lasso.action(!0),n=!0)},o=function(e){e.key===Ar&&(t.lasso.action(!1),n=!1)};return document.addEventListener(\"keydown\",r),document.addEventListener(\"keyup\",o),function(){document.removeEventListener(\"keydown\",r),document.removeEventListener(\"keyup\",o)}}({actions:o});return function(){c(),s(),f()}}var Qr=[{key:\"qHyperCube/qDimensionInfo/0:numeric\",includeMax:!1}];function Zr(e){var t=e.chart,n=e.actions,r=e.selections,o=e.picassoQ,i=e.config,a=i.allowSimultaneous,c=void 0!==a&&a,s=i.majorScale,f=void 0===s?void 0:s,d=i.selectionActions,p=(d=void 0===d?{}:d).clear,v=d.reset,h=i.selectionEvents,m=void 0===h?{deactivated:void 0,canceled:void 0,cleared:void 0,start:void 0}:h,y=i.brushEvents,g=void 0===y?{}:y,b=i.brushName,x=void 0===b?\"selection\":b,q=i.brushMaxListeners,w=void 0===q?20:q,M=i.brushRanges,k=void 0!==M&&M,C=i.interceptors,D=void 0===C?{}:C,S=i.selectionsFn,I=void 0===S?o.selections:S,O=t.brush(x);if(\"number\"==typeof w&&O.setMaxListeners(w),k){var A=!0===k?Qr:k;O.configure({ranges:A})}var E={canSelect:!0,getIsSelectionLocked:!1,isInnerDimensionLocked:!1,lockedDimensions:[],singleSelectIndex:0,selectionInfo:{colorField:void 0,components:[],event:void 0,currentComponent:void 0,previousComponent:void 0}},N=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.selections,r=t.brush,o=t.majorScale,i=t.actions,a=t.selectionsFn,u=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,l=void 0===u?\"/qHyperCubeDef\":u;if(!n)return{layout:function(){},allowSimultaneous:function(){},release:function(){}};var c=++Pr,s=null,f=[],d={};n.on=n.on.bind(n),n.isActive=n.isActive.bind(n),n.addListener=n.addListener.bind(n),n.removeListener=n.removeListener.bind(n);var p=Er({brush:r,getConfig:function(){return{layout:s,allowSimultaneous:f}}}),v=p.rangeInterceptor,h=p.interceptor;r.intercept(\"set-ranges\",v),r.intercept(\"toggle-ranges\",v),r.intercept(\"toggle-values\",h),r.intercept(\"set-values\",h),r.intercept(\"add-values\",h),r.on(\"start\",(function(){return n.begin(l)}));var m={activate:function(){},deactivated:function(){return r.end()},cleared:function(){return r.clear()},canceled:function(){return r.end()}};Fr(n,m);var y=null==o||null===(e=o.max)||void 0===e?void 0:e.call(o);return null!=i&&i.select?(i.select.on(\"start\",(function(){var e;r.start(),\"function\"==typeof i.select.getBrushOptions&&(d=(e=i.select).getBrushOptions.apply(e,arguments))})),i.select.on(\"end\",(function(){a(r,d,s).forEach((function(e){Rr(e,i.select.brushSelectionIncludeMax,y),n.select(e)}))}))):r.on(\"update\",(function(){a(r,d,s).forEach((function(e){return n.select(e)}))})),0===Nr.length&&Lr(),Nr.push({key:c,selections:n}),{layout:function(e){s=e},allowSimultaneous:function(e){f=e},release:function(){s=null;var e=Nr.indexOf(Nr.filter((function(e){return e.key===c}))[0]);-1!==e&&Nr.splice(e,1),Nr.length||jr(),Vr(n,m)}}}({brush:O,majorScale:f,actions:n,selections:r,picassoQ:o,selectionsFn:I});!function(e){var t=e.brush,n=e.interceptors,r=void 0===n?{}:n;Object.entries(r).forEach((function(e){var n=u(e,2),r=n[0],o=n[1];(Array.isArray(o)?o:[o]).forEach((function(e){t.intercept(r,e)}))}))}({brush:O,interceptors:D});var P=Jr({chart:t,brush:O,actions:n,selections:r,selectionInfo:E.selectionInfo,selectionActions:{clear:p,reset:v},selectionEvents:m,brushEvents:g});if(c){var T=!0===c?l(Array(15)).map((function(e,t){return\"qHyperCube/qMeasureInfo/\".concat(t)})):c;N.allowSimultaneous(T)}return{unbindEvents:P,state:E,picassoSelections:N,brush:O}}function eo(e){var t=e.chart,n=e.selections,r=e.actions,o=void 0!==r&&r,u=e.config,l=void 0===u?{}:u,c=Zr({chart:t,actions:o,selections:n,picassoQ:wr,config:l}),s=c.unbindEvents,f=c.state,d=c.picassoSelections,p=c.brush,v=l.custom,h=void 0===v?{}:v,m=l.legendAlias,y=void 0===m?void 0:m,g=l.setBrushAliases,b=void 0===g?Dr:g;return{getIsDimensionLocked:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return f.lockedDimensions[e]},getIsSelectionLocked:function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return null!==(e=null==n||null===(t=n.isLocked)||void 0===t?void 0:t.call(n))&&void 0!==e?e:Cr(r)},getIsSingleSelect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.singleSelectIndex;return f.singleSelectDimensions[e]},getCanSelect:function(){return f.canSelect},getSelectionInfo:function(){return f.selectionInfo},setLayout:function(e){var t=kr({selections:n,picassoSelections:d,layout:e});Object.assign(f,t)},setBrushAliases:function(e){var t=e.colorField,n=e.useLegendCube,r=void 0!==n&&n,o=a(e,[\"colorField\",\"useLegendCube\"]),u=i({useLegendCube:r,colorField:t,brush:p,legendAlias:y},o);b(i(i({},u),{},{defaultFunc:function(){return Dr(u)}}))},destroy:function(){s(),d.release()},custom:i({},h)}}var to=\"QlikView Sans, sans-serif\",no=\"#333333\",ro=\"#595959\",oo=\"#737373\",io=\"#cccccc\",ao=\"#e6e6e6\";function uo(e){var t={};return[].concat(l(e),l([[\"\",\"\",\"color\"],[\"object\",\"axis.title\",\"fontFamily\",to],[\"object\",\"axis.title\",\"fontSize\",\"13px\"],[\"object\",\"axis.title\",\"color\"],[\"object\",\"axis.label.name\",\"fontFamily\",to],[\"object\",\"axis.label.name\",\"fontSize\",\"12px\"],[\"object\",\"axis.label.name\",\"color\",ro],[\"object\",\"axis.line.major\",\"color\",io],[\"object\",\"axis.line.minor\",\"color\",ao],[\"object\",\"grid.line.major\",\"color\",io],[\"object\",\"grid.line.minor\",\"color\",ao],[\"object\",\"grid.line.highContrast\",\"color\",ao],[\"object\",\"referenceLine.label.name\",\"fontFamily\",to],[\"object\",\"referenceLine.label.name\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.label.name\",\"color\",no],[\"object\",\"referenceLine.outOfBounds\",\"fontFamily\",to],[\"object\",\"referenceLine.outOfBounds\",\"fontSize\",\"12px\"],[\"object\",\"referenceLine.outOfBounds\",\"color\",ao],[\"object\",\"referenceLine.outOfBounds\",\"backgroundColor\",oo,function(e){return\"transparent\"===e?oo:e}]])).reduce((function(e,n){var r=\"\".concat(n[0],\"-\").concat(n[1],\"-\").concat(n[2],\"}\");return t[r]||(t[r]=!0,e.push(n)),e}),[]).sort((function(e,t){return(e[0].split?e[0].split(\".\").length:0)-(t[0].split?t[0].split(\".\").length:0)}))}function lo(e,t){var n={};return e.forEach((function(e){var r=u(e,5),o=r[0],i=r[1],a=r[2],l=r[3],c=r[4],s=void 0===c?function(e){return e}:c,f=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;if(!e||!1===t)return o;var i=e.getStyle(t,n,r);return void 0===i?o:i}(t,o,i,a,l),d=s(f);ft(n,[i,a].filter(Boolean).join(\".\"),d)})),n}function co(e){var t=e.theme,n=e.styleMatrix,r={theme:t,styleMatrix:uo(void 0===n?[]:n),styles:void 0};return r.styles=lo(r.styleMatrix,t),{getStyles:function(){return r.styles},getTheme:function(){return r.theme},setTheme:function(e){r.theme=e,r.styles=lo(r.styleMatrix,e)}}}var so={NOOP:function(){},FALSE:function(){return!1},ARRAY:function(){return[]},OBJECT:function(){return{}}};var fo=\"chart-modules-tooltip\",po=\"#\".concat(fo);function vo(){if(!document.querySelector(po)){var e=document.createElement(\"div\");e.id=fo,e.style.overflow=\"hidden\",e.style.position=\"fixed\",e.style.pointerEvents=\"none\",e.style.left=\"0px\",e.style.top=\"0px\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.zIndex=1020,document.body.appendChild(e)}}function ho(e){return{show:!0,key:e.key,type:\"tooltip\",layout:{displayOrder:3},beforeMount:function(){vo()},beforeUpdate:function(){vo()},destroyed:function(){var e;null!=(e=document.querySelector(po))&&e.parentElement&&e.childElementCount<1&&e.parentElement.removeChild(e)},settings:{appendTo:function(){return document.querySelector(po)},direction:e.rtl?\"rtl\":\"ltr\",duration:e.duration},style:{arrow:{color:\"#404040\"},content:{display:\"table\",\"border-spacing\":\"4px\",background:\"rgba(64, 64, 64, 0.9)\",opacity:\"1\",fontSize:\"13px\",fontFamily:\"QlikView Sans, sans-serif\",\"empty-cells\":\"show\"},cell:{\"max-width\":\"180px\",\"word-break\":\"break-word\",\"word-wrap\":\"break-word\",\"overflow-wrap\":\"break-word\",hyphens:\"auto\"}}}}var mo=\"position\";var yo={bar:\"rect\",diamond:\"path\",point:\"circle\",square:\"rect\",triangle:\"path\",\"n-polygon\":\"path\",slice:\"path\"},go=function(e){return e.data.value},bo=function(e){var t,n=e.data;return null==n||null===(t=n.major)||void 0===t?void 0:t.value};function xo(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.collectibles,a=e.meta,c=o.from,s={chart:t,expando:n,nodes:r,collectConfig:o,collectibles:i,meta:a};switch(\"function\"==typeof c?\"custom\":c){case\"single\":return function(e){var t=u(e.nodes,1)[0];return[\"container\"===t.type&&t.children[0]||t]}(s);case\"position\":return function(e){return e.nodes}(s);case\"dimension\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0],a=r.filter,c=\"function\"==typeof a?a:function(){return!0},s=r.by,f=void 0===s?go:s;return o.reduce((function(e,n){var r=n.major,o=void 0===r?bo:r,a=yo[n.type]||n.type;return e.push.apply(e,l(t.findShapes(a).filter((function(e){return e.key===n.key&&e.data&&o({data:e.data})===f({data:i.data})})))),e}),[]).filter(c)}(s);case\"radius\":return function(e){var t=e.chart,n=e.nodes,r=e.collectConfig,o=e.collectibles,i=u(n,1)[0].localBounds,a=r.distance,l=r.filter,c=\"function\"==typeof l?l:function(){return!0},s=o.map((function(e){return e.key})),f=u(s,1)[0],d=t.component(f).rect,p=d.scaleRatio,v=d.computedInner,h=i.width*p.x,m=i.height*p.y,y=i.x*p.x+h/2+v.x,g=i.y*p.y+m/2+v.y,b=a||Math.max(h,m);return t.shapesAt({cx:y,cy:g,r:b},{components:s.map((function(e){return{key:e}}))}).filter(c)}(s);case\"custom\":return function(e){var t=e.chart,n=e.expando,r=e.nodes,o=e.collectConfig,i=e.meta;return o.from({chart:t,expando:n,nodes:r,meta:i})}(s);default:return[]}}var qo=Number.MAX_VALUE;function wo(e){var t=e.nodes.reduce((function(e,t){var n=t.bounds;return e.xMin=Math.min(e.xMin,n.x,n.x+n.width),e.yMin=Math.min(e.yMin,n.y,n.y+n.height),e.xMax=Math.max(e.xMax,n.x,n.x+n.width),e.yMax=Math.max(e.yMax,n.y,n.y+n.height),e}),{xMin:qo,xMax:-qo,yMin:qo,yMax:-qo}),n=t.xMin,r=t.xMax,o=t.yMin;return{x:n,y:o,width:r-n,height:t.yMax-o}}function Mo(e){var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,c=function(e){for(var t=e.chart,n=e.config,r=e.expando,o=e.placementConfig,i=e.hovered,a=e.collected,l=e.meta,c=u(i,1)[0],s=Array.isArray(o)?o:[o],f={bounds:c.bounds,key:c.key},d=wo({nodes:a}),p=0;p<s.length;p++){var v=s[p];if(\"function\"==typeof v){var h=v({chart:t,expando:r,hovered:i,collected:a,meta:l,collectedBounds:d,combineBounds:wo});if(h)return h}if(\"trigger\"===v)return f;if(\"collectible\"===v){var m=n.main.placements.collectible;return{bounds:\"function\"==typeof m?m({collected:a}):d,key:a[0].key}}}return f}({chart:t,config:n,expando:r,placementConfig:o,hovered:i,collected:a,meta:l}),s=c.bounds,f=c.key,d=u(a,1)[0].desc;return[{bounds:s,nodes:a,data:a.map((function(e){return e.data})),key:f,meta:l,desc:d}]}function ko(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.nodes;if(!i.length)return[];var a=u(i,1)[0].key,l=n.main.collectibles;if(!l.length)return[];var c=n.main.triggers.find((function(e){return-1!==e.keys.indexOf(a)}))||{},s=c.collect,f=c.placement;if(!s||!s.from||!f)return[];var d={triggerer:a,position:o.get(mo)},p=(xo({chart:t,expando:r,nodes:i,collectConfig:s,collectibles:l,meta:d})||[]).map((function(e){return e.children.length?e.children[0]:e}));return p.length?Mo({chart:t,config:n,expando:r,placementConfig:f,hovered:i,collected:p,meta:d}):[]}var Co=\"[־׀׃׆א-״߀-ߪߴ-ߵߺ-ࠕࠚࠤࠨ࠰-ࡘ࡞‏יִײַ-ﬨשׁ-ﭏ]\",Do=\"[؈؋؍؛-ي٭-ٯٱ-ەۥ-ۦۮ-ۯۺ-܍ܐܒ-ܯݍ-ޥޱﭐ-ﴽﵐ-﷼ﹰ-ﻼ]\",So=new RegExp(\"[A-Za-zªµºÀ-ÖØ-öø-ʸʻ-ˁː-ˑˠ-ˤˮͰ-ͳͶ-ͽΆΈ-ϵϷ-҂Ҋ-։ः-हऻऽ-ीॉ-ौॎ-ॐक़-ॡ।-ॿং-হঽ-ীে-ৌৎ-ৡ০-ৱ৴-৺ਃ-ਹਾ-ੀਖ਼-੯ੲ-ੴઃ-હઽ-ીૉ-ૌૐ-ૡ૦-૯ଂ-ହଽ-ାୀେ-ୌୗ-ୡ୦-୷ஃ-ிு-ௌௐ-௲ఁ-ఽు-ౄౘ-ౡ౦-౯౿-ಹಽ-ೋೕ-ೡ೦-ീെ-ൌൎ-ൡ൦-ෆා-ෑෘ-ะา-ำเ-ๆ๏-ະາ-ຳຽ-ໆ໐-༗༚-༴༶༸༾-ཬཿ྅ྈ-ྌ྾-࿅࿇-ာေးျ-ြဿ-ၗၚ-ၝၡ-ၰၵ-ႁႃ-ႄႇ-ႌႎ-ႜ႞-ፚ፠-ᎏᎠ-Ᏼᐁ-ᙿᚁ-ᚚᚠ-ᜑᜠ-ᜱ᜵-ᝑᝠ-ᝰក-ាើ-ៅះ-ៈ។-៚ៜ០-៩᠐-ᢨᢪ-ᤜᤣ-ᤦᤩ-ᤱᤳ-ᤸ᥆-᧚ᨀ-ᨖᨙ-ᩕᩗᩡᩣ-ᩤᩭ-ᩲ᪀-᪭ᬄ-ᬳᬵᬻᬽ-ᭁᭃ-᭪᭴-᭼ᮂ-ᮡᮦ-ᮧ᮪-ᯥᯧᯪ-ᯬᯮ᯲-ᰫᰴ-ᰵ᰻-᱿᳓᳡ᳩ-ᳬᳮ-ᶿḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼ‎ⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎ-⅏Ⅰ-ↈ⌶-⍺⎕⒜-ⓩ⚬⠀-⣿Ⰰ-ⳤⳫ-ⳮⴀ-⵰ⶀ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ㆺㇰ-㈜㈠-㉏㉠-㉻㉿-㊰㋀-㋋㋐-㍶㍻-㏝㏠-㏾㐀-䶵一-ꒌꓐ-ꘌꘐ-ꙮꚀ-ꛯ꛲-꛷Ꜣ-ꞇ꞉-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠤꠧ꠰-꠷ꡀ-ꡳꢀ-ꣃ꣎-꣙ꣲ-ꤥ꤮-ꥆꥒ-ꥼꦃ-ꦲꦴ-ꦵꦺ-ꦻꦽ-ꨨꨯ-ꨰꨳ-ꨴꩀ-ꩂꩄ-ꩋꩍ-ꪯꪱꪵ-ꪶꪹ-ꪽꫀꫂ-ꯤꯦ-ꯧꯩ-꯬꯰-ﬗA-Za-zヲ-ᅵ]\"),Io=new RegExp(Co),Oo=new RegExp(Do),Ao=function(e){return So.test(e)},Eo=function(e){return Io.test(e)||Oo.test(e)};function No(e){for(var t=e?e.length:0,n=0;n<t;n++){var r=e[n];if(Ao(r))return\"ltr\";if(Eo(r))return\"rtl\"}return\"ltr\"}function Po(e){var t=e.visibility;return{type:\"divider\",content:[{content:\"\",style:{\"background-image\":\"linear-gradient(transparent 8px, rgba(255, 255, 255, 0.4) 8px, rgba(255, 255, 255, 0.4) 9.2px, transparent 9.2px)\",height:\"17px\"},colspan:2}],visibility:i(i({},{count:!1}),t)}}function To(e){var t=e.config,n=e.h,r=e.context,o=e.nodes,a=e.property,l=e.filter,c=e.visibility,s=t.rtl,f={type:\"color\",label:void 0,value:void 0,content:[],filter:l,visibility:i(i({},{count:!0}),c)},d=t.getColorSettings();if(\"color\"===d.type||!d.fieldType)return f;var p=u(o,1)[0];if(f.value=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=o.data[r];if(i){if(-3===o.data.value)return o.data.label;var a=n.resources.dataset(i.source.key).field(i.source.field).formatter(),u=i.value,l=i.label,c=t.getColorSettings();if(a&&\"measure\"===c.fieldType)return Number.isNaN(+u)?\"-\":a(i.value);var s=l||u;return void 0===s||Number.isNaN(s)||\"NaN\"===s?\"-\":s}}({config:t,context:r,property:a,node:p}),void 0===f.value)return f;f.label=function(e){var t=e.config,n=e.context,r=e.property,o=e.node,i=t.getColorSettings();if(i.label)return i.label;var a=o.data[r];if(a&&\"color\"!==i.type){var u=n.resources.dataset,l=a.source,c=l.key,s=l.field;return u(c).field(s).title()}}({config:t,context:r,property:a,node:p});var v=function(e){var t=e.node.attrs;return(null==t?void 0:t.fill)||\"#ddd\"}({node:p}),h=n(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":v,margin:\"0 8px\"}});return f.content.push({content:s?[\":\",f.label]:[f.label,\":\"],style:{\"text-align\":s?\"right\":\"left\",direction:No(f.label)}},{content:s?[f.value,h]:[h,f.value],style:{\"text-align\":s?\"left\":\"right\",\"vertical-align\":\"middle\",direction:No(f.value)}}),f}function Lo(e){var t=e.config,n=e.h,r=e.context,o={section:function(e){return function(e){return{type:\"section\",content:e.content}}({content:e.content})},text:function(e){var n=e.value,r=e.style,o=e.visibility;return function(e){var t=e.config,n=e.value,r=e.style,o=(r=void 0===r?{}:r).bold,a=void 0!==o&&o,u=r.italic,l=void 0!==u&&u,c=e.visibility;return{type:\"text\",content:[{content:n,style:{\"font-weight\":a?\"bold\":\"normal\",\"font-style\":l?\"italic\":\"normal\",\"text-align\":t.rtl?\"right\":\"left\",direction:No(n)},colspan:2}],visibility:i(i({},{count:!0}),c)}}({config:t,value:n,style:r,visibility:o})},measure:function(e){var r=e.label,o=e.value,a=e.color,u=e.style,l=e.survive,c=e.visibility;return function(e){var t,n,r,o,a=e.config,u=e.h,l=e.label,c=e.value,s=e.color,f=e.style,d=e.survive,p=e.visibility,v=a.rtl,h=u(\"div\",{style:{display:\"inline-block\",width:10,height:10,\"background-color\":s,margin:\"0 8px\"}});return{type:\"measure\",label:l,value:c,content:[{content:v?[\":\",l]:[l,\":\"],style:{\"text-align\":v?\"right\":\"left\",\"font-weight\":null!=f&&null!==(t=f.label)&&void 0!==t&&t.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(n=f.label)&&void 0!==n&&n.italic?\"italic\":\"normal\",direction:No(l)}},{content:s?v?[c,h]:[h,c]:c,style:{\"text-align\":v?\"left\":\"right\",\"vertical-align\":\"middle\",\"font-weight\":null!=f&&null!==(r=f.value)&&void 0!==r&&r.bold?\"bold\":\"normal\",\"font-style\":null!=f&&null!==(o=f.value)&&void 0!==o&&o.italic?\"italic\":\"normal\",direction:No(c)}}],survive:i(i({},{color:!1,duplicate:!1}),d),visibility:i(i({},{count:!0}),p)}}({config:t,h:n,label:r,value:o,color:a,style:u,survive:l,visibility:c})},divider:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.visibility;return Po({visibility:t})},row:function(e){return function(e){var t=e.content,n=e.style,r=e.colspan,o=e.visibility;return{type:\"row\",content:[{content:t,style:n,colspan:r}],visibility:i(i({},{count:!0}),o)}}({content:e.content,style:e.style,colspan:e.colspan,visibility:e.visibility})},raw:function(e){return function(e){var t=e.value,n=e.visibility;return{type:\"raw\",content:t,visibility:i(i({},{count:!0}),n)}}({value:e.value,visibility:e.visibility})},color:function(e){var o=e.nodes,i=e.property,a=e.filter,u=void 0===a||a,l=e.visibility;return To({config:t,h:n,context:r,nodes:o,property:i,filter:u,visibility:l})}};return o}function jo(e){var t=e.translator,n=e.config,r=e.context,o=e.templates,i=n.main.layout,a=i.rows,u=i.grouping,l=i.single,c=function(e){var t=e.limit,n=e.grouping,r=e.single,o={count:0,overflow:0,index:{started:void 0,group:void 0}};return{process:function(e){var i=e.visibility,a=e.index;if(r&&0!==a)return n?(o.index.started!==a&&o.index.group!==a&&(o.overflow++,o.index.group=a),!1):(o.overflow++,!1);if(o.count>=t){if(!n)return o.overflow++,!1;if(o.index.started!==a)return o.index.group!==a&&(o.overflow++,o.index.group=a),!1}return i.count&&o.count++,n&&(o.index.started=a),!0},overflow:function(){return o.overflow}}}({limit:a,grouping:u,single:\"function\"==typeof l?l({meta:r.node.meta,sections:o}):l}),s=o.reduce((function(e,t,n){var r=t.type,i=t.content;\"section\"===r&&(void 0===i?[]:i).forEach((function(t){c.process({visibility:t.visibility,index:n})&&e.push(t.content)}));var a=n===o.length-1;return\"divider\"!==r||a||c.process({visibility:t.visibility,index:n})&&e.push(t.content),e}),[]).filter((function(e){return e.length})),f=c.overflow();return f&&s.push(function(e){var t=e.translator,n=e.config,r=e.count,o=t?t.get(\"Object.ChartTooltip.NMore\",r):\"+\".concat(r,\" more\"),i=No(o);return[{content:o,style:{\"font-weight\":\"bold\",\"text-align\":n.rtl?\"right\":\"left\",direction:i},colspan:2}]}({translator:t,config:n,count:f})),s}function Fo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,a=e.h,c=e.data,s=e.style,f=u(c,1)[0],d=function(e){var t=e.config,n=e.nodes.reduce((function(e,n){var r=t.main.getGroupByValue({data:n.data});return e[r]||(e[r]=[]),e[r].push(n),e}),{});return Object.keys(n).map((function(e){return n[e]}))}({config:r,nodes:f.node.nodes}),p=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.h,i=e.context,a=e.groups,u=i.node.meta,c=i.resources,s=c.dataset,f=c.formatter,d=Lo({config:n,h:o,context:i}),p=function(e){var t=e.dataset;return{dataset:{title:function(e,n){return t(e).field(n).title()}}}}({dataset:s}),v=a.map((function(e){var t=d.section({content:l((n.main.section({expando:r,h:o,nodes:e,dataset:s,formatter:f,meta:u,create:d,util:p})||[]).filter((function(e){var t;return null===(t=e.content)||void 0===t?void 0:t.length}))).filter(Boolean)});return t.content=function(e){var t=e.config,n=e.content,r=n.find((function(e){return\"color\"===e.type&&e.filter})),o=r?n.filter((function(e){return\"measure\"!==e.type||e.survive.color||e.label!==r.label||e.value!==r.value})):n;return t.main.showDuplicateMeasures?o:o.reduce((function(e,t){var n=t.type,r=t.survive;if(\"measure\"!==n||r.duplicate)return e.filtered.push(t),e;var o=\"\".concat(t.label,\"-\").concat(t.value);return e.memory[o]||(e.memory[o]=!0,e.filtered.push(t)),e}),{memory:{},filtered:[]}).filtered}({config:n,content:t.content}),t}));return n.main.sections({chart:t,expando:r,h:o,nodes:i.node.nodes,dataset:s,formatter:f,meta:u,create:d,util:p,sections:v}),v.filter(Boolean)}({chart:t,config:r,expando:o,h:a,context:f,groups:d}),v=jo({translator:n,config:r,h:a,context:f,templates:p});return v.length?function(e){var t=e.h,n=e.style;return e.rows.map((function(e){return t(\"tr\",{},e.map((function(e){var r={style:i(i({},n.cell||{}),e.style||{}),class:e.class};return e.colspan&&(r.colspan=e.colspan),t(\"td\",r,e.content)})))}))}({h:a,style:s,rows:v}):function(e){var t=e.h;return t(\"tr\",{},t(\"td\",{style:{fontStyle:\"italic\",opacity:.75}},\"Empty\"))}({h:a})}function Vo(e){var t=e.chart,n=e.translator,r=e.config,o=e.expando,i=e.internal;if(!r.main.key)return!1;var a=dt(),u=ho({key:r.main.key,rtl:r.rtl,duration:r.duration}),l=r.main.events.tooltip,c=l.afterShow,s=l.afterHide,f=function(){var e=a.get(\"collected\");return{expando:o,nodes:e.nodes,meta:e.meta}};return b(!0,u,{settings:{filter:function(e){return ko({chart:t,config:r,expando:o,internal:i,nodes:e})},extract:function(e){return a.set(\"collected\",e.node),e},content:function(e){var i=e.h,a=e.data,u=e.style;return Fo({chart:t,translator:n,config:r,expando:o,h:i,data:a,style:u})},placement:function(e){var t=e.nodes;return r.main.placement({meta:t[0].meta})},afterShow:function(){return c(f())},afterHide:function(){return s(f())}},style:{arrow:{color:r.style.background},content:r.style}})}function Ro(e){var t=e.config,n=t.legend.keys;if(!n.tooltip||!n.component)return!1;if(\"categorical\"!==t.getColorSettings().type)return!1;var r=ho({key:n.tooltip,rtl:t.rtl,duration:t.duration});return b(!0,r,{settings:{filter:function(e){return e.filter((function(e){return e.data&&e.key===n.component}))},extract:function(e){return e},content:function(e){var t=e.h,n=e.data;return[t(\"tr\",{},[t(\"td\",{style:i(i({},e.style.cell||{}),{\"font-weight\":\"bold\",\"text-align\":\"left\"}),colspan:2},n[0].node.data.label)])]},placement:\"pointer\"},style:{arrow:{color:t.style.background},content:t.style}})}function Ho(e){var t=e.config.main.triggers.reduce((function(e,t){return t.keys.forEach((function(n){var r=t.distance||0;e.distance[n]=r,e.distances.includes(r)||e.distances.push(r),e.key[n]=!0,e.keys[r]||(e.keys[r]=[]),e.keys[r].push(n)})),e}),{distance:{},distances:[],key:{},keys:{}});return function(e){return e.components.filter((function(e){return t.key[e.key]})).reduce((function(e,n){e.any=!0,e.components.push(n.key);var r=t.distance[n.key];return 0===r?e.position.push(n.key):(e.distances.includes(r)||(e.distances.push(r),e.distanceKeys[r]=[]),e.distanceKeys[r].push(n.key)),e}),{any:!1,components:[],position:[],distances:[],distanceKeys:{}})}}function zo(e){var t=e.chart,n=e.event,r=e.component,o={absolute:{x:0,y:0},relative:{x:0,y:0}},i=t.element.getBoundingClientRect(),a=i.left,u=i.top;o.absolute.x=(n.center?n.center.x:n.clientX)-a,o.absolute.y=(n.center?n.center.y:n.clientY)-u;var l=t.component(r);if(l){var c=l.rect.computedInner;o.relative.x=o.absolute.x-c.x,o.relative.y=o.absolute.y-c.y}return o}function Bo(e){var t=e.chart,n=e.hits,r=e.position,o=[];if(n.position.length&&o.push.apply(o,l(t.shapesAt(r.absolute,{components:n.position.map((function(e){return{key:e}}))}))),!o.length&&n.distances.length){var i=[];n.distances.forEach((function(e){i.push.apply(i,l(t.shapesAt({cx:r.absolute.x,cy:r.absolute.y,r:e},{components:n.distanceKeys[e].map((function(e){return{key:e}}))})))})),i.length&&o.push(function(e){var t=e.nodes,n=e.origin,r=t.find((function(e){return\"path\"===e.type}));if(r)return r;var o=function(e){var t=Math.abs(n.x-(e.localBounds.x+e.localBounds.width/2)),r=Math.abs(n.y-(e.localBounds.y+e.localBounds.height/2));return Math.sqrt(t*t+r*r)};return t.slice(1).reduce((function(e,t){var n=o(t);return n<e.distance&&(e.distance=n,e.node=t),e}),{node:t[0],distance:o(t[0])}).node}({nodes:i,origin:r.relative}))}return o}function _o(e){var t=e.chart,n=e.config,o=e.expando,i=e.internal,a=e.facade,c=n.delay.tap,s=Ho({config:n}),f=n.main.triggers.reduce((function(e,t){return e.push.apply(e,l(t.keys)),e}),[]);return{key:\"event:\".concat(\"tooltipTap\"),type:\"Tap\",options:{event:\"tooltipTap\",enable:function(e,r){return!r||!!n.enable({event:r})&&t.componentsFromPoint({x:r.center.x,y:r.center.y}).filter((function(e){return-1!==f.indexOf(e.key)})).length>0}},recognizeWith:\"tap\",events:r({},\"tooltipTap\",(function(e){if(e.preventDefault(),\"mouse\"!==e.pointerType&&!n.main.suppress({event:e})){var r=t.component(n.main.key);if(r&&r.show){var l=t.componentsFromPoint({x:e.center.x,y:e.center.y}),f=s({components:l});if(f.any){var d=u(f.components,1)[0],p=zo({chart:t,event:e,component:d});i.set(mo,p);var v=Bo({chart:t,hits:f,position:p});if(v.length){var h=v[0].key;n.main.events.tooltip.beforeShow({expando:o,event:e,collectNodes:function(){return a.collectNodes({nodes:v})},meta:{triggerer:h,position:p}}).then((function(){r.emit(\"show\",e,{nodes:v,delay:c})}))}else r.emit(\"hide\")}else r.emit(\"hide\")}}}))}}function Yo(e){var t=e.config,n=e.expando,r=e.internal,o=e.facade,i=t.main.events.tooltip.beforeShow,a=t.delay.hover,u={ongoing:{},latest:void 0};return function(e){var t=e.event,l=e.tooltip,c=e.nodes,s=function(e){var t=e.nodes;return JSON.stringify(t.map((function(e){return{key:e.key,bounds:e.bounds,value:e.data.value}})))}({nodes:c});if(!u.ongoing[s]){u.ongoing[s]=!0,u.latest=s;var f=c[0].key;i({expando:n,event:t,collectNodes:function(){return o.collectNodes({nodes:c})},meta:{triggerer:f,position:r.get(mo)}}).then((function(){s===u.latest&&l.emit(\"show\",t,{nodes:c,delay:a})})).finally((function(){delete u.ongoing[s],s===u.latest&&(u.latest=void 0)}))}}}function Uo(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=e.facade,a=Ho({config:n}),l=Yo({config:n,expando:r,internal:o,facade:i}),c=[n.main.key,n.legend.keys.tooltip].filter(Boolean),s=function(){c.forEach((function(e){var n=t.component(e);null!=n&&n.show&&n.emit(\"hide\")}))};return{type:\"native\",events:{mousemove:function(e){if(n.enable({event:e})&&!n.main.suppress({event:e})){var r=t.componentsFromPoint({x:e.clientX,y:e.clientY}),i=t.component(n.main.key);if(i&&i.show){var c=a({components:r});if(c.any){var s=u(c.components,1)[0],f=zo({chart:t,event:e,component:s});o.set(mo,f);var d=Bo({chart:t,hits:c,position:f});if(!d.length)return void i.emit(\"hide\");l({event:e,tooltip:i,nodes:d})}else i.emit(\"hide\")}var p=n.legend;if(p.keys.tooltip&&p.keys.component){var v=t.component(p.keys.tooltip);v&&v.show&&(r.some((function(e){return e.key===p.keys.component}))?v.emit(\"show\",e):v.emit(\"hide\"))}}},mouseup:function(e){2===e.button&&s()},mouseleave:function(){n.main.events.interaction.mouseleave({expando:r}),s()},wheel:function(){s()}}}}function Ko(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal,i=function(e){var t=e.chart,n=e.config,r=e.expando,o=e.internal;return{collectNodes:function(e){var i=e.nodes,a=u(ko({chart:t,config:n,expando:r,internal:o,nodes:i}),1)[0];return(a=void 0===a?{nodes:[]}:a).nodes}}}({chart:t,config:n,expando:r,internal:o});return{gestures:[_o({chart:t,config:n,expando:r,internal:o,facade:i})],native:Uo({chart:t,config:n,expando:r,internal:o,facade:i})}}function Wo(e){var t=e.chart,n=e.translator,r=function(e){var t=e.config;return b(!0,{},{rtl:!1,enable:so.FALSE,getColorSettings:so.OBJECT,style:{fontSize:void 0,fontFamily:void 0,color:void 0,background:void 0},delay:{hover:500,tap:0},duration:8e3,main:{key:void 0,suppress:so.FALSE,getGroupByValue:so.NOOP,collectibles:[],triggers:[],placement:function(){return{type:\"bounds\"}},placements:{collectible:\"combine\"},showDuplicateMeasures:!1,layout:{rows:7,grouping:!1,single:!1},section:so.ARRAY,sections:so.NOOP,events:{tooltip:{beforeShow:function(){return Promise.resolve()},afterShow:so.NOOP,afterHide:so.NOOP},interaction:{mouseleave:so.NOOP}}},legend:{keys:{tooltip:void 0,component:void 0}}},void 0===t?{}:t)}({config:e.config}),o=dt(),i=dt(),a={components:void 0,interactions:void 0};return{getComponents:function(){return a.components||(a.components=function(e){var t=e.chart,n=e.translator,r=e.config;return[Vo({chart:t,translator:n,config:r,expando:e.expando,internal:e.internal}),Ro({config:r})].filter(Boolean)}({chart:t,translator:n,config:r,expando:o,internal:i})),a.components},getInteractions:function(){return a.interactions||(a.interactions=Ko({chart:t,config:r,expando:o,internal:i})),a.interactions},expando:o}}var $o=\"AVERAGE\",Go=\"LINEAR\",Xo=\"POLYNOMIAL2\",Jo=\"POLYNOMIAL3\",Qo=\"POLYNOMIAL4\",Zo=\"EXPONENTIAL\",ei=\"LOG\",ti=\"POWER\";function ni(e){var t=e.dimValue,n=e.value,r=e.qTrendLine,o=r.qType,i=r.qCoeff,a={x:t,y:i[2]*Math.pow(n,2)+i[1]*n+i[0]};switch(o){default:case Xo:return a;case Jo:return a.y+=i[3]*Math.pow(n,3),a;case Qo:return a.y+=i[4]*Math.pow(n,4)+i[3]*Math.pow(n,3),a}}var ri={average:function(e){return{x:e.dimValue,y:e.qTrendLine.qCoeff[0]}},linear:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]*n+r.qCoeff[0]}},polynomial2:ni,polynomial3:ni,polynomial4:ni,exponential:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.exp(r.qCoeff[0]+n*r.qCoeff[1])}},log:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:r.qCoeff[1]+r.qCoeff[0]*Math.log(n)}},power:function(e){var t=e.dimValue,n=e.value,r=e.qTrendLine;return{x:t,y:Math.pow(10,r.qCoeff[0]+r.qCoeff[1]*Math.log(n)*Math.LOG10E)}}};function oi(e,t){for(var n=ri[t.qType.toLowerCase()],r=Math.max(1,e/500),o=1/0,i=-1/0,a=0;a<e;a+=r){var u=n({dimValue:null,value:a+1,qTrendLine:t}).y;o=Math.min(u,o),i=Math.max(u,i)}return{min:o,max:i}}function ii(e){return ri[e.qType.toLowerCase()]}function ai(e,t){return e.meta.isContinuous?function(e,t){return{generate:function(e,n,r){var o=[],i=ii(e),a=t({qTrendLine:e,measureIndex:r}),u=a.min,l=a.max,c=(l-u)/100;if(c>0){for(var s=function(t){var a=i({dimValue:t,value:t,qTrendLine:e});if(a.layerId=n,a.measureIndex=r,a.dimValue=t,e.flipXY){var u=a.x;a.x=a.y,a.y=u,a.dimValue=a.x}o.push(a)},f=u,d=u;d<=l;d+=c)s(d),f=d;f!==l&&s(l)}return o},calculate:function(e,t){return ii(e)({dimValue:t,value:t,qTrendLine:e})},findMinMax:function(e,t){var n=this.generate(t).map((function(e){return e.y}));return{min:Math.min.apply(Math,l(n)),max:Math.max.apply(Math,l(n))}}}}(0,t):e.meta.mode.K?function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qData[0].qSubNodes,u=i.qArea.qTop,l=ri[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c],f=l({dimValue:s.qElemNo,value:c+u+1,qTrendLine:t});f.layerId=n,f.measureIndex=r,f.dimValue=s.qText,o.push(f)}return o},findMinMax:oi}}(e):function(e){return{generate:function(t,n,r){for(var o=[],i=e.getDataPages()[0],a=i.qMatrix,u=i.qArea.qTop,l=ri[t.qType.toLowerCase()],c=0;c<a.length;c++){var s=a[c][0],f=c+u+1,d=l({dimValue:s.qElemNumber,value:f,qTrendLine:t});d.layerId=n,d.measureIndex=r,d.dimValue=s.qText,o.push(d)}return o},calculate:function(e,t,n){return(0,ri[e.qType.toLowerCase()])({dimValue:n,value:t,qTrendLine:e})},findMinMax:oi}}(e)}var ui={TYPES:{AVERAGE:\"properties.trendlines.types.average\",LINEAR:\"properties.trendlines.types.linear\",POLYNOMIAL2:\"properties.trendlines.types.polynomial2\",POLYNOMIAL3:\"properties.trendlines.types.polynomial3\",POLYNOMIAL4:\"properties.trendlines.types.polynomial4\",EXPONENTIAL:\"properties.trendlines.types.exponential\",LOG:\"properties.trendlines.types.logarithmic\",POWER:\"properties.trendlines.types.power\"},STYLE:{DASHED:\"properties.trendlines.style.dashed\"},TYPE:\"properties.trendlines.type\",HEADER:\"properties.trendlines\",ADD_BUTTON:\"properties.trendlines.button.add\"},li={color:\"#f93f17\",index:9},ci={x:NaN,y:NaN,dimValue:NaN,layerId:NaN,measureIndex:NaN},si=function(e){var t=e.layoutService,n=e.getMinMax,r=e.colorModel,o=e.chart,i=e.translator,a=e.keys.colorScale,u=e.isEnabled,c=void 0===u?function(){return!0}:u,s=[ci],f=[],d=[],p=ai(t,n);t.getLayoutValue(\"qHyperCube.qMeasureInfo\",[]).forEach((function(e,t){Array.isArray(e.qTrendLines)&&(f.push.apply(f,l(e.qTrendLines)),d.push.apply(d,l(e.qTrendLines.map((function(){return t})))))}));var v=pt((function(e){var t=(f[e]||{}).style,n=r.settings();if(t.autoColor){if(\"measure\"===n.mode){var i=d[e],u=o.scale(a)(i);return function(e){return pe(e).l<70}(u)?function(e){var t=pe(e);return t.l<30?t.l+=15:t.l<50?t.l+=10:t.l+=5,t.toString()}(u):function(e){var t=pe(e);return t.l-=5,t.toString()}(u)}return r.resolveUIColor(li)}return t.paletteColor?r.resolveUIColor(t.paletteColor):\"none\"}));return{query:{hasTrendLines:function(){return!!f.length&&c()},getData:function(){return s},getStroke:v,getLineDash:function(e){return(f[e]||{}).style.lineDash},getLabel:function(e){return(f[e]||{}).label},getExpression:function(e){var t=(f[e]||{}).qExpression;return f[e].flipXY&&(t=t.replace(/[xy]/g,(function(e){return\"x\"===e?\"y\":\"x\"}))),t},isFlipped:function(e){return f[e].flipXY},getType:function(e){var t=(f[e]||{}).qType;return i.get(ui.TYPES[t])},getMinMax:function(){var e=1/0,n=-1/0;return f.forEach((function(r){var o=p.findMinMax(t.meta.size.y,r);e=Math.min(o.min,e),n=Math.max(o.max,n)})),{min:e,max:n}},getCalculatedValue:function(e,t,n){var r=f[e];return p.calculate(r,t,n)}},command:{update:function(){s.length=0,f.forEach((function(e,t){var n=p.generate(e,t,d[t]);s.push.apply(s,l(n))}))}}}},fi={source:\"trend\",extract:{field:\"x\",props:{minor:{field:\"y\"},layer:{field:\"layerId\"},measureIndex:{field:\"measureIndex\"},dimValue:{field:\"dimValue\"}}}},di=function(e){var t=e.meta;return t.isContinuous?function(e){return(0,e.scale)(e.datum.value)}:t.isGroupedByMeasure?function(e){var t=e.scale,n=e.datum;return t([n.value,n.measureIndex.value])+t.bandwidth()/2}:function(e){var t=e.scale;return t(e.datum.value)+t.bandwidth()/2}},pi=function(e,t){var n=t.animations,r=t.layoutService,o=t.trendLineModel,i=t.orientation;if(!o.query.hasTrendLines())return[];var a=function(e,t){var n=e.trendlines,r=e.majorScale,o=e.minorScale,i=t.animations,a=t.trendLineModel,u=t.layoutService,l=t.orientation,c=di(u);return{key:n,type:\"line\",layout:{dock:\"center\"},data:fi,animations:i,settings:{connect:!0,orientation:l,coordinates:{major:{scale:r,fn:c},minor:{scale:o},layerId:{ref:\"layer\"}},layers:{curve:\"monotone\",line:{strokeWidth:2,stroke:function(e){var t=e.datum;return a.query.getStroke(t.layer.value)},strokeDasharray:function(e){var t=e.datum;return a.query.getLineDash(t.layer.value)}}}}}}(e,{animations:n,trendLineModel:o,layoutService:r,orientation:i}),u=[a];if(e.tooltipOverlay){var l=function(e,t){var n=e.majorScale,r=e.minorScale,o=e.tooltipOverlay,i=t.layoutService,a=\"horizontal\"===t.orientation,u={scale:n,fn:di(i)},l={scale:r,ref:\"minor\"};return{key:o,type:\"point\",layout:{dock:\"center\"},data:fi,settings:{x:a?u:l,y:a?l:u,opacity:0,size:1,sizeLimits:{maxPx:8,minPx:8}}}}(e,{layoutService:r,orientation:i});u.push(l)}return u},vi=function(e){e.style.dashed?e.style.lineDash=\"8, 4\":e.style.lineDash=\"\"},hi=function(e){vi(e),e.qMultiDimMode=\"Sum\",e.qXColIx=0};function mi(e,t){return{x:e.x-t.x,y:e.y-t.y}}function yi(e){return Math.pow(e.x,2)+Math.pow(e.y,2)}function gi(e,t,n){var r=mi(n,e),o=mi(t,e),i=yi(o);if(0===i)return e;var a,u,l,c,s=(u=o,((a=r).x*u.x+a.y*u.y)/i);return s<=0?e:s>=1?t:function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(e,(c=s,{x:(l=o).x*c,y:l.y*c}))}function bi(e){var t,n,r=e.keys,o=e.model,i=e.chart,a=e.pos,u=e.lineNode,l=o,c=i.component(r.trendlines),s=i.scale(r.majorScale),f=i.scale(r.minorScale),d=u.data.layer.value,p=function(e,t){var n=1/0,r=null;if(1===e.length)return e[0];for(var o=0;o<e.length-1;++o){var i=gi(e[o],e[o+1],t),a=yi(mi(i,t));a<n&&(n=a,r=i)}return r}(u.data.points.map((function(e){return{x:s(e.dimValue.value)*c.rect.computed.width,y:f(e.minor.value)*c.rect.computed.height}})),a);return l.query.isFlipped(d)?(n=f.invert(p.y/c.rect.computed.height),t=l.query.getCalculatedValue(d,n).y,p.x=s(t)*c.rect.computed.width):(t=s.invert(p.x/c.rect.computed.width),n=l.query.getCalculatedValue(d,t).y,p.y=f(n)*c.rect.computed.height),{key:u.key,children:[],data:{layer:d,x:t,y:n},bounds:{x:p.x,y:p.y,width:0,height:0}}}function xi(e){var t=e.animations,n=e.chart,r=e.colorService,o=e.isEnabled,i=e.keys,a=void 0===i?{}:i,u=e.layoutService,l=e.orientation,c=e.translator,s=e.getMinMax;a.trendlines||(a.trendlines=\"trend-lines\");var f=si({layoutService:u,getMinMax:s,colorModel:{settings:function(){return r.getSettings()},resolveUIColor:function(e){return r.getPaletteColor(e)}},chart:n,translator:c,keys:a,isEnabled:o});return{getComponents:function(){return pi(a,{animations:t,layoutService:u,trendLineModel:f,orientation:l})},getData:function(){return f.query.hasTrendLines()?[{key:\"trend\",data:f.query.getData()}]:[]},collectNodes:function(e){var t=e.nodes,r=e.meta;return function(e){var t=e.keys,n=e.model,r=e.chart,o=e.nodes,i=e.meta;return o.length?[bi({keys:t,model:n,chart:r,pos:i.position.relative,lineNode:o[0]})]:[]}({keys:a,model:f,chart:n,nodes:t,meta:r})},getModel:function(){return f},update:function(){return f.command.update()}}}xi.propertyPanelProperties=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.translator,r=function(t){var r=e(t.label);return\"string\"===r&&t.label?t.label:\"object\"===r?t.label.qStringExpression?t.label.qStringExpression.qExpr:t.label.qValueExpression.qExpr:n.get(ui.TYPES[t.qType])};return{type:\"array\",ref:\"qTrendLines\",titleTranslation:ui.HEADER,itemTitleRef:r,max:8,allowAdd:!0,allowRemove:!0,allowMove:!1,addTranslation:ui.ADD_BUTTON,add:hi,items:{label:{ref:\"label\",type:\"string\",expression:\"optional\",translation:\"Common.Label\",defaultValue:\"\"},type:{ref:\"qType\",type:\"string\",component:\"dropdown\",translation:ui.TYPE,options:[{value:$o,translation:ui.TYPES.AVERAGE},{value:Go,translation:ui.TYPES.LINEAR},{value:Xo,translation:ui.TYPES.POLYNOMIAL2},{value:Jo,translation:ui.TYPES.POLYNOMIAL3},{value:Qo,translation:ui.TYPES.POLYNOMIAL4},{value:Zo,translation:ui.TYPES.EXPONENTIAL},{value:ei,translation:ui.TYPES.LOG},{value:ti,translation:ui.TYPES.POWER}],defaultValue:$o},autoColor:{ref:\"style.autoColor\",type:\"boolean\",translation:\"properties.colors\",component:\"switch\",defaultValue:!0,options:[{value:!0,translation:\"Common.Auto\"},{value:!1,translation:\"Common.Custom\"}]},paletteColor:{ref:\"style.paletteColor\",translation:\"properties.color\",type:\"object\",component:\"color-picker\",dualOutput:!0,defaultValue:li,show:function(e){return!e.style.autoColor}},dashed:{ref:\"style.dashed\",translation:ui.STYLE.DASHED,type:\"boolean\",defaultValue:!0,change:vi}}}};export{dt as cache,Ze as colorService,ht as debouncer,ct as dockService,st as getValue,bt as layoutService,pt as memoize,qt as pluginService,eo as selectionService,ft as setValue,vt as storage,co as themeService,mt as throttler,Wo as tooltipService,xi as trendlinesService};\n","/* eslint-disable prefer-rest-params */\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n * Modified by Qliktech\n */\n// Inspired by base2 and Prototype\n\n/* eslint no-new-func:0,no-unused-vars:0 */\n\nconst fnTest = /xyz/.test(() => {\n let xyz;\n})\n ? /\\b_super\\b/\n : /.*/;\n\n/**\n * Helper module for creating subclasses (or rather prototypal inheritance) of superclasses.\n *\n * @class\n *\n * @example\n * var Animal = Class.extend( \"Animal\", {\n * init: function ( name ) {\n * this.name = name || \"Unnamed\";\n * },\n * say: function ( sound ) {\n * console.log( this.name + \" says \" + sound );\n * }\n * } );\n *\n * var Cat = Animal.extend( \"Cat\", {\n * say: function () {\n * this._super( \"Meouw\" );\n * }\n * } );\n *\n * var cat = new Cat( \"Gustaf\" );\n * cat.say(); => \"Gustaf says Meouw\"\n *\n * @example\n * var MyClass = Class.extend();\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => Class\n *\n * @example\n * var MyClass = Class.extend( \"MyClass\" );\n *\n * var a = new MyClass();\n * console.log( a instanceof MyClass ) // => true\n * console.log( a.constructor.name ) // => MyClass\n *\n */\nconst Class = function () {};\n\n/**\n * This method is available inside each function defined on the prototype when using {@link module:assets/core/utils/class~Class.extend}.\n *\n * It will invoke the super class' method with the same name, but it's up to programmer to invoke it with the arguments needed.\n * @method module:assets/core/utils/class~Class#_super\n */\n\n/**\n * Create a new Class that inherits from this class\n * @param {String} [className=\"Class\"] The name of the new class constructor.\n * @param {Object} proto The prototype for the new class.\n */\nClass.extend = function extend(className, proto) {\n const _super = this.prototype;\n\n if (typeof className !== 'string') {\n proto = className;\n className = 'Class';\n }\n\n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n const prototype = Object.create(this.prototype);\n\n // Copy the properties over onto the new prototype\n for (const name in proto) {\n // Check if we're overwriting an existing function\n prototype[name] =\n typeof proto[name] === 'function' && typeof _super[name] === 'function' && fnTest.test(proto[name])\n ? (function (name, fn) {\n return function () {\n const tmp = this._super;\n\n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n\n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n const ret = fn.apply(this, arguments);\n this._super = tmp;\n\n return ret;\n };\n })(name, proto[name])\n : proto[name];\n }\n\n if (!/^[_a-z][_a-z\\d]*$/i.test(className)) {\n throw new Error('Invalid subclass name. Alphanumericals only.');\n }\n\n // The dummy class constructor\n const ctor = new Function(\n `return (function ${className}(){ typeof this.init === 'function' && this.init.apply(this, [].slice.call(arguments)) });`\n )();\n\n // Populate our constructed prototype object\n ctor.prototype = prototype;\n\n // Enforce the constructor to be what we expect\n ctor.prototype.constructor = ctor;\n\n // And make this class extendable\n ctor.extend = extend;\n\n return ctor;\n};\n\nexport default Class;\n","// private\nconst idGen = {\n getChar(value) {\n // 0 o O i I l\n const banned = [48, 111, 79, 105, 73, 108];\n let val = value;\n\n let charCode;\n if (val > 9) {\n charCode = 65 + val - 10;\n if (charCode > 90) {\n charCode += 6;\n }\n } else {\n val = `${val}`.charCodeAt(0);\n }\n return banned.indexOf(charCode) > -1 ? this.getChar(val + 1) : String.fromCharCode(charCode);\n },\n base62(value) {\n const chr = this.getChar(value % 62);\n const y = Math.floor(value / 62);\n return y > 0 ? this.base62(y) + chr : chr;\n },\n id() {\n const s = this.base62(Math.round(Math.random() * (1e13 - 1e11) + 1e11));\n return s.replace(/\\W/g, '');\n },\n};\n\nexport default function generateId() {\n return idGen.id();\n}\n","function getAxisDock(direction, dock, isRtl) {\n return direction === 'y' ? getYAxisDock(dock, isRtl) : getXAxisDock(dock);\n}\n\nfunction getOppositeAxisDock(direction, dock, isRtl) {\n const oppositeDock = dock === 'far' ? 'near' : 'far';\n return getAxisDock(direction, oppositeDock, isRtl);\n}\n\nfunction getYAxisDock(dock, isRtl) {\n const yDockNearFar = dock || 'near';\n return (isRtl && yDockNearFar === 'near') || (!isRtl && yDockNearFar === 'far') ? 'right' : 'left';\n}\n\nfunction getXAxisDock(dock) {\n return dock === 'far' ? 'top' : 'bottom';\n}\n\nexport default {\n getAxisDock,\n getOppositeAxisDock,\n getYAxisDock,\n};\n","// Source: https://en.wikipedia.org/wiki/Bi-directional_text and http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt\n// 3 types of strong direction characters: L (strong left-to-right), R(strong right-to-left, Hebrew) and AL(strong right-to-left, Arabic language)\nconst rangesOfLChars =\n '[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u037D\\u0386\\u0388-\\u03F5\\u03F7-\\u0482\\u048A-\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u097F\\u0982-\\u09B9\\u09BD-\\u09C0\\u09C7-\\u09CC\\u09CE-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u0A03-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A6F\\u0A72-\\u0A74\\u0A83-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9-\\u0ACC\\u0AD0-\\u0AE1\\u0AE6-\\u0AEF\\u0B02-\\u0B39\\u0B3D-\\u0B3E\\u0B40\\u0B47-\\u0B4C\\u0B57-\\u0B61\\u0B66-\\u0B77\\u0B83-\\u0BBF\\u0BC1-\\u0BCC\\u0BD0-\\u0BF2\\u0C01-\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C61\\u0C66-\\u0C6F\\u0C7F-\\u0CB9\\u0CBD-\\u0CCB\\u0CD5-\\u0CE1\\u0CE6-\\u0D40\\u0D46-\\u0D4C\\u0D4E-\\u0D61\\u0D66-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD-\\u0EC6\\u0ED0-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083-\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u135A\\u1360-\\u138F\\u13A0-\\u13F4\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u1711\\u1720-\\u1731\\u1735-\\u1751\\u1760-\\u1770\\u1780-\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u18A8\\u18AA-\\u191C\\u1923-\\u1926\\u1929-\\u1931\\u1933-\\u1938\\u1946-\\u19DA\\u1A00-\\u1A16\\u1A19-\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6-\\u1BA7\\u1BAA-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1C2B\\u1C34-\\u1C35\\u1C3B-\\u1C7F\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1DBF\\u1E00-\\u1FBC\\u1FBE\\u1FC2-\\u1FCC\\u1FD0-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FFC\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E-\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2D00-\\u2D70\\u2D80-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA66E\\uA680-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA925\\uA92E-\\uA946\\uA952-\\uA97C\\uA983-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEC\\uABF0-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFDC]';\nconst rangesOfRChars =\n '[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u07C0-\\u07EA\\u07F4-\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB4F]';\nconst rangesOfALChars =\n '[\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u070D\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\uFB50-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]';\n// eslint-disable-next-line no-misleading-character-class\nconst rangesOfLRgExp = new RegExp(rangesOfLChars);\nconst rangesOfRRgExp = new RegExp(rangesOfRChars);\nconst rangesOfALRgExp = new RegExp(rangesOfALChars);\n\nconst // left-to-right marker\n lrm = String.fromCharCode(8206); // right-to-left marker\n\nconst rlm = String.fromCharCode(8207);\n\nfunction isLtrChar(c) {\n return rangesOfLRgExp.test(c);\n}\n\nfunction isRtlChar(c) {\n return rangesOfRRgExp.test(c) || rangesOfALRgExp.test(c);\n}\n\nfunction detectTextDirection(s) {\n const n = s ? s.length : 0;\n let i;\n let c;\n for (i = 0; i < n; i++) {\n c = s[i];\n if (isLtrChar(c)) {\n return 'ltr';\n }\n if (isRtlChar(c)) {\n return 'rtl';\n }\n }\n return 'ltr';\n}\n\nexport default {\n lrm,\n rlm,\n detectTextDirection,\n};\n","import extend from 'extend';\nimport RtlUtil from '../../../../extra/rtl-util';\n\n/**\n * Get Picasso settings for an individual ref-line.\n *\n * @param {*} settings Default settings for the ref-line\n * @param {*} lineColorIndex Chart builder options + paletteColor option\n */\nfunction lineSettings(settings, options) {\n const lineStroke =\n typeof options.paletteColor !== 'undefined'\n ? options.theme.getColorPickerColor(options.paletteColor)\n : 'transparent';\n const defaultSettings = {\n value: 0,\n line: {\n stroke: lineStroke,\n strokeDasharray: options?.style?.lineType,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\n/**\n * Get Picasso settings for an individual ref-line used to display label and OOB.\n *\n * @param {*} settings Default settings for the ref-line label\n * @param {*} options Chart builder options + paletteColor option\n */\nfunction lineLabelSettings(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n let labelColor = options.theme.getStyle(chartID, 'referenceLine.label.name', 'color');\n const labelFontSize = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontSize');\n const labelFontFamily = options.theme.getStyle(chartID, 'referenceLine.label.name', 'fontFamily');\n\n if (options.paletteColor) {\n labelColor = options.theme.getColorPickerColor(options.paletteColor);\n } else if (!labelColor) {\n labelColor = 'transparent';\n }\n\n const defaultSettings = {\n value: 0,\n line: {\n stroke: 'transparent',\n },\n label: {\n align: 'center',\n vAlign: 'middle',\n text: '',\n fill: labelColor,\n fontFamily: labelFontFamily,\n fontSize: labelFontSize,\n maxWidthPx: 135,\n },\n };\n return extend(true, defaultSettings, settings || {});\n}\n\nconst isVisible = (refLine) =>\n refLine && refLine.show !== false && refLine.show !== 0 && refLine.show !== '0' && refLine.refLineExpr !== undefined;\n\nfunction getRefLineTitle({ refLine, label, valueString }) {\n if (refLine.showValue !== false) {\n if (refLine.showLabel !== false) {\n return `${label} ${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n return `${RtlUtil.lrm}(${valueString})${RtlUtil.lrm}`;\n }\n if (refLine.showLabel !== false) {\n return label;\n }\n return '';\n}\n\nexport default {\n lineSettings,\n lineLabelSettings,\n isVisible,\n getRefLineTitle,\n};\n","import DimensionMeasureChartLayoutSettings from './layout-settings';\n\nconst constants = {\n SHOW_AXIS_LABELS_OPTIONS: ['all', 'labels'], // show dim/measure axis labels when it matches one of this values\n SHOW_TITLE_OPTIONS: ['all', 'title'], // show the dimension/measure title when the show option matches one of these values\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n LAYOUTSETTINGS: DimensionMeasureChartLayoutSettings,\n};\n\nconstants.DEFAULT_CHART_ORIENTATION = constants.HORIZONTAL;\n\nexport default constants;\n","export default {\n lasso: {\n displayOrder: 10000,\n },\n rangeDim: {\n displayOrder: 10000,\n },\n rangeMeasure: {\n displayOrder: 10000,\n },\n rangeMinor: {\n displayOrder: 10000,\n },\n\n // SPARK\n scrollBar: {\n minimumLayoutMode: 'SPARK',\n prioOrder: -1,\n displayOrder: 100,\n },\n\n refLines: {\n minimumLayoutMode: 'SPARK',\n prioOrder: 60,\n displayOrder: -10,\n },\n\n // XMALL\n measureAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n dimensionAxisTitle: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 30,\n displayOrder: 90,\n },\n\n measureAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n dimensionAxis: {\n minimumLayoutMode: 'XSMALL',\n prioOrder: 10,\n displayOrder: 80,\n },\n\n gridLines: {\n minimumLayoutMode: 'XSMALL',\n displayOrder: -100,\n },\n\n // SMALL\n refLinesLabels: {\n minimumLayoutMode: 'SMALL',\n prioOrder: 60,\n displayOrder: 0,\n },\n};\n","import extend from 'extend';\nimport generateId from '../../../../extra/generate-id';\nimport getScrollActions from '../../../scroll/scroll-actions';\nimport axisDockUtil from '../../components/util/axis-dock-util';\nimport refLineUtil from '../../components/util/ref-line-util';\nimport CONSTANTS from './constants';\n\nconst SENSE_PICASSO_SPACING_COEFFICIENT = 100;\n\nfunction DimensionMeasureChart(chartBuilder, opts) {\n const options = opts || {};\n\n const measureAxisProperties = options.measureAxisProperties || {};\n const dimensionAxisProperties = options.dimensionAxisProperties || {};\n const chartOrientation = options.orientation || CONSTANTS.DEFAULT_CHART_ORIENTATION;\n const isChartHorizontal = chartOrientation === CONSTANTS.HORIZONTAL;\n const measureDirection = isChartHorizontal ? 'x' : 'y';\n const dimensionDirection = isChartHorizontal ? 'y' : 'x';\n const SHOW_AXIS_LABELS_OPTIONS = CONSTANTS.SHOW_AXIS_LABELS_OPTIONS;\n const SHOW_TITLE_OPTIONS = CONSTANTS.SHOW_TITLE_OPTIONS;\n const includeMeasureAxisComponent = SHOW_AXIS_LABELS_OPTIONS.includes(measureAxisProperties.show);\n const includeMeasureAxisTitleComponent =\n !!options.measureTitleText && SHOW_TITLE_OPTIONS.includes(measureAxisProperties.show);\n const includeDimensionAxisComponent =\n options.includeDimensionAxis && SHOW_AXIS_LABELS_OPTIONS.includes(dimensionAxisProperties.show);\n const includeDimensionAxisTitleComponent =\n options.includeDimensionAxis &&\n !!options.dimensionTitleText &&\n SHOW_TITLE_OPTIONS.includes(dimensionAxisProperties.show);\n const includeGridlines = options.gridlines && !(!options.gridlines.auto && options.gridlines.spacing === 0);\n\n const includeRefLines = options.refLines && options.refLines.some((refLine) => refLine.show);\n\n const interactionActions = [];\n\n if (includeMeasureAxisComponent) {\n addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (includeMeasureAxisTitleComponent) {\n addMeasureAxisTitleComponent(chartBuilder, options, measureDirection);\n }\n\n addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties);\n\n if (includeDimensionAxisComponent) {\n addDimensionAxisComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (includeDimensionAxisTitleComponent) {\n addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection);\n }\n\n if (options.includeDimensionAxis) {\n addDimensionScale(chartBuilder, options, chartOrientation);\n }\n\n if (includeGridlines) {\n addGridlinesComponent(chartBuilder, options.gridlines, measureDirection);\n }\n\n if (options.hasNavigation) {\n addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal);\n }\n\n if (includeRefLines) {\n addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties);\n }\n\n if (options.enableLasso && options.selectionsEnabled) {\n const lassoOptions = options.lasso || {};\n addLassoComponent(chartBuilder, lassoOptions);\n }\n\n if (options.enableDimRange && options.includeDimensionAxis && options.selectionsEnabled) {\n const rangeDimOptions = options.dimRange || {};\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeDimComponent(chartBuilder, rangeDimOptions, isChartHorizontal, dimensionAxisOptions.dock, options.isRtl);\n }\n\n if (options.enableMeasureRange && options.selectionsEnabled) {\n const rangeMeasureOptions = options.measureRange || {};\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n addRangeMeasureComponent(\n chartBuilder,\n rangeMeasureOptions,\n isChartHorizontal,\n measureAxisOptions.dock,\n options.isRtl\n );\n }\n\n if (options.enableAreaRange && options.selectionsEnabled) {\n const areaDimOptions = options.areaRange || {};\n const dimAreaAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n addRangeAreaComponent(chartBuilder, areaDimOptions, isChartHorizontal, dimAreaAxisOptions.dock, options.isRtl);\n }\n\n if (options.brushActions) {\n addInteractionActions(interactionActions, options.brushActions);\n }\n\n if (interactionActions.length) {\n addInteractionComponent(chartBuilder, interactionActions);\n }\n}\n\nexport default DimensionMeasureChart;\n\nfunction addInteractionComponent(chartBuilder, interactionActions) {\n return chartBuilder.addInteraction({}, { gestures: interactionActions });\n}\n\nfunction addInteractionActions(interactionActions, actions) {\n actions.forEach((a) => {\n interactionActions.push(a);\n });\n}\n\nfunction addMeasureScale(chartBuilder, options, chartOrientation, measureAxisProperties) {\n let measureScaleSettings = options.measureScaleSettings;\n\n const measureScaleOptions = {\n isRtl: options.isRtl,\n source: options.measureSource,\n orientation: chartOrientation,\n measureAxisProperties,\n };\n\n if (measureAxisProperties && measureAxisProperties.spacing > 0) {\n measureScaleSettings = extend(true, measureScaleSettings || {}, {\n component: {\n ticks: {\n distance: measureAxisProperties.spacing * SENSE_PICASSO_SPACING_COEFFICIENT,\n },\n },\n });\n }\n\n chartBuilder.addScale('measure-scale', measureScaleSettings, measureScaleOptions);\n}\n\nfunction addMeasureAxisComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n let measureAxisSettings = {\n scale: 'measure',\n forceBounds: measureAxisProperties && !measureAxisProperties.autoMinMax && measureAxisProperties.showBounds,\n };\n measureAxisSettings = extend(measureAxisSettings, CONSTANTS.LAYOUTSETTINGS.measureAxis);\n\n const measureAxisOptions = getMeasureAxisOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis`, measureAxisSettings, measureAxisOptions);\n}\n\nfunction addMeasureAxisTitleComponent(chartBuilder, options, measureDirection) {\n let measureTitleSettings = {\n text: options.measureTitleText,\n };\n measureTitleSettings = extend(measureTitleSettings, CONSTANTS.LAYOUTSETTINGS.measureAxisTitle);\n\n const measureAxisOptions = getMeasureAxisTitleOptions(options, measureDirection);\n\n chartBuilder.addComponent(`${measureDirection}-axis-title`, measureTitleSettings, measureAxisOptions);\n}\n\nfunction addDimensionScale(chartBuilder, options, chartOrientation) {\n const dimensionScaleOptions = {\n isRtl: options.isRtl,\n source: options.dimensionSource,\n orientation: chartOrientation === CONSTANTS.HORIZONTAL ? CONSTANTS.VERTICAL : CONSTANTS.HORIZONTAL,\n };\n\n chartBuilder.addScale('dimension-scale', options.dimensionScaleSettings, dimensionScaleOptions);\n}\n\nfunction addDimensionAxisComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisSettings = {\n scale: 'dimension',\n };\n dimensionAxisSettings = extend(dimensionAxisSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxis);\n\n const dimensionAxisOptions = getDimensionAxisOptions(options, dimensionDirection);\n\n extend(true, dimensionAxisSettings, options.dimensionAxisSettings || {});\n\n chartBuilder.addComponent(`${dimensionDirection}-axis`, dimensionAxisSettings, dimensionAxisOptions);\n}\n\nfunction addDimensionAxisTitleComponent(chartBuilder, options, dimensionDirection) {\n let dimensionAxisTitleSettings = {\n text: options.dimensionTitleText,\n };\n dimensionAxisTitleSettings = extend(dimensionAxisTitleSettings, CONSTANTS.LAYOUTSETTINGS.dimensionAxisTitle);\n\n const dimensionAxisTitleOptions = getDimensionAxisTitleOptions(options, dimensionDirection);\n\n chartBuilder.addComponent(`${dimensionDirection}-axis-title`, dimensionAxisTitleSettings, dimensionAxisTitleOptions);\n}\n\nfunction addGridlinesComponent(chartBuilder, gridlinesOptions, measureDirection) {\n let gridlinesSettings = {\n ticks: {\n show: true,\n },\n minorTicks: {\n show: !gridlinesOptions.auto && !gridlinesOptions.auto && gridlinesOptions.spacing === 3,\n },\n };\n gridlinesSettings = extend(gridlinesSettings, CONSTANTS.LAYOUTSETTINGS.gridLines);\n\n gridlinesSettings[measureDirection] = { scale: 'measure' };\n\n chartBuilder.addComponent('grid-line', gridlinesSettings);\n}\n\nfunction addScrollbarComponent(chartBuilder, interactionActions, options, isChartHorizontal) {\n const settings = chartBuilder.getSettings();\n\n settings.scroll = {\n dimension: {\n viewSize: (options.scrollSettings && options.scrollSettings.viewSize) || 0,\n max: (options.scrollSettings && options.scrollSettings.max) || 0,\n },\n };\n\n const scrollbarOptions = {\n isRtl: options.isRtl,\n chartID: options.chartID,\n isHorizontal: !isChartHorizontal,\n };\n\n const scrollBarSettings = extend({}, CONSTANTS.LAYOUTSETTINGS.scrollBar);\n\n chartBuilder.addComponent('scrollbar', scrollBarSettings, scrollbarOptions);\n\n addInteractionActions(interactionActions, getScrollActions(options.isNavigationEnabledFn));\n}\n\n/*\n * Add \"ref-line\" component(s). Currently two \"ref-line\" components are used to reserve space for labels and\n * OOB markers outside of the data area. First component: shows the line(s) within the data area. Second component:\n * shows the label(s) and OOB marker(s).\n */\nfunction addRefLineComponent(chartBuilder, options, measureDirection, measureAxisProperties) {\n const axisDock = axisDockUtil.getAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl);\n let refLinesSettings = {\n // First component\n key: 'ref-line',\n style: {\n oob: {\n show: false,\n },\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesSettings = extend(refLinesSettings, CONSTANTS.LAYOUTSETTINGS.refLines);\n\n let refLinesLabelsSettings = {\n // Second component\n // Use a unique key to force re-render of this component in Picasso.\n // This must be done because Picasso does not allow re-binding of functions (and shouldn't either).\n key: `ref-line-labels-${generateId()}`,\n require: ['renderer', 'chart'],\n dock: axisDockUtil.getOppositeAxisDock(measureDirection, measureAxisProperties.dock, options.isRtl),\n preferredSize() {\n if (measureDirection === 'x') {\n // Use constant component size if horizontal\n return 26;\n }\n\n // Adapt component size to the longest label if vertical\n const measureText = this.renderer.measureText;\n const formatter = this.chart.formatter({ data: chartBuilder.settings.scales.measure.data });\n const labelWidths = refLinesLabelsSettings.lines.y.map((line) => {\n const formattedValue = line.label.showValue !== false ? `(${formatter(line.value)})` : '';\n const text = `${line.label.text} ${formattedValue}`;\n const minimumText = line.label.text && formattedValue ? ` ${formattedValue}` : formattedValue;\n return {\n wanted: measureText({\n text,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n required: measureText({\n text: minimumText,\n fontSize: line.fontSize,\n fontFamily: line.fontFamily,\n }).width,\n };\n });\n\n const maxLabelWidth = labelWidths[0];\n for (let i = 1; i < labelWidths.length; i++) {\n if (labelWidths[i].wanted > maxLabelWidth.wanted) {\n maxLabelWidth.wanted = labelWidths[i].wanted;\n }\n if (labelWidths[i].required > maxLabelWidth.required) {\n maxLabelWidth.required = labelWidths[i].required;\n }\n }\n const labelPadding = 12;\n if (maxLabelWidth.required + labelPadding > 100) {\n return maxLabelWidth.required + labelPadding; // Always have space for the value\n }\n return Math.min(maxLabelWidth.wanted + labelPadding, 100); // Limit to 100 px width\n },\n lines: {\n x: [],\n y: [],\n },\n };\n refLinesLabelsSettings = extend(refLinesLabelsSettings, CONSTANTS.LAYOUTSETTINGS.refLinesLabels);\n\n options.refLines.forEach((refLine) => {\n if (!refLine.show) {\n return;\n }\n\n const expressionValue = refLine.refLineExpr && refLine.refLineExpr.value;\n const lineOptions = extend(true, {}, options, {\n paletteColor: refLine.paletteColor,\n style: refLine.style,\n chartID: chartBuilder.options.chartID,\n });\n\n // Add a line for each visible ref line\n const lineSettings = refLineUtil.lineSettings(\n {\n scale: 'measure',\n dir: measureDirection,\n value: expressionValue,\n },\n lineOptions\n );\n\n refLinesSettings.lines[measureDirection].push(lineSettings);\n\n // Add a label and an OOB marker for each visible ref line (using the second component)\n const lineLabelSettings = refLineUtil.lineLabelSettings(\n {\n scale: 'measure',\n value: expressionValue,\n label: {\n text: refLine.showLabel !== false ? refLine.label : '',\n showValue: refLine.showValue !== false,\n },\n },\n lineOptions\n );\n\n if (measureDirection === 'x') {\n lineLabelSettings.label.vAlign = axisDock === 'near' ? 1 : 0;\n } else {\n // y\n lineLabelSettings.label.align = axisDock === 'near' ? 0 : 1;\n }\n\n refLinesLabelsSettings.lines[measureDirection].push(lineLabelSettings);\n });\n\n chartBuilder.addComponent('ref-line', refLinesSettings, {});\n chartBuilder.addComponent('ref-line', refLinesLabelsSettings, {});\n}\n\n/**\n * Adds a lasso component to the chart builder\n * @param {ChartBuilder} chartBuilder\n * @param {object} options - lasso options\n * @param {string} options.brushKey - key used as context for lasso selection triggers\n * @param {string} options.brushComponent - target component key\n */\nfunction addLassoComponent(chartBuilder, options) {\n const lassoOptions = {\n brushKey: options.brushKey,\n brushComponents: options.brushComponents,\n brushData: options.brushData,\n };\n\n chartBuilder.addComponent('lasso', CONSTANTS.LAYOUTSETTINGS.lasso, lassoOptions);\n}\n/**\n * Adds a dimension range component to the chart builder\n * @param {any} chartBuilder\n * @param {object} options - range dim options\n * @param {string} options.brushKey - key used as context for range selection triggers\n * @param {string} options.brushAxis - target axis to perform range select on\n * @param {string} options.brushScale - Scale to use\n * @param {boolean} isChartHorizontal - Whether the chart is horizontal or not\n */\nfunction addRangeDimComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeDimSettings = {\n key: 'rangeDim',\n };\n\n rangeDimSettings = extend(rangeDimSettings, CONSTANTS.LAYOUTSETTINGS.rangeDim);\n\n const rangeDimOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n isHorizontal: !isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeDimSettings, rangeDimOptions);\n}\n\nfunction addRangeMeasureComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMeasureSettings = {\n key: 'rangeMeasure',\n };\n\n rangeMeasureSettings = extend(rangeMeasureSettings, CONSTANTS.LAYOUTSETTINGS.rangeMeasure);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushArea: options.brushArea,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: isChartHorizontal,\n dock,\n isRtl,\n };\n\n chartBuilder.addComponent('range', rangeMeasureSettings, rangeMeasureOptions);\n}\n\nfunction addRangeAreaComponent(chartBuilder, options, isChartHorizontal, dock, isRtl) {\n let rangeMinorSettings = {\n key: 'rangeMinor',\n };\n\n rangeMinorSettings = extend(rangeMinorSettings, CONSTANTS.LAYOUTSETTINGS.rangeMinor);\n\n const rangeMeasureOptions = {\n brushKey: options.brushKey,\n brushAxis: options.brushAxis,\n brushData: options.brushData,\n brushArea: options.brushArea,\n brushComponents: options.brushComponents,\n brushScale: options.brushScale,\n multiple: options.multiple,\n isHorizontal: options.brushScale === 'measure' ? isChartHorizontal : !isChartHorizontal,\n dock,\n isRtl,\n chartInstance: options.chartInstance,\n };\n\n chartBuilder.addComponent('range-area', rangeMinorSettings, rangeMeasureOptions);\n}\n\nfunction getMeasureAxisOptions(options, measureDirection) {\n return {\n dock: options.measureAxisProperties && options.measureAxisProperties.dock,\n direction: measureDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getMeasureAxisTitleOptions(options, measureDirection) {\n return getMeasureAxisOptions(options, measureDirection);\n}\n\nfunction getDimensionAxisOptions(options, dimensionDirection) {\n return {\n dock: options.dimensionAxisProperties && options.dimensionAxisProperties.dock,\n direction: dimensionDirection,\n isRtl: options.isRtl,\n };\n}\n\nfunction getDimensionAxisTitleOptions(options, dimensionDirection) {\n return getDimensionAxisOptions(options, dimensionDirection);\n}\n","const SCROLLBAR_KEY = 'scrollbar';\n\nfunction getActions(isEnabledFn) {\n function targetIsScrollbar(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n const startPoint = {\n x: e.center.x - e.deltaX,\n y: e.center.y - e.deltaY,\n };\n const components = this.chart.componentsFromPoint(startPoint);\n return components.some((c) => c.settings.key === SCROLLBAR_KEY);\n }\n\n const tap = {\n // single tap\n type: 'Tap',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n tap(e) {\n this.chart.component(SCROLLBAR_KEY).emit('tap', e);\n },\n },\n };\n\n const pan = {\n type: 'Pan',\n options: {\n enable: targetIsScrollbar,\n },\n events: {\n panstart(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panStart', e);\n },\n pan(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panMove', e);\n },\n panend(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panEnd', e);\n },\n pancancel(e) {\n this.chart.component(SCROLLBAR_KEY).emit('panCancel', e);\n },\n },\n };\n\n const actions = [tap, pan];\n return actions;\n}\n\nexport default getActions;\n","import extend from 'extend';\n\nfunction scale(settings, opts) {\n const options = opts || {};\n const isHorizontal = !options.orientation || options.orientation === 'horizontal';\n const isRtl = !!options.isRtl;\n\n const defaultSettings = {\n name: options.name || 'scale',\n component: {\n invert: isHorizontal && isRtl,\n minorTicks: {\n count: 1,\n },\n range: options.range || undefined,\n domain: options.domain || undefined,\n trackBy: options.trackBy || 'id',\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction measureScale(settings, opts) {\n const options = opts || {};\n let fields = options.source || [];\n if (typeof fields === 'string') {\n fields = [fields];\n }\n\n const defaultSettings = {\n name: 'measure',\n component: {\n expand: 0.1,\n data: {\n fields: fields.map((f) => ({\n field: f,\n })),\n },\n },\n };\n\n const measureAxisProperties = opts && opts.measureAxisProperties;\n\n if (measureAxisProperties && !measureAxisProperties.autoMinMax) {\n // explicit min max measure scale range\n if (['min', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.min = measureAxisProperties.min;\n }\n if (['max', 'minMax'].includes(measureAxisProperties.minMax)) {\n defaultSettings.component.max = measureAxisProperties.max;\n }\n }\n\n const measureSettings = extend(true, defaultSettings, settings || {});\n const scaleSettings = scale(measureSettings, opts);\n const hasInvertSettings = settings && settings.component && typeof settings.component.invert !== 'undefined';\n\n if (!hasInvertSettings && opts && opts.orientation === 'vertical') {\n scaleSettings.component.invert = !scaleSettings.component.invert;\n }\n\n return scaleSettings;\n}\n\nfunction dimensionScale(settings, opts) {\n const defaultSettings = {\n name: 'dimension',\n component: {\n trackBy: 'id',\n type: 'band',\n data: {\n extract: {\n field: (opts && opts.source) || '',\n props: {\n label(v) {\n return v.qText || '';\n }, // Map qText to handle both qElemNo and qElemNumber\n },\n },\n },\n label(v) {\n return v.datum.label.value;\n }, // Set qText as value from the mapping on r.92\n },\n };\n\n const dimensionSettings = extend(true, defaultSettings, settings || {});\n\n return scale(dimensionSettings, opts);\n}\n\nscale.measureScale = measureScale;\nscale.dimensionScale = dimensionScale;\n\nexport default scale;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction axis(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'axis.line.major', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const labelsFill = options.theme.getStyle(chartID, 'axis.label.name', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'axis.label.name', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n const labelsFontFamily = options.theme.getStyle(chartID, 'axis.label.name', 'fontFamily');\n\n const defaultSettings = {\n key: 'axis',\n type: 'axis',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl),\n brush: { trigger: [], consume: [] },\n settings: {\n title: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n line: {\n show: true,\n strokeWidth: 1,\n stroke: axisLineStroke,\n },\n labels: {\n fill: labelsFill,\n fontSize: labelsFontSize,\n fontFamily: labelsFontFamily,\n tiltAngle: isRtl ? -40 : 40,\n maxEdgeBleed: 75,\n maxSize: 150,\n mode: 'auto',\n },\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxis(settings, options) {\n const defaultSettings = {\n key: 'x-axis',\n scale: 'x',\n };\n const xAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(xAxisSettings, options);\n}\n\nfunction yAxis(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis',\n scale: 'y',\n dock: axisDockUtil.getYAxisDock(dock, isRtl),\n };\n const yAxisSettings = extend(true, defaultSettings, settings || {});\n return axis(yAxisSettings, options);\n}\n\naxis.xAxis = xAxis;\naxis.yAxis = yAxis;\n\nexport default axis;\n","import extend from 'extend';\nimport axisDockUtil from './util/axis-dock-util';\n\nfunction text(settings, options) {\n const chartID = options && options.chartID;\n const dock = options && options.dock;\n const direction = options && options.direction;\n const isRtl = options && options.isRtl;\n const titleFontSize = options.theme.getStyle(chartID, 'axis.title', 'fontSize');\n const titleFill = options.theme.getStyle(chartID, 'axis.title', 'color');\n const titleFontFamily = options.theme.getStyle(chartID, 'axis.title', 'fontFamily');\n\n const defaultSettings = {\n key: 'text',\n type: 'text',\n dock: axisDockUtil.getAxisDock(direction, dock, isRtl) || 'bottom',\n displayOrder: 0, // TODO: This can be removed when picasso set displayOrder for text component to 0. Currently picasso set it to 99.\n style: {\n text: {\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nfunction xAxisTitle(settings, options) {\n const defaultSettings = {\n key: 'x-axis-title',\n };\n const xAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(xAxisTitleSettings, options);\n}\n\nfunction yAxisTitle(settings, options) {\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const defaultSettings = {\n key: 'y-axis-title',\n dock: axisDockUtil.getYAxisDock(dock, isRtl) || 'left',\n };\n const yAxisTitleSettings = extend(true, defaultSettings, settings || {});\n return text(yAxisTitleSettings, options);\n}\n\ntext.xAxisTitle = xAxisTitle;\ntext.yAxisTitle = yAxisTitle;\n\nexport default text;\n","function getBublesAlign(isHorizontal, dock, isRtl) {\n let isAlignStart = (isHorizontal && dock !== 'far') || (!isHorizontal && dock === 'far');\n if (!isHorizontal && isRtl) {\n isAlignStart = !isAlignStart;\n }\n return isAlignStart ? 'start' : 'end';\n}\n\nfunction getDock(brushAxis, brushArea) {\n const dockTargets = [];\n let dockT;\n if (brushAxis) {\n dockTargets.push(`@${brushAxis}`);\n }\n if (brushArea) {\n dockTargets.push(`@${brushArea}`);\n }\n if (dockTargets.length) {\n dockT = dockTargets.join(',');\n }\n return dockT;\n}\n\nexport default {\n getBublesAlign,\n getDock,\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nconst layoutModes = {\n SPARK: { width: 0, height: 0 },\n XSMALL: { width: 150, height: 75 },\n SMALL: { width: 300, height: 150 },\n MEDIUM: { width: 400, height: 220 },\n FULL: { width: 550, height: 450 },\n};\n\nfunction LayoutModes() {\n return layoutModes;\n}\n\nLayoutModes.getLayoutModeKeys = function () {\n const layoutModeKeys = [];\n let modeKey;\n\n for (modeKey in layoutModes) {\n layoutModeKeys.push(modeKey);\n }\n return layoutModeKeys;\n};\n\nexport default LayoutModes;\n","import extend from 'extend';\n\nfunction getLabel(context) {\n const end = context.data.end;\n const formatter = context.dataset(end.source.key).field(end.source.field).formatter();\n return formatter(end.value);\n}\n\nfunction labels(settings, options) {\n const chartID = options && options.chartID;\n const labelsFill = options.theme.getStyle(chartID, 'label.value', 'color');\n const labelsFontSize = options.theme.getStyle(chartID, 'label.value', 'fontSize');\n const labelsFontFamily = options.theme.getStyle(chartID, 'label.value', 'fontFamily');\n\n const defaultSettings = {\n key: 'labels',\n type: 'labels',\n displayOrder: 1,\n settings: {\n sources: [\n {\n component: 'box-marker', // Connects with the matching \"key:\" attribute in the visualizations\n selector: 'rect',\n strategy: {\n type: 'bar',\n settings: {\n direction: 'up',\n fontFamily: labelsFontFamily,\n fontSize: parseFloat(labelsFontSize),\n align: 0.5,\n labels: [\n {\n placements: [\n {\n position: 'outside',\n fill: labelsFill,\n justify: 0,\n },\n {\n position: 'inside',\n fill: settings && settings.settings.sources[0].strategy.settings.labels[0].placements[1].fill,\n justify: 1,\n },\n ],\n label: getLabel,\n },\n ],\n },\n },\n },\n ],\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default labels;\n","import extend from 'extend';\n\nconst directions = {\n left: 'left',\n right: 'right',\n up: 'top',\n down: 'bottom',\n};\n\nfunction legend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = (options && options.dock) || 'auto';\n const show = options && options.show;\n\n if (dock === 'auto') {\n dock = options.chartHeight / options.chartWidth < 1 ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const itemFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const itemFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const itemFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n const defaultSettings = {\n key: 'legend',\n type: 'legend-cat',\n dock,\n show,\n\n scale: {\n type: 'color',\n },\n settings: {\n title: {\n anchor: 'middle',\n },\n layout: {\n direction: isRtl ? 'rtl' : 'ltr',\n size: dock === 'top' || dock === 'bottom' ? 2 : 1,\n vertical: dock === 'top' || dock === 'bottom' ? 16 : 8,\n },\n navigation: {\n button: {\n class: {\n 'lui-fade-button': true,\n },\n content(h, state) {\n const c = ['lui-button__icon', 'lui-icon', `lui-icon--triangle-${directions[state.direction]}`];\n return h('span', {\n style: {\n pointerEvents: 'none',\n },\n class: c.join(' '),\n });\n },\n },\n },\n },\n style: {\n item: {\n label: {\n fontSize: itemFontSize,\n fontFamily: itemFontFamily,\n fill: itemFill,\n lineHeight: 1,\n wordBreak: 'break-word',\n },\n margin: {\n top: 5,\n left: 10,\n right: 10,\n bottom: 10,\n },\n shape: {\n type: options.type ? options.type : 'square',\n size: (parseInt(itemFontSize, 10) * 3) / 4, // To make it consistent with non-picasso charts\n },\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n },\n };\n return extend(true, {}, defaultSettings, settings);\n}\n\nexport default legend;\n","import extend from 'extend';\nimport ChartPresets from './chart-presets';\nimport scale from './scale';\nimport axis from './components/axis';\nimport boxMarker from './components/box-marker';\nimport eventArea from './components/event-area';\nimport gridLine from './components/grid-line';\nimport interaction from './components/interaction';\nimport pointMarker from './components/point-marker';\nimport scrollbar from './components/scrollbar';\nimport text from './components/text';\nimport lasso from './components/lasso';\nimport range from './components/range';\nimport refLine from './components/ref-line';\nimport layoutModes from './layout-modes';\nimport labels from './components/labels';\nimport categoricalLegend from './components/categorical-legend';\nimport sequentialLegend from './components/sequential-legend';\nimport rangeArea from './components/range-area';\n\nfunction createComponent(type, settings, options) {\n switch (type) {\n // Picasso components\n case 'scale':\n return scale(settings, options);\n case 'measure-scale':\n return scale.measureScale(settings, options);\n case 'dimension-scale':\n return scale.dimensionScale(settings, options);\n case 'axis':\n return axis(settings, options);\n case 'box-marker':\n return boxMarker(settings, options);\n case 'point-marker':\n return pointMarker(settings, options);\n case 'scrollbar':\n return scrollbar(settings, options);\n case 'text':\n return text(settings, options);\n case 'lasso':\n return lasso(settings, options);\n case 'range':\n return range(settings, options);\n case 'range-area':\n return rangeArea(settings, options);\n case 'categorical-legend':\n return categoricalLegend(settings, options);\n case 'sequential-legend':\n return sequentialLegend(settings, options);\n // Wrapepd picasso components\n case 'x-axis':\n return axis.xAxis(settings, options);\n case 'y-axis':\n return axis.yAxis(settings, options);\n case 'x-axis-title':\n return text.xAxisTitle(settings, options);\n case 'y-axis-title':\n return text.yAxisTitle(settings, options);\n case 'grid-line':\n return gridLine(settings, options);\n case 'interaction':\n return interaction(settings, options);\n case 'ref-line':\n return refLine(settings, options);\n // Custom components\n case 'event-area':\n return eventArea(settings, options);\n case 'labels':\n return labels(settings, options);\n default:\n return undefined;\n }\n}\n\nfunction ChartBuilder(options) {\n this.options = options || {};\n\n this.settings = {\n dockLayout: {\n layoutModes: layoutModes(),\n },\n components: [],\n scales: {},\n };\n}\n\nChartBuilder.prototype.addComponent = function addComponent(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent(type, settings, extendedOptions);\n this.settings.components.push(component);\n return component;\n};\n\nChartBuilder.prototype.addInteraction = function addInteraction(settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const component = createComponent('interaction', settings, extendedOptions);\n if (!this.settings.interactions) {\n this.settings.interactions = [];\n }\n this.settings.interactions.push(component);\n return component;\n};\n\nChartBuilder.prototype.addScale = function addScale(type, settings, options) {\n const extendedOptions = extend(true, {}, this.options, options || {});\n const scale = createComponent(type, settings, extendedOptions);\n this.settings.scales[scale.name] = scale.component;\n};\n\nChartBuilder.prototype.getSettings = function getSettings() {\n return this.settings;\n};\n\nChartBuilder.prototype.getComponent = function getComponent(key) {\n return this.settings.components.filter((component) => component.key === key)[0];\n};\n\nChartBuilder.prototype.addPreset = function addPreset(type, options) {\n ChartPresets(type, this, options);\n};\n\nChartBuilder.validateComponentKeys = function validateComponentKeys(components) {\n const keys = {};\n return components\n .map((component) => {\n const key = component.key;\n if (!key) {\n return `Missing key for component ${component.type}`;\n }\n if (keys[key]) {\n return `Duplicate key for component ${component.type}`;\n }\n keys[key] = true;\n return null;\n })\n .filter((msg) => !!msg);\n};\n\n/*\n * Factory function\n */\nChartBuilder.create = function (options) {\n return new ChartBuilder(options);\n};\n\nChartBuilder.createComponent = createComponent;\n\nexport default ChartBuilder;\n","import extend from 'extend';\n\nfunction boxMarker(settings) {\n const defaultSettings = {\n key: 'box-marker',\n type: 'box-marker',\n settings: {\n minor: { scale: 'x' },\n orientation: 'horizontal',\n },\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default boxMarker;\n","import extend from 'extend';\n\nfunction pointMarker(settings) {\n const defaultSettings = {\n key: 'point-marker',\n type: 'point-marker',\n settings: {},\n brush: { trigger: [], consume: [] },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default pointMarker;\n","import extend from 'extend';\n\nfunction scrollbar(settings, options) {\n const isRtl = options && options.isRtl;\n const chartID = options && options.chartID;\n const isHorizontal = options && options.isHorizontal;\n const defaultSettings = {\n key: 'scrollbar',\n type: 'scrollbar',\n scroll: 'dimension',\n dock: isHorizontal ? 'bottom' : isRtl ? 'left' : 'right',\n settings: {\n backgroundColor: options.theme.getStyle(chartID, '', 'backgroundColor'),\n invert: isRtl && isHorizontal,\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default scrollbar;\n","import extend from 'extend';\n\nfunction lasso(settings, options) {\n const brushKey = options && options.brushKey;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n\n const defaultSettings = {\n type: 'brush-lasso',\n key: 'lasso',\n displayOrder: 99,\n settings: {\n brush: {\n components: [],\n },\n lasso: {\n fill: 'rgba(0, 0, 0, 0)',\n stroke: 'rgba(102,102,102,1)',\n strokeWidth: 2,\n opacity: 1,\n strokeDasharray: null, // '10, 4',\n },\n startPoint: {\n r: 10,\n fill: 'rgba(0, 152, 69, 1)',\n strokeWidth: 0,\n opacity: 1,\n },\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default lasso;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction range(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushArea = options && options.brushArea;\n const brushScale = options && options.brushScale;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n\n const defaultSettings = {\n type: 'brush-range',\n key: 'range',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: brushKey,\n fill: 'rgba(0, 0, 0, 0)',\n scale: brushScale,\n multiple: options && options.multiple === false ? options.multiple : true,\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n },\n },\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default range;\n","import extend from 'extend';\nimport rangeUtil from './util/range-util';\n\nfunction rangeArea(settings, options) {\n const brushKey = options && options.brushKey;\n const brushAxis = options && options.brushAxis;\n const brushComponents = options && options.brushComponents ? options.brushComponents : [];\n const brushData = options && options.brushData ? options.brushData : ['elemNo'];\n const brushArea = options && options.brushArea;\n const isHorizontal = options && options.isHorizontal;\n const dock = options && options.dock;\n const isRtl = options && options.isRtl;\n const chartInstance = options && options.chartInstance;\n let isStartBorder = true;\n\n const defaultSettings = {\n type: 'brush-area-dir',\n key: 'area',\n displayOrder: 99,\n dock: rangeUtil.getDock(brushAxis, brushArea),\n settings: {\n brush: {\n components: [],\n },\n direction: isHorizontal ? 'horizontal' : 'vertical',\n target: {\n component: brushAxis,\n fill: 'rgba( 82, 204, 82, 0.2 )',\n fillActive: 'rgba(82, 204, 82, 0.4)',\n },\n bubbles: {\n align: rangeUtil.getBublesAlign(isHorizontal, dock, isRtl),\n label(data) {\n if (isStartBorder) {\n isStartBorder = false;\n const formattedStartValue = chartInstance\n .dataset(data.binStart.source.key)\n .field(data.binStart.source.field)\n .formatter()(data.binStart.value);\n return formattedStartValue;\n }\n isStartBorder = true;\n const formattedEndValue = chartInstance\n .dataset(data.binEnd.source.key)\n .field(data.binEnd.source.field)\n .formatter()(data.binEnd.value);\n return formattedEndValue;\n },\n },\n multiple: options && options.multiple === false ? options.multiple : true,\n },\n };\n\n brushComponents.forEach((comp) => {\n defaultSettings.settings.brush.components.push({\n contexts: brushKey ? [brushKey] : undefined,\n key: comp,\n data: brushData,\n action: 'add',\n });\n });\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default rangeArea;\n","import extend from 'extend';\n\nfunction sequentialLegend(settings, options) {\n const chartID = options && options.chartID;\n const isRtl = options && options.isRtl;\n let dock = options.dock || 'auto';\n\n if (dock === 'auto') {\n dock = options.chartHeight < options.chartWidth ? (isRtl ? 'left' : 'right') : 'bottom';\n }\n\n const titleFill = options.theme.getStyle(chartID, 'legend.title', 'color');\n const titleFontSize = options.theme.getStyle(chartID, 'legend.title', 'fontSize');\n const titleFontFamily = options.theme.getStyle(chartID, 'legend.title', 'fontFamily');\n const tickFill = options.theme.getStyle(chartID, 'legend.label', 'color');\n const tickFontSize = options.theme.getStyle(chartID, 'legend.label', 'fontSize');\n const tickFontFamily = options.theme.getStyle(chartID, 'legend.label', 'fontFamily');\n\n function getAlignValue(word) {\n switch (word) {\n case 'left':\n return 0;\n case 'right':\n return 1;\n case 'middle':\n default:\n return 0.5;\n }\n }\n\n const defaultSettings = {\n key: 'seqlegend',\n type: 'legend-seq',\n dock,\n\n // Settings to position the legend outside of the axis\n displayOrder: 200,\n minimumLayoutMode: 'MEDIUM',\n prioOrder: 0,\n\n settings: {\n align: isRtl ? getAlignValue('right') : getAlignValue('left'),\n major: {\n invert: dock === 'left' || dock === 'right' || isRtl,\n },\n title: {\n show: options.showTitle,\n fontSize: titleFontSize,\n fontFamily: titleFontFamily,\n fill: titleFill,\n },\n tick: {\n fill: tickFill,\n fontSize: tickFontSize,\n fontFamily: tickFontFamily,\n },\n },\n };\n const finalSettings = extend(true, {}, defaultSettings, settings);\n return finalSettings;\n}\n\nexport default sequentialLegend;\n","import extend from 'extend';\n\nfunction gridLine(settings, options) {\n const chartID = options && options.chartID;\n\n const axisLineStroke = options.theme.getStyle(chartID, 'grid.line.major', 'color');\n\n const defaultSettings = {\n displayOrder: -1,\n key: 'grid-line',\n type: 'grid-line',\n x: null,\n y: null,\n ticks: {\n stroke: axisLineStroke,\n },\n minorTicks: {\n stroke: axisLineStroke,\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default gridLine;\n","import extend from 'extend';\n\nfunction interaction(settings, options) {\n const gestures = (options && options.gestures) || [];\n const defaultSettings = {\n type: 'hammer',\n key: 'hammered',\n gestures,\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default interaction;\n","import extend from 'extend';\n\nfunction refLine(settings, options) {\n const chartID = options && options.chartID; // Should we validate if the parameter exists?\n const oobColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'color');\n const oobBackgroundColor = options.theme.getStyle(chartID, 'referenceLine.outOfBounds', 'backgroundColor');\n\n const defaultSettings = {\n key: 'ref-line',\n type: 'ref-line',\n dock: 'center',\n prioOrder: -1,\n lines: {\n x: [],\n y: [],\n },\n style: {\n oob: {\n width: 7,\n fill: oobBackgroundColor,\n text: {\n fill: oobColor,\n },\n padding: {\n x: 7,\n y: 5,\n },\n },\n },\n };\n\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default refLine;\n","import extend from 'extend';\n\nfunction eventArea(settings) {\n const defaultSettings = {\n type: 'event-area',\n key: 'event-area',\n };\n return extend(true, {}, defaultSettings, settings || {});\n}\n\nexport default eventArea;\n","import DimensionMeasureChart from './presets/dimension-measure-chart/dimension-measure-chart';\n\nfunction ChartPresets(type, chartBuilder, options) {\n switch (type) {\n case 'dimension-measure-chart':\n DimensionMeasureChart(chartBuilder, options);\n break;\n default:\n throw Error('There is no chart preset with that type');\n }\n}\n\nexport default ChartPresets;\n","/**\n * Configuration for disclaimers\n *\n */\n\n/**\n * Placement on chart\n */\nconst ALIGNMENT = {\n CENTER: 0,\n BOTTOM: 1,\n};\n\n/**\n * Configuration of all disclaimers\n *\n * label - key for translation\n * alignment - Placement on chart\n * default - Supported by default. If 'false' the disclaimer needs to be set to 'true' in supportedDisclaimers to be valid\n */\nconst DISCLAIMERS = [\n {\n label: 'NoDataExist',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'RequireNumericDimension',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'OnlyNanData',\n alignment: ALIGNMENT.CENTER,\n default: true,\n },\n {\n label: 'OnlyNegativeOrZeroValues',\n alignment: ALIGNMENT.CENTER,\n default: false,\n },\n {\n label: 'LimitedData',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'OnlyNanColor',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'NegativeOrZeroValues',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n {\n label: 'DataRangeIncludingZero',\n alignment: ALIGNMENT.BOTTOM,\n default: false,\n },\n];\n\nexport default {\n DISCLAIMERS,\n ALIGNMENT,\n};\n","/**\n * Disclaimer utility for setting attributes needed for the disclaimer component\n *\n * @exports objects.picasso/disclaimer/disclaimer-attributes-utils\n */\nimport DisclaimersConfig from './disclaimers-config';\n\n/**\n * Checks if the data range in measures and axis spans over the value 0\n * @ignore\n * @param measureAxis\n * @param measureInfo\n * @returns {boolean} True if the data range in any measure or the given axis spans over 0\n */\nfunction hasDataRangeIncludingZero(measureAxis, measureInfo) {\n const len = measureInfo.length;\n let i;\n let explicitMinOn;\n let explicitMaxOn;\n let min;\n let max;\n if (measureAxis) {\n explicitMinOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'min' || measureAxis.minMax === 'minMax') &&\n measureAxis.min !== null &&\n !Number.isNaN(+measureAxis.min);\n explicitMaxOn =\n !measureAxis.autoMinMax &&\n (measureAxis.minMax === 'max' || measureAxis.minMax === 'minMax') &&\n measureAxis.max !== null &&\n !Number.isNaN(+measureAxis.max);\n }\n min = Number.MAX_VALUE;\n max = -Number.MAX_VALUE;\n\n // return true if data contains zero\n for (i = 0; i < len; i++) {\n min = Math.min(min, measureInfo[i].qMin);\n max = Math.max(max, measureInfo[i].qMax);\n if (min <= 0 && max >= 0) {\n return true;\n }\n }\n\n // return true if axis explicits contains zero\n min = explicitMinOn ? measureAxis.min : min;\n max = explicitMaxOn ? measureAxis.max : max;\n return min <= 0 && max >= 0;\n}\n\nfunction hasSubNodes(stackedDataPages) {\n return (\n stackedDataPages && stackedDataPages[0] && stackedDataPages[0].qData[0] && stackedDataPages[0].qData[0].qSubNodes\n );\n}\n\nconst util = {\n getNoDataExistAttribute(qHyperCube) {\n return qHyperCube.qSize.qcy * qHyperCube.qSize.qcx === 0;\n },\n\n getLimitedDataAttribute(qHyperCube, opts) {\n let result = false;\n let maxNbrOfDimensions;\n if (!qHyperCube) {\n result = opts.explicitLimitedData === true;\n } else if (opts.explicitLimitedData !== undefined) {\n result = opts.explicitLimitedData === true;\n } else if (qHyperCube.qDataPages && qHyperCube.qDataPages[0]) {\n result = !opts.paging && qHyperCube.qSize.qcy > qHyperCube.qDataPages[0].qMatrix.length;\n } else if (hasSubNodes(qHyperCube.qStackedDataPages)) {\n maxNbrOfDimensions = opts.maxNbrOfDimensions ? opts.maxNbrOfDimensions : 2;\n if (qHyperCube.qDimensionInfo.length >= maxNbrOfDimensions) {\n result = qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.some((node) => node.qDown > 0);\n } else {\n result =\n qHyperCube.qStackedDataPages[0].qData[0].qSubNodes.length < qHyperCube.qStackedDataPages[0].qArea.qHeight;\n }\n }\n return result;\n },\n\n getNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return !opts.supportNegative && qHyperCube.qMeasureInfo.some((measure) => measure.qMin <= 0);\n },\n\n getOnlyNegativeOrZeroValuesAttribute(qHyperCube, opts) {\n return (\n (!opts.supportNegative &&\n qHyperCube.qMeasureInfo.every((measure) => measure.qMax <= 0 && measure.qMax >= measure.qMin)) ||\n qHyperCube.qSize.qcy === 0\n );\n },\n\n getOnlyNanDataAttribute(qHyperCube, opts) {\n if (opts.explicitOnlyNanData !== undefined) {\n return opts.explicitOnlyNanData;\n }\n\n return qHyperCube.qMeasureInfo.every((measure) => measure.qMax < measure.qMin || measure.qMax === 'NaN');\n },\n\n getDataRangeIncludingZeroAttribute(data, opts) {\n return !opts.supportRangeOverZero && hasDataRangeIncludingZero(data.measureAxis, data.qHyperCube.qMeasureInfo);\n },\n\n /**\n * Apply attributes that configures disclaimers for a charts\n * @param {Object} options - Options\n * @param {Object} data - Layout data\n * @returns {Object}\n */\n applyAttributes(options, data) {\n const opts = options || {};\n const dataAttributes = {};\n\n opts.supportNegative = opts.supportNegative === undefined ? true : opts.supportNegative;\n opts.supportRangeOverZero = opts.supportRangeOverZero === undefined ? true : opts.supportRangeOverZero;\n\n DisclaimersConfig.DISCLAIMERS.forEach((config) => {\n dataAttributes[config.label] = false;\n });\n if (!data || !data.qHyperCube) {\n return dataAttributes;\n }\n dataAttributes.NoDataExist = this.getNoDataExistAttribute(data.qHyperCube);\n if (dataAttributes.NoDataExist) {\n return dataAttributes;\n }\n dataAttributes.RequireNumericDimension = opts.explicitRequireNumericDimension;\n if (dataAttributes.RequireNumericDimension) {\n return dataAttributes;\n }\n dataAttributes.LimitedData = this.getLimitedDataAttribute(data.qHyperCube, opts);\n dataAttributes.NegativeOrZeroValues = this.getNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNegativeOrZeroValues = this.getOnlyNegativeOrZeroValuesAttribute(data.qHyperCube, opts);\n dataAttributes.OnlyNanData = this.getOnlyNanDataAttribute(data.qHyperCube, opts);\n dataAttributes.DataRangeIncludingZero = this.getDataRangeIncludingZeroAttribute(data, opts);\n\n return dataAttributes;\n },\n};\nexport default util;\n","/**\n * Helper for disclaimer component\n *\n */\n\n/**\n * Create new Helper for disclaimer\n * @param disclaimersConfig {Array} List of disclaimer config objects\n * @param dataAttributes {Object} Config for which disclaimers that are valid to show\n * @param supportedDisclaimers {Object} Config for which disclaimers that are supported\n * @constructor\n */\nfunction Helper(disclaimersConfig, dataAttributes, supportedDisclaimers) {\n this.disclaimersConfig = disclaimersConfig;\n this.dataAttributes = dataAttributes;\n this.supportedDisclaimers = supportedDisclaimers;\n}\n\nfunction isValid(label, list) {\n return label && list && list[label];\n}\n\n/**\n * Returns true if disclaimer config is valid, supported and has an alignment\n * @param disclaimer {Object} Configuration for a disclaimer\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isValidAndSupported = function (disclaimer, alignment) {\n return (\n isValid(disclaimer.label, this.dataAttributes) &&\n (disclaimer.default || isValid(disclaimer.label, this.supportedDisclaimers)) &&\n alignment !== undefined &&\n disclaimer.alignment === alignment\n );\n};\n\n/**\n * Returns true if there are any valid disclaimers for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @returns {Boolean}\n */\nHelper.prototype.isAnyValidDisclaimer = function (alignment) {\n let result = false;\n const self = this;\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n result = true;\n }\n });\n return result;\n};\n\n/**\n * Gets all translated disclaimer messages for an alignment\n * @param alignment {Integer} Alignment value in disclaimers config\n * @param translator {Object} Translator component\n * @returns {string}\n */\nHelper.prototype.getMessage = function (alignment, translator) {\n let str = '';\n const self = this;\n if (translator) {\n this.disclaimersConfig.forEach((config) => {\n if (self.isValidAndSupported(config, alignment)) {\n str += `${translator.get(`Object.Disclaimer.${config.label}`)} `;\n }\n });\n }\n return str;\n};\n\nexport default Helper;\n","/**\n * Disclaimer component for Picasso base charts\n *\n * @exports objects.picasso/disclaimer/disclaimer\n */\n\nimport extend from 'extend';\nimport DisclaimersConfig from './disclaimers-config';\nimport AttributesUtil from './disclaimer-attributes-util';\nimport DisclaimerComponentHelper from './disclaimer-component-helper';\n\nDisclaimer.ERRORS = {\n SET: 'Calling Disclaimer.set() without attributes',\n DISPLAY: 'Calling Disclaimer.display() before attributes are applied',\n};\n\n/**\n * Create new disclaimer component\n * @param {Object} options - A reference to chart options\n * @constructor\n */\nfunction Disclaimer(environment) {\n this.environment = environment;\n this.clear();\n}\n\nDisclaimer._applyDefaultSupport = function (supportedDisclaimers, disclaimersConfig) {\n let supported = supportedDisclaimers;\n if (!supported) {\n supported = {};\n }\n disclaimersConfig.forEach((config) => {\n if (supported[config.label] === undefined) {\n supported[config.label] = config.default;\n }\n });\n return supported;\n};\n\nDisclaimer.prototype.getComponentSettings = function () {\n const { translator } = this.environment;\n const supportedDisclaimers = extend(true, {}, this.vizAttributes.supportedDisclaimers);\n const helper = new DisclaimerComponentHelper(\n DisclaimersConfig.DISCLAIMERS,\n this.dataAttributes,\n supportedDisclaimers\n );\n\n let message;\n let dock;\n if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.CENTER)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.CENTER, translator);\n dock = 'center';\n } else if (helper.isAnyValidDisclaimer(DisclaimersConfig.ALIGNMENT.BOTTOM)) {\n message = helper.getMessage(DisclaimersConfig.ALIGNMENT.BOTTOM, translator);\n dock = 'bottom';\n } else {\n return undefined;\n }\n\n return {\n key: 'disclaimer',\n type: 'disclaimer',\n layout: {\n displayOrder: 1000,\n dock,\n },\n settings: {\n label: message,\n rtl: this.environment?.options?.direction === 'rtl',\n },\n };\n};\n\n/**\n * Set attributes that configures disclaimers for a charts\n * @param {Object} attributes - Disclaimer settings for a chart\n */\nDisclaimer.prototype.set = function (attributes) {\n this.clear();\n if (attributes) {\n this.vizAttributes = attributes;\n this.dataAttributes = AttributesUtil.applyAttributes(this.vizAttributes.options, this.vizAttributes.data);\n } else {\n throw new Error(Disclaimer.ERRORS.SET);\n }\n};\n\n/**\n * Clears disclaimer settings\n */\nDisclaimer.prototype.clear = function () {\n this.vizAttributes = null;\n this.dataAttributes = null;\n};\n\nexport default Disclaimer;\n","import extend from 'extend';\nimport { getValue } from 'qlik-chart-modules';\n\nimport Class from '../extra/class';\nimport ChartBuilder from './chart-builder/chart-builder';\nimport Disclaimer from './disclaimer/disclaimer';\n\nfunction getData(backendApi, hyperCube, rect) {\n let page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n let dataPagesPath;\n\n if (rect) {\n const width = rect.width || hyperCube.qSize.qcx;\n const maxHeight = Math.floor(10000 / width);\n page = {\n qTop: rect.top || 0,\n qLeft: rect.left || 0,\n qWidth: width,\n qHeight: rect.height ? Math.min(rect.height, maxHeight) : maxHeight,\n };\n } else {\n page = {\n qTop: 0,\n qLeft: 0,\n qWidth: hyperCube.qSize.qcx,\n qHeight: 10000 / hyperCube.qSize.qcx,\n };\n }\n\n switch (hyperCube.qMode) {\n case 'K': // Stacked mode\n dataPagesPath = 'qStackedDataPages';\n break;\n case 'S': // Straight table mode\n default:\n dataPagesPath = 'qDataPages';\n break;\n }\n\n return backendApi.getData([page], null, hyperCube).then((pages) => {\n hyperCube[dataPagesPath] = pages;\n });\n}\n\nconst ChartView = Class.extend({\n init(picasso, $element, environment, backendApi, selectionsApi) {\n this.$element = $element;\n this.environment = environment;\n this.backendApi = backendApi;\n\n this._selectionsApi = selectionsApi;\n this._on = false;\n this._disclaimer = new Disclaimer(environment);\n this._dataPaths = ['qHyperCube'];\n\n const self = this;\n\n // Set properties that should be available in subclasses\n\n this.picassoElement = $element[0];\n this.picassoElement.className += ' picasso-chart';\n\n // Paint a visually empty Picasso chart containing an event-area component\n this.chartInstance = picasso.chart({\n element: this.picassoElement,\n settings: {\n components: [\n ChartBuilder.createComponent('event-area', {\n mounted(element) {\n // Mounted is run synchronously so this.dataAreaElem will be available in subclass constructors\n self.dataAreaElem = element;\n },\n }),\n ],\n },\n });\n },\n\n updateEnvironment(environment) {\n this.environment = environment;\n },\n\n isRtl() {\n return this.environment.options?.direction === 'rtl';\n },\n\n setDataPaths(dataPaths) {\n this._dataPaths = dataPaths;\n },\n\n getData(backendApi, hyperCube, rect) {\n return getData(backendApi, hyperCube, rect);\n },\n\n hasValidData() {\n return true;\n },\n\n paint() {\n // Use this.layout\n if (this.hasValidData()) {\n this._disclaimer.set(this.getDisclaimerAttributes(this.layout));\n const disclaimerComponent = this._disclaimer.getComponentSettings();\n const isSuppressingDisc = disclaimerComponent?.layout?.dock === 'center';\n\n const chartSettings = this.createChartSettings(this.layout);\n if (isSuppressingDisc) {\n chartSettings.components = [disclaimerComponent];\n } else if (disclaimerComponent) {\n chartSettings.components.push(disclaimerComponent);\n }\n ChartBuilder.validateComponentKeys(chartSettings.components).forEach((errorMsg) => {\n console.error(errorMsg);\n });\n\n this.updateChart(this.layout, chartSettings);\n this._painted = true;\n }\n return Promise.resolve();\n },\n\n resize() {\n // Use this.layout\n if (!this.layout) {\n // There are cases where resize is run before updateData, therefore layout is undefined\n return undefined;\n }\n return this.paint();\n },\n\n createChartSettings() {\n throw new Error('Subclass must implement \"createChartSettings\" function');\n },\n\n addSnapshotChartSettings(settings, layout) {\n const { freeResize } = this.environment.options;\n if (!freeResize && layout.snapshotData) {\n settings.dockLayout.logicalSize = {\n width: layout.snapshotData.content.size.w,\n height: layout.snapshotData.content.size.h,\n preserveAspectRatio: true,\n };\n }\n },\n\n updateData(layout) {\n // clone the layout so that updates ignored by suppressOnPaint does not affect it.\n if (this._destroyed) {\n return Promise.reject();\n }\n\n this.layout = extend(true, {}, layout);\n this.layout.permissions = layout.permissions;\n return Promise.resolve();\n },\n\n updateChart(layout, settings, isPartialData) {\n const localeInfo = this.environment.appLayout?.qLocaleInfo ?? {};\n const data = this._dataPaths.map((path) => ({\n type: 'q',\n key: path,\n config: {\n localeInfo,\n },\n data: getValue(layout, path.replace(/\\//g, '.')),\n }));\n if (this.colorService) {\n data.push(...this.colorService.getData());\n }\n\n this.chartInstance.update({\n data,\n settings,\n partialData: isPartialData,\n });\n\n const STATE_DATA_UPDATED = 2;\n this.picassoElement.setAttribute('data-state', STATE_DATA_UPDATED); // For integration test\n },\n\n destroy() {\n this._destroyed = true;\n this.off();\n this.chartInstance.destroy();\n },\n\n getViewState() {\n return {};\n },\n\n isLassoDisabled() {\n return true;\n },\n\n setSnapshotData(snapshotLayout) {\n if (!snapshotLayout.snapshotData) {\n snapshotLayout.snapshotData = {};\n }\n snapshotLayout.snapshotData.content = {\n // eslint-disable-line no-param-reassign\n chartData: {},\n size: {\n w: this.$element.width(),\n h: this.$element.height(),\n },\n };\n },\n\n getDisclaimerAttributes(layout) {\n return {\n data: layout,\n };\n },\n});\n\nexport default ChartView;\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/* eslint no-nested-ternary: 0 */\n\nimport extend from 'extend';\n\nexport function getFieldAccessor(field, page, deps) {\n if (!field) {\n return -1;\n }\n const cache = deps.cache;\n const origin = field.origin ? field.origin() : null;\n if (origin) {\n field = origin;\n }\n let fieldIdx = cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n if (fieldIdx === -1) {\n for (let i = 0; i < cache.wrappedFields.length; i++) {\n attrDimIdx = cache.wrappedFields[i].attrDims.map((v) => v.instance).indexOf(field);\n attrIdx = cache.wrappedFields[i].attrExps.map((v) => v.instance).indexOf(field);\n if (attrDimIdx !== -1 || attrIdx !== -1) {\n fieldIdx = i;\n break;\n }\n }\n }\n\n fieldIdx -= page.qArea.qLeft;\n if (fieldIdx < 0 || fieldIdx >= page.qArea.qWidth) {\n // throw new Error('Field out of range');\n return -1;\n }\n\n if (attrDimIdx >= 0) {\n return (row) => row[fieldIdx].qAttrDims.qValues[attrDimIdx];\n }\n if (attrIdx >= 0) {\n return (row) => row[fieldIdx].qAttrExps.qValues[attrIdx];\n }\n\n return (row) => row[fieldIdx];\n}\n\n// TODO - handle 'other' value\n// const specialTextValues = {\n// '-3': (meta) => {\n// if ('othersLabel' in meta) {\n// return meta.othersLabel;\n// }\n// return '';\n// }\n// };\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction cellToValue({ cache, f, mainCell, p, prop, page, rowIdx, row, sourceKey, target, targetProp }) {\n let propCell = mainCell;\n if (p.field && p.field !== f) {\n const propCellFn = getFieldAccessor(p.field, page, { cache });\n if (propCellFn === -1) {\n return;\n }\n propCell = extend({ qRow: rowIdx }, propCellFn(row));\n }\n target[targetProp] = datumExtract(p, propCell, { key: sourceKey }, prop);\n}\n\nexport default function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let i = 0; i < cfgs.length; i++) {\n if (typeof cfgs[i].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const f = typeof cfgs[i].field === 'object' ? cfgs[i].field : dataset.field(cfgs[i].field);\n const { props, main } = util.normalizeConfig(cfgs[i], dataset);\n const propsArr = Object.keys(props);\n\n const track = !!cfgs[i].trackBy;\n const trackType = typeof cfgs[i].trackBy;\n const tracker = {};\n const trackedItems = [];\n const items = [];\n\n for (let j = 0; j < cube.qDataPages.length; j++) {\n const fn = getFieldAccessor(f, cube.qDataPages[j], { cache });\n if (fn === -1) {\n continue;\n }\n for (let k = 0; k < cube.qDataPages[j].qMatrix.length; k++) {\n const rowIdx = cube.qDataPages[j].qArea.qTop + k;\n const mainCell = extend({ qRow: rowIdx }, fn(cube.qDataPages[j].qMatrix[k]));\n const ret = datumExtract(main, mainCell, { key: sourceKey });\n const exclude = main.filter && !main.filter(mainCell);\n if (exclude) {\n continue;\n }\n\n for (let l = 0; l < propsArr.length; l++) {\n const p = props[propsArr[l]];\n let arr = p.fields || [p];\n\n if (p.fields) {\n ret[propsArr[l]] = [];\n }\n\n // loop through all props that need to be mapped and\n // assign 'value' and 'source' to each property\n for (let m = 0; m < arr.length; m++) {\n cellToValue({\n cache,\n f,\n mainCell,\n p: arr[m],\n prop: propsArr[l],\n props,\n page: cube.qDataPages[j],\n rowIdx,\n row: cube.qDataPages[j].qMatrix[k],\n sourceKey,\n target: p.fields ? ret[propsArr[l]] : ret,\n targetProp: p.fields ? m : propsArr[l],\n });\n }\n\n if (p.fields) {\n const fieldValues = ret[propsArr[l]].map((v) => v.value);\n const fieldLabels = ret[propsArr[l]].map((v) => v.label);\n ret[propsArr[l]] = {\n value:\n typeof p.value === 'function'\n ? p.value(fieldValues)\n : typeof p.value !== 'undefined'\n ? p.value\n : fieldValues,\n label:\n typeof p.label === 'function'\n ? p.label(fieldLabels)\n : typeof p.label !== 'undefined'\n ? String(p.label)\n : String(ret[propsArr[l]].value),\n };\n }\n }\n\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[i],\n itemData: mainCell,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n\n items.push(ret);\n }\n }\n\n // reduce if items have been grouped\n if (track) {\n dataItems.push(\n ...util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n );\n } else {\n dataItems.push(...items);\n }\n }\n }\n return dataItems;\n}\n","function 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\nexport default function() {\n return this.eachAfter(count);\n}\n","export default 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","export default 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","export default 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","export default 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","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default 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","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default 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","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function 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\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function 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: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","/**\n * Resolves the value at the given JSON path\n * @private\n * @param {String} path [description]\n * @param {Object} obj [description]\n * @return {Object} [description]\n *\n * @example\n * let path = \"/path/to/paradise\";\n * let obj = {\n * path: {\n * to: { paradise: \"heaven\"},\n * from: {...}\n * }\n * };\n * resolve( path, obj ); // \"heaven\"\n */\nexport default function resolve(path, obj) {\n if (path.charAt(0) === '/') {\n path = path.substring(1);\n }\n const arr = path.split('/');\n let subpath;\n let container = obj;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] === '*' && Array.isArray(container)) {\n const carr = [];\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n let v = resolve(subpath, container[c]);\n // v.forEach(_ => _._parent = container[c]);\n if (Array.isArray(v)) {\n carr.push(...v);\n } else {\n carr.push(v);\n }\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (!arr[i] && Array.isArray(container)) {\n const carr = new Array(container.length);\n subpath = arr.slice(i + 1).join('/');\n for (let c = 0; c < container.length; c++) {\n carr[c] = resolve(subpath, container[c]);\n }\n return carr;\n // return container.map(v => resolve(arr.slice(i + 1).join('/'), v));\n }\n if (arr[i] in container) {\n container = container[arr[i]];\n }\n }\n\n return container;\n}\n","function flattenTree(children, steps, arrIndexAtTargetDepth) {\n const arr = [];\n if (!children || !children.length) {\n return arr;\n }\n if (steps <= 0) {\n const nodes = arrIndexAtTargetDepth >= 0 ? [children[arrIndexAtTargetDepth]] : children;\n arr.push(...nodes);\n } else {\n for (let i = 0; i < children.length; i++) {\n if (children[i].children && children[i].children.length) {\n arr.push(...flattenTree(children[i].children, steps - 1, arrIndexAtTargetDepth));\n }\n }\n }\n return arr;\n}\n\nexport function treeAccessor(sourceDepth, targetDepth, arrIndexAtTargetDepth) {\n if (sourceDepth === targetDepth) {\n return (d) => d;\n }\n if (sourceDepth > targetDepth) {\n // traverse upwards\n const steps = Math.max(0, Math.min(100, sourceDepth - targetDepth));\n return (node) => {\n let n = node;\n for (let i = 0; i < steps; ++i) {\n n = n.parent;\n }\n return n;\n };\n }\n if (targetDepth > sourceDepth) {\n // flatten descendants\n const steps = Math.max(0, Math.min(100, targetDepth - sourceDepth));\n return (node) => flattenTree(node.children, steps - 1, arrIndexAtTargetDepth);\n }\n return false;\n}\n\nexport function findField(query, { cache }) {\n if (typeof query === 'number') {\n return cache.fields[query];\n }\n\n const allFields = cache.allFields;\n if (typeof query === 'function') {\n for (let i = 0; i < allFields.length; i++) {\n if (query(allFields[i])) {\n return allFields[i];\n }\n }\n return false;\n }\n if (typeof query === 'string') {\n for (let i = 0; i < allFields.length; i++) {\n if (allFields[i].key() === query || allFields[i].title() === query) {\n return allFields[i];\n }\n }\n } else if (query && allFields.indexOf(query) !== -1) {\n // assume 'query' is a field instance\n return query;\n }\n\n throw Error(`Field not found: ${query}`);\n}\n","/* eslint no-nested-ternary: 0 */\n\nimport { hierarchy, stratify } from 'd3-hierarchy';\n\nimport picker from '../json-path-resolver';\n\nimport { treeAccessor } from './util';\n\nconst DIM_RX = /^qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /^\\/?qMeasureInfo\\/(\\d+)/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)/;\n\nfunction getColumnOrder(dataset) {\n const qColumnOrder = dataset.raw().qColumnOrder;\n const fields = dataset.fields();\n\n return qColumnOrder && qColumnOrder.length === fields.length ? qColumnOrder : fields.map((f, i) => i);\n}\n\nfunction getDimensionColumnOrder(cube) {\n const order =\n cube.qColumnOrder && cube.qColumnOrder.length ? cube.qColumnOrder : cube.qDimensionInfo.map((d, ii) => ii);\n\n return order.filter((ii) => ii < cube.qDimensionInfo.length);\n}\n\nexport function getFieldDepth(field, { cube }) {\n if (!field) {\n return -1;\n }\n\n let key = field.origin && field.origin() ? field.origin().key() : field.key();\n let isFieldDimension = false;\n let fieldIdx = -1; // cache.fields.indexOf(field);\n let attrIdx = -1;\n let attrDimIdx = -1;\n let fieldDepth = -1;\n let pseudoMeasureIndex = -1;\n let measureIdx = -1;\n let remainder = key;\n\n const treeOrder = cube.qEffectiveInterColumnSortOrder;\n const columnOrder = getDimensionColumnOrder(cube);\n\n if (DIM_RX.test(remainder)) {\n isFieldDimension = true;\n fieldIdx = +DIM_RX.exec(remainder)[1];\n remainder = key.replace(DIM_RX, '');\n }\n\n if (M_RX.test(remainder)) {\n if (cube.qMode === 'K') {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n pseudoMeasureIndex = +M_RX.exec(remainder)[1];\n measureIdx = 0;\n } else {\n measureIdx = +M_RX.exec(remainder)[1];\n }\n remainder = remainder.replace(M_RX, '');\n }\n\n if (remainder) {\n if (ATTR_DIM_RX.exec(remainder)) {\n attrDimIdx = +ATTR_DIM_RX.exec(remainder)[1];\n } else if (ATTR_EXPR_RX.exec(remainder)) {\n attrIdx = +ATTR_EXPR_RX.exec(remainder)[1];\n }\n }\n\n if (isFieldDimension) {\n if (cube.qMode === 'S') {\n fieldDepth = columnOrder[fieldIdx];\n } else {\n fieldDepth = treeOrder ? treeOrder.indexOf(fieldIdx) : fieldIdx;\n }\n } else if (treeOrder && treeOrder.indexOf(-1) !== -1) {\n // if pseudo dimension exists in sort order\n fieldDepth = treeOrder.indexOf(-1); // depth of pesudodimension\n } else {\n // assume measure is at the bottom of the tree\n fieldDepth = cube.qDimensionInfo.length - (cube.qMode === 'K' ? 0 : 1);\n }\n\n return {\n fieldDepth: fieldDepth + 1, // +1 due to root node\n pseudoMeasureIndex,\n measureIdx,\n attrDimIdx,\n attrIdx,\n };\n}\n\nfunction getFieldAccessor(sourceDepthObject, targetDepthObject) {\n let nodeFn = treeAccessor(\n sourceDepthObject.fieldDepth,\n targetDepthObject.fieldDepth,\n targetDepthObject.pseudoMeasureIndex\n );\n let valueFn;\n\n if (targetDepthObject.measureIdx >= 0) {\n valueFn = (node) => node.data.qValues[targetDepthObject.measureIdx];\n } else {\n valueFn = (node) => node.data;\n }\n let attrFn;\n\n if (targetDepthObject.attrDimIdx >= 0) {\n attrFn = (data) => data?.qAttrDims?.qValues[targetDepthObject.attrDimIdx];\n } else if (targetDepthObject.attrIdx >= 0) {\n attrFn = (data) => data?.qAttrExps?.qValues[targetDepthObject.attrIdx];\n }\n\n return {\n nodeFn,\n attrFn,\n valueFn,\n };\n}\n\nfunction datumExtract(propCfg, cell, { key }) {\n const datum = {\n value:\n typeof propCfg.value === 'function'\n ? propCfg.value(cell)\n : typeof propCfg.value !== 'undefined'\n ? propCfg.value\n : cell, // eslint-disable-line no-nested-ternary\n };\n\n datum.label =\n typeof propCfg.label === 'function'\n ? propCfg.label(cell)\n : typeof propCfg.label !== 'undefined'\n ? String(propCfg.label)\n : String(datum.value); // eslint-disable-line no-nested-ternary\n\n if (propCfg.field) {\n datum.source = {\n key,\n field: propCfg.field.key(),\n };\n }\n\n return datum;\n}\n\nfunction doIt({ propsArr, props, item, itemData, ret, sourceKey }) {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields || [pCfg];\n let coll;\n let collStr;\n if (pCfg.fields) {\n coll = [];\n collStr = [];\n }\n\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n let fn;\n let str;\n let value;\n let nodes;\n let cells;\n let label;\n if (p.type === 'primitive') {\n value = p.value;\n label = String(p.value);\n } else {\n if (typeof p.value === 'function') {\n fn = (v) => p.value(v, item);\n }\n if (typeof p.label === 'function') {\n str = (v) => p.label(v, item);\n }\n if (p.accessor) {\n nodes = p.accessor(item);\n if (Array.isArray(nodes)) {\n // propably descendants\n cells = nodes.map(p.valueAccessor);\n if (p.attrAccessor) {\n cells = cells.map(p.attrAccessor);\n }\n if (fn) {\n value = cells.map(fn);\n fn = null;\n }\n if (str) {\n label = cells.map(str);\n str = null;\n }\n value = p.reduce ? p.reduce(value) : value;\n label = p.reduceLabel ? p.reduceLabel(label, value) : String(value);\n } else {\n value = p.attrAccessor ? p.attrAccessor(p.valueAccessor(nodes)) : p.valueAccessor(nodes);\n label = value;\n }\n } else {\n value = itemData;\n label = itemData;\n }\n }\n if (pCfg.fields) {\n const v = fn ? fn(value) : value;\n coll.push(v);\n collStr.push(str && label != null ? str(label) : label != null ? label : String(v));\n } else {\n const v = fn ? fn(value) : value;\n ret[propsArr[i]] = {\n value: v,\n label: str ? str(label) : label != null ? label : String(v),\n };\n if (p.field) {\n ret[propsArr[i]].source = { field: p.field.key(), key: sourceKey };\n }\n }\n }\n if (coll) {\n ret[propsArr[i]] = {\n value: typeof pCfg.value === 'function' ? pCfg.value(coll, item) : coll,\n label: typeof pCfg.label === 'function' ? pCfg.label(collStr, item) : collStr,\n };\n }\n }\n}\n\nconst getHierarchy = (cube, cache, config) => {\n const rootPath = cube.qMode === 'K' ? '/qStackedDataPages/*/qData' : '/qTreeDataPages/*';\n const childNodes = cube.qMode === 'K' ? 'qSubNodes' : 'qNodes';\n const root = picker(rootPath, cube);\n if (!root || !root[0]) {\n return null;\n }\n cache.tree = hierarchy(root[0], config.children || ((node) => node[childNodes]));\n return cache.tree;\n};\n\nfunction getHierarchyForSMode(dataset) {\n const matrix = dataset.raw().qDataPages.length ? dataset.raw().qDataPages[0].qMatrix : [];\n const order = getColumnOrder(dataset);\n const fields = dataset.fields();\n const dimensions = dataset\n .fields()\n .filter((f) => f.type() === 'dimension')\n .map((f) => order.indexOf(fields.indexOf(f)));\n const measures = dataset\n .fields()\n .filter((f) => f.type() === 'measure')\n .map((f) => order.indexOf(fields.indexOf(f)));\n\n const root = {\n __id: '__root',\n qValues: [],\n };\n\n const keys = {\n __root: root,\n };\n\n for (let r = 0; r < matrix.length; r++) {\n const row = matrix[r];\n let id = '__root';\n // let parent = root;\n let isNew = false;\n for (let c = 0; c < dimensions.length; c++) {\n const cell = row[dimensions[c]];\n const key = `${id}__${cell.qElemNumber ?? cell.qElemNo}`;\n if (!keys[key]) {\n keys[key] = {\n __id: key,\n __parent: id,\n qValues: [],\n ...cell,\n };\n isNew = true;\n }\n id = key;\n }\n if (isNew) {\n for (let c = 0; c < measures.length; c++) {\n const cell = row[measures[c]];\n keys[id].qValues.push(cell);\n }\n }\n }\n\n const nodes = Object.keys(keys).map((key) => keys[key]);\n\n const h = stratify()\n .id((d) => d.__id)\n .parentId((d) => d.__parent)(nodes);\n\n return h;\n}\n\nconst attachPropsAccessors = ({ propsArr, props, cube, cache, itemDepthObject, f }) => {\n for (let i = 0; i < propsArr.length; i++) {\n const pCfg = props[propsArr[i]];\n const arr = pCfg.fields ? pCfg.fields : [pCfg];\n for (let j = 0; j < arr.length; j++) {\n const p = arr[j];\n if (p.field !== f) {\n const depthObject = getFieldDepth(p.field, { cube, cache });\n const accessors = getFieldAccessor(itemDepthObject, depthObject);\n p.accessor = accessors.nodeFn; // nodes accessor\n p.valueAccessor = accessors.valueFn; // cell accessor\n p.attrAccessor = accessors.attrFn; // attr cell accessor\n }\n }\n }\n};\n\nexport function augment(config = {}, dataset, cache, util) {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = cube.qMode === 'S' ? getHierarchyForSMode(dataset) : getHierarchy(cube, cache, config);\n if (!h) {\n return null;\n }\n\n const height = h.height;\n const propDefs = [];\n for (let i = 0; i <= height; i++) {\n let f = null;\n if (i > 0) {\n if (cube.qMode === 'S') {\n const order = getDimensionColumnOrder(cube);\n let idx = order[i - 1];\n f = cache.fields[idx];\n } else {\n let idx = cube.qEffectiveInterColumnSortOrder[i - 1];\n // if (idx === -1) { // pseudo\n // let childIdx = node.parent.children.indexOf(node);\n // idx = cube.qDimensionInfo.length + childIdx; // measure field\n // }\n if (i > cube.qEffectiveInterColumnSortOrder.length) {\n idx = cube.qDimensionInfo.length;\n }\n\n f = cache.fields[idx];\n }\n }\n\n const { props, main } = util.normalizeConfig({ ...config, field: f ? f.key() : undefined }, dataset);\n const propsArr = Object.keys(props);\n propDefs[i] = { propsArr, props, main };\n\n const itemDepthObject = f ? getFieldDepth(f, { cube, cache }) : { fieldDepth: 0 };\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n }\n\n const replica = h.copy();\n const replicaDescendants = replica.descendants();\n const descendants = h.descendants();\n\n for (let i = 0; i < descendants.length; i++) {\n const propsArr = propDefs[descendants[i].depth].propsArr;\n const props = propDefs[descendants[i].depth].props;\n const main = propDefs[descendants[i].depth].main;\n\n const item = replicaDescendants[i];\n const itemData = item.data; // main.valueAccessor(currentOriginal);\n\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n isTree: true,\n });\n descendants[i].data = ret;\n }\n return h;\n}\n\nexport function extract(config, dataset, cache, util) {\n const cfgs = Array.isArray(config) ? config : [config];\n let dataItems = [];\n for (let g = 0; g < cfgs.length; g++) {\n if (typeof cfgs[g].field !== 'undefined') {\n const cube = dataset.raw();\n const sourceKey = dataset.key();\n const h = getHierarchy(cube, cache, config);\n if (!h) {\n continue;\n }\n\n const f = typeof cfgs[g].field === 'object' ? cfgs[g].field : dataset.field(cfgs[g].field);\n const { props, main } = util.normalizeConfig(cfgs[g], dataset);\n const propsArr = Object.keys(props);\n\n const itemDepthObject = getFieldDepth(f, { cube, cache });\n const { nodeFn, attrFn, valueFn } = getFieldAccessor({ fieldDepth: 0 }, itemDepthObject);\n\n attachPropsAccessors({\n propsArr,\n props,\n cube,\n cache,\n itemDepthObject,\n f,\n });\n\n const track = !!cfgs[g].trackBy;\n const trackType = typeof cfgs[g].trackBy;\n const tracker = {};\n const trackedItems = [];\n\n const items = nodeFn(cache.tree);\n const mapped = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemData = attrFn ? attrFn(valueFn(item)) : valueFn(item);\n const exclude = main.filter && !main.filter(itemData);\n if (exclude) {\n continue;\n }\n const ret = datumExtract(main, itemData, { key: sourceKey });\n doIt({\n propsArr,\n props,\n item,\n itemData,\n ret,\n sourceKey,\n });\n // collect items based on the trackBy value\n // items with the same trackBy value are placed in an array and reduced later\n if (track) {\n util.track({\n cfg: cfgs[g],\n itemData,\n obj: ret,\n target: trackedItems,\n tracker,\n trackType,\n });\n }\n mapped.push(ret);\n }\n // reduce if items have been grouped\n if (track) {\n dataItems.push(\n ...util.collect(trackedItems, {\n main,\n propsArr,\n props,\n })\n );\n } else {\n dataItems.push(...mapped);\n }\n }\n }\n return dataItems;\n}\n","/*! javascript-number-formatter - v1.1.11 - http://mottie.github.com/javascript-number-formatter/ * © ecava */\n!function(a,b){\"function\"==typeof define&&define.amd?define([],b):\"object\"==typeof module?module.exports=b():a.format=b()}(this,function(){return function(a,b){\"use strict\";if(!a||isNaN(+b))return b;var c,d,e,f,g,h,i,j,k,l,m=a.length,n=a.search(/[0-9\\-\\+#]/),o=n>0?a.substring(0,n):\"\",p=a.split(\"\").reverse().join(\"\"),q=p.search(/[0-9\\-\\+#]/),r=m-q,s=a.substring(r,r+1),t=r+(\".\"===s||\",\"===s?1:0),u=q>0?a.substring(t,m):\"\";if(a=a.substring(n,t),b=\"-\"===a.charAt(0)?-b:+b,c=b<0?b=-b:0,d=a.match(/[^\\d\\-\\+#]/g),e=d&&d[d.length-1]||\".\",f=d&&d[1]&&d[0]||\",\",a=a.split(e),b=b.toFixed(a[1]&&a[1].length),b=+b+\"\",h=a[1]&&a[1].lastIndexOf(\"0\"),j=b.split(\".\"),(!j[1]||j[1]&&j[1].length<=h)&&(b=(+b).toFixed(h+1)),k=a[0].split(f),a[0]=k.join(\"\"),g=a[0]&&a[0].indexOf(\"0\"),g>-1)for(;j[0].length<a[0].length-g;)j[0]=\"0\"+j[0];else 0===+j[0]&&(j[0]=\"\");if(b=b.split(\".\"),b[0]=j[0],i=k[1]&&k[k.length-1].length){for(l=b[0],p=\"\",r=l.length%i,m=l.length,t=0;t<m;t++)p+=l.charAt(t),!((t-r+1)%i)&&t<m-i&&(p+=f);b[0]=p}return b[1]=a[1]&&b[1]?e+b[1]:\"\",d=b.join(\"\"),\"0\"!==d&&\"\"!==d||(c=!1),o+((c?\"-\":\"\")+d)+u}});","import formatter from 'number-format.js';\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nconst SIprefixes = {\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y',\n '-3': 'm',\n '-6': 'μ',\n '-9': 'n',\n '-12': 'p',\n '-15': 'f',\n '-18': 'a',\n '-21': 'z',\n '-24': 'y',\n },\n percentage = /%$/,\n // scientific = /e[\\+\\-][0-9]+/,\n radix = /^\\(r(0[2-9]|[12]\\d|3[0-6])\\)/i,\n oct = /^\\(oct\\)/i,\n dec = /^\\(dec\\)/i,\n hex = /^\\(hex\\)/i,\n bin = /^\\(bin\\)/i,\n rom = /^\\(rom\\)/i,\n functional = /^(\\(rom\\)|\\(bin\\)|\\(hex\\)|\\(dec\\)|\\(oct\\)|\\(r(0[2-9]|[12]\\d|3[0-6])\\))/i,\n prec = /#|0/g;\n\nfunction formatRadix(value, fradix, pattern, decimal) {\n value = value.toString(fradix);\n if (pattern[1] === pattern[1].toUpperCase()) {\n value = value.toUpperCase();\n }\n if (value.length - value.indexOf('.') > 10) {\n // limit to 10 decimal places\n value = value.slice(0, value.indexOf('.') + 11);\n }\n\n return value.replace('.', decimal || '.');\n}\n\n// value must be an integer\n// value must not be in scientific notation\nfunction formatRoman(value, pattern) {\n let i,\n s = '',\n v = Number(String(value).slice(-3)),\n nThousands = (value - v) / 1000,\n decimal = [0, 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900].reverse(),\n numeral = ['0', 'I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM'].reverse();\n\n while (v > 0) {\n for (i = 0; i < decimal.length; i++) {\n if (decimal[i] <= v) {\n s += numeral[i];\n v -= decimal[i];\n break;\n }\n }\n }\n\n for (i = 0; i < nThousands; i++) {\n s = `M${s}`;\n }\n\n if (pattern[1] !== pattern[1].toUpperCase()) {\n s = s.toLowerCase();\n }\n return s;\n}\n\nfunction formatFunctional(value, pattern, d) {\n let temp;\n if (radix.test(pattern)) {\n value = formatRadix(value, Number(/\\d{2}/.exec(pattern)[0]), pattern, d);\n } else if (oct.test(pattern)) {\n value = formatRadix(value, 8, pattern, d);\n } else if (dec.test(pattern)) {\n value = formatRadix(value, 10, pattern, d);\n } else if (hex.test(pattern)) {\n value = formatRadix(value, 16, pattern, d);\n } else if (bin.test(pattern)) {\n value = formatRadix(value, 2, pattern, d);\n } else if (rom.test(pattern)) {\n temp = '';\n if (value < 0) {\n temp = '-';\n value = -value;\n }\n value = Math.floor(value);\n if (value === 0) {\n value = '0';\n } else if (value <= 500000) {\n // limit in engine\n value = formatRoman(value, pattern);\n value = temp + value;\n } else {\n value = pattern + temp + value.toExponential(0); // to return same result as engine\n }\n }\n\n return value;\n}\n\nfunction escape(value, flags, justStr) {\n const str = escapeRegExp(value);\n if (justStr) {\n return str;\n }\n return new RegExp(str || '', flags);\n}\n\nfunction createRegExp(thousand, decimal) {\n if (decimal) {\n decimal = escapeRegExp(decimal);\n }\n if (thousand) {\n thousand = escapeRegExp(thousand);\n }\n return new RegExp(`(?:[#0]+${thousand})?[#0]+(?:${decimal}[#0]+)?`);\n}\n\nfunction getAbbreviations(localeInfo, listSeparator) {\n if (!localeInfo || !localeInfo.qNumericalAbbreviation) {\n return SIprefixes;\n }\n\n const abbreviations = {};\n let abbrs = localeInfo.qNumericalAbbreviation.split(listSeparator);\n\n abbrs.forEach((abbreviation) => {\n let abbreviationTuple = abbreviation.split(':');\n if (abbreviationTuple.length === 2) {\n abbreviations[abbreviationTuple[0]] = abbreviationTuple[1];\n }\n });\n\n return abbreviations;\n}\n\nfunction preparePattern(o, t, d, abbreviate) {\n let parts,\n lastPart,\n pattern = o.pattern,\n numericPattern,\n prefix,\n postfix,\n groupTemp,\n decTemp,\n temp,\n regex;\n\n if (abbreviate) {\n o.abbreviate = true;\n }\n\n // extract the numeric part from the pattern\n regex = createRegExp(t, d);\n numericPattern = pattern.match(regex);\n numericPattern = numericPattern ? numericPattern[0] : '';\n prefix = numericPattern ? pattern.substr(0, pattern.indexOf(numericPattern)) : pattern;\n postfix = numericPattern ? pattern.substring(pattern.indexOf(numericPattern) + numericPattern.length) : '';\n\n if (!numericPattern) {\n numericPattern = pattern ? '#' : '##########';\n }\n\n if (t && t === d) {\n // ignore grouping if grouping separator is same as decimal separator\n // extract decimal part\n parts = numericPattern.split(d);\n lastPart = parts.pop();\n numericPattern = parts.join('') + d + lastPart;\n t = '';\n }\n\n // formatting library does not support multiple characters as separator (nor +-).\n // do a temporary replacement\n groupTemp = t;\n t = /,/.test(d) ? '¤' : ',';\n if (groupTemp) {\n numericPattern = numericPattern.replace(escape(groupTemp, 'g'), t);\n }\n\n decTemp = d;\n d = '.';\n if (decTemp) {\n numericPattern = numericPattern.replace(escape(decTemp, 'g'), d);\n }\n\n temp = numericPattern.match(/#/g);\n temp = temp ? temp.length : 0;\n\n const splitPattern = pattern.split(decTemp);\n let matchPrecisionResult;\n if (splitPattern[1]) {\n matchPrecisionResult = splitPattern[1].match(prec);\n }\n\n o.prefix = prefix || '';\n o.postfix = postfix || '';\n o.pattern = pattern;\n o.maxPrecision = matchPrecisionResult ? matchPrecisionResult.length : 2;\n o.percentage = percentage.test(pattern);\n o.numericPattern = numericPattern || '';\n o.numericRegex = new RegExp(`${escape(t, null, true)}|${escape(d, null, true)}`, 'g');\n o.groupTemp = groupTemp;\n o.decTemp = decTemp;\n o.t = t;\n o.d = d;\n o.temp = temp;\n}\n\nclass NumberFormatter {\n /**\n * @name NumberFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n * @param {String} [thousand]\n * @param {String} [decimal]\n * @param {String} [type]\n */\n constructor(localeInfo, pattern, thousand, decimal, type) {\n this.localeInfo = localeInfo;\n this.pattern = pattern;\n this.thousandDelimiter = thousand || ',';\n this.decimalDelimiter = decimal || '.';\n this.type = type || 'numeric';\n\n // FIXME qListSep?\n // this.patternSeparator = this.localeInfo && this.localeInfo.qListSep ? this.localeInfo.qListSep : ';';\n this.patternSeparator = ';';\n\n this.abbreviations = getAbbreviations(localeInfo, this.patternSeparator);\n\n this.prepare();\n }\n\n clone() {\n const n = new NumberFormatter(\n this.localeInfo,\n this.pattern,\n this.thousandDelimiter,\n this.decimalDelimiter,\n this.type\n );\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a number according to a specific pattern.\n * Use # for optional numbers and 0 for padding.\n * @param {Number} value Number to format.\n * @param {String} [pattern] The pattern to apply.\n * @param {String} [t] Grouping separator.\n * @param {String} [d] Decimal delimiter.\n * @example\n * format(10, \"0\") // 10;\n * format(10, \"#\") // 10;\n * format(10, \"##.#\") // 10;\n * format(10, \"##.0\") // 10.0;\n * format(10, \"000\") // 010;\n * format(10.123, \"0.0\") // 10.1;\n * format(10.123, \"0.00##\") // 10.123; // at least 2 decimals, never more than 4\n * format(123456789, \"#,###\") // 123,456,789;\n * format(123456789, \"####-####\", \"-\") // 1-2345-6789;\n *\n * format(0.257, \"0.0%\") // 25.7%; // will multiply by 100\n * format(9876, \"$#,###\") // $9,876;\n * format(-9876, \"$#,###;$(#,###)\") // $(9,876); // use ; for alternative formatting for negative values\n * format(10, \"(r16)\") // a; // radix 16\n * format(15, \"(hex)\") // f; // same as (r16)\n * format(15, \"(HEX)\") // F;\n * format(10, \"(bin)\") // 1010; // same as (r02)\n * format(10, \"(oct)\") // 12; // same as (r08)\n */\n format(value, pattern, t, d) {\n this.prepare(pattern, t, d);\n return this.formatValue(value);\n }\n\n prepare(pattern, t, d) {\n let prep;\n\n if (typeof pattern === 'undefined') {\n pattern = this.pattern;\n }\n if (typeof t === 'undefined') {\n t = this.thousandDelimiter;\n }\n if (typeof d === 'undefined') {\n d = this.decimalDelimiter;\n }\n\n if (!pattern) {\n this._prepared = { pattern: false };\n return;\n }\n\n this._prepared = {\n positive: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n negative: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n zero: {\n d,\n t,\n abbreviate: false,\n isFunctional: false,\n prefix: '',\n postfix: '',\n },\n };\n prep = this._prepared;\n\n pattern = pattern.split(this.patternSeparator);\n prep.positive.pattern = pattern[0];\n prep.negative.pattern = pattern[1];\n prep.zero.pattern = pattern[2];\n if (functional.test(pattern[0])) {\n prep.positive.isFunctional = true;\n }\n if (!pattern[1]) {\n prep.negative = false;\n } else if (functional.test(pattern[1])) {\n prep.negative.isFunctional = true;\n }\n if (!pattern[2]) {\n prep.zero = false;\n } else if (functional.test(pattern[2])) {\n prep.zero.isFunctional = true;\n }\n\n const abbreviate = this.type === 'U';\n if (!prep.positive.isFunctional) {\n preparePattern(prep.positive, t, d, abbreviate);\n }\n if (prep.negative && !prep.negative.isFunctional) {\n preparePattern(prep.negative, t, d, abbreviate);\n }\n if (prep.zero && !prep.zero.isFunctional) {\n preparePattern(prep.zero, t, d, abbreviate);\n }\n }\n\n formatValue(value) {\n let prep = this._prepared,\n temp,\n exponent,\n abbr = '',\n absValue,\n num,\n sciValue = '',\n d,\n t,\n i,\n numericPattern,\n decimalPartPattern,\n original = value;\n\n if (isNaN(value)) {\n return `${original}`;\n }\n\n value = +value;\n\n if (prep.pattern === false) {\n return value.toString();\n }\n\n if (value === 0 && prep.zero) {\n prep = prep.zero;\n return prep.pattern;\n }\n if (value < 0 && prep.negative) {\n prep = prep.negative;\n value = -value;\n } else {\n prep = prep.positive;\n }\n d = prep.d;\n t = prep.t;\n\n if (prep.isFunctional) {\n value = formatFunctional(value, prep.pattern, d);\n } else {\n if (prep.percentage) {\n value *= 100;\n }\n\n if (prep.abbreviate) {\n const abbrArray = Object.keys(this.abbreviations)\n .map((key) => parseInt(key, 10))\n .sort((a, b) => a - b);\n let lowerAbbreviation;\n let upperAbbreviation = abbrArray[0];\n i = 0;\n exponent = Number(Number(value).toExponential().split('e')[1]);\n\n while (upperAbbreviation <= exponent && i < abbrArray.length) {\n i++;\n upperAbbreviation = abbrArray[i];\n }\n\n if (i > 0) {\n lowerAbbreviation = abbrArray[i - 1];\n }\n\n let suggestedAbbrExponent;\n\n // value and lower abbreviation is for values above 10, use the lower (move to the left <==)\n if (lowerAbbreviation && exponent > 0 && lowerAbbreviation > 0) {\n suggestedAbbrExponent = lowerAbbreviation;\n // value and lower abbreviation is for values below 0.1 (move to the right ==>)\n } else if ((exponent < 0 && lowerAbbreviation < 0) || !lowerAbbreviation) {\n // upper abbreviation is also for values below 0.1 and precision allows for using the upper abbreviation(move to the right ==>)\n if (upperAbbreviation < 0 && upperAbbreviation - exponent <= prep.maxPrecision) {\n suggestedAbbrExponent = upperAbbreviation;\n // lower abbrevaition is smaller than exponent and we can't get away with not abbreviating\n } else if (lowerAbbreviation <= exponent && !(upperAbbreviation > 0 && -exponent <= prep.maxPrecision)) {\n // (move to left <==)\n suggestedAbbrExponent = lowerAbbreviation;\n }\n }\n if (suggestedAbbrExponent) {\n abbr = this.abbreviations[suggestedAbbrExponent];\n value /= 10 ** suggestedAbbrExponent;\n }\n }\n\n absValue = Math.abs(value);\n temp = prep.temp;\n numericPattern = prep.numericPattern;\n decimalPartPattern = numericPattern.split(d)[1];\n\n if (this.type === 'I') {\n value = Math.round(value);\n }\n num = value;\n\n if (!decimalPartPattern && numericPattern.slice(-1)[0] === '#') {\n if (absValue >= 10 ** temp || absValue < 1 || absValue < 1e-4) {\n if (value === 0) {\n value = '0';\n } else if (absValue < 1e-4 || absValue >= 1e20) {\n // engine always formats values < 1e-4 in scientific form, values >= 1e20 can only be represented in scientific form\n value = num.toExponential(Math.max(1, Math.min(14, temp)) - 1);\n value = value.replace(/\\.?0+(?=e)/, '');\n sciValue = '';\n } else {\n value = value.toPrecision(Math.max(1, Math.min(14, temp)));\n if (value.indexOf('.') >= 0) {\n value = value.replace(value.indexOf('e') < 0 ? /0+$/ : /\\.?0+(?=e)/, '');\n value = value.replace('.', d);\n }\n }\n } else {\n numericPattern += d;\n temp = Math.max(0, Math.min(20, temp - Math.ceil(Math.log(absValue) / Math.log(10))));\n for (i = 0; i < temp; i++) {\n numericPattern += '#';\n }\n\n value = formatter(numericPattern, value);\n }\n } else if (absValue >= 1e15 || (absValue > 0 && absValue <= 1e-14)) {\n value = absValue ? absValue.toExponential(15).replace(/\\.?0+(?=e)/, '') : '0';\n } else {\n const wholePart = Number(\n value.toFixed(Math.min(20, decimalPartPattern ? decimalPartPattern.length : 0)).split('.')[0]\n );\n let wholePartPattern = numericPattern.split(d)[0];\n wholePartPattern += d;\n\n value = formatter(wholePartPattern, wholePart) || '0';\n\n if (decimalPartPattern) {\n const nDecimals = Math.max(0, Math.min(14, decimalPartPattern.length)); // the length of e.g. 0000#####\n const nZeroes = decimalPartPattern.replace(/#+$/, '').length;\n let decimalPart = (this.type === 'I' ? 0 : absValue % 1).toFixed(nDecimals).slice(2).replace(/0+$/, ''); // remove trailing zeroes\n\n for (i = decimalPart.length; i < nZeroes; i++) {\n decimalPart += '0';\n }\n\n if (decimalPart) {\n value += d + decimalPart;\n }\n } else if (wholePart === 0) {\n // to avoid \"-\" being prefixed to value\n num = 0;\n }\n }\n\n value = value.replace(prep.numericRegex, (m) => {\n if (m === t) {\n return prep.groupTemp;\n }\n if (m === d) {\n return prep.decTemp;\n }\n return '';\n });\n if (num < 0 && !/^-/.test(value)) {\n value = `-${value}`;\n }\n }\n\n return prep.prefix + value + sciValue + abbr + prep.postfix;\n }\n\n static getStaticFormatter() {\n return {\n prepare() {},\n formatValue(v) {\n return `${v}`;\n },\n };\n }\n}\n\nexport default function numberFormatFactory(...args) {\n return new NumberFormatter(...args);\n}\n","export default function memoize(func, opts = {}) {\n const { size = 5000, multipleArguments = false, toKey = (arg) => arg } = opts;\n let cache = Object.create(null);\n let index = Object.create(null);\n let counter = 0;\n let fifo = 0; // First-In-First-Out index\n let cacher;\n let k;\n\n if (multipleArguments) {\n cacher = (...args) => {\n k = toKey(...args);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(...args));\n };\n } else {\n cacher = (arg) => {\n k = toKey(arg);\n if (cacher.has(k)) {\n return cacher.get(k);\n }\n return cacher.set(k, func(arg));\n };\n }\n\n cacher.set = (key, val) => {\n if (counter >= size) {\n delete cache[index[fifo]];\n delete index[fifo];\n counter--;\n fifo++;\n }\n cache[key] = val;\n index[counter] = key;\n counter++;\n return val;\n };\n\n cacher.get = (key) => cache[key];\n\n cacher.has = (key) => key in cache;\n\n cacher.clear = () => {\n cache = Object.create(null);\n index = Object.create(null);\n counter = 0;\n fifo = 0;\n };\n\n cacher.size = () => counter;\n\n return cacher;\n}\n","import numberFormatFactory from './parts/qs-number-formatter';\nimport memoize from './memoize';\n\nexport default function formatter(pattern, thousand, decimal, qType, localeInfo) {\n const qformat = numberFormatFactory(localeInfo, pattern, thousand, decimal, qType);\n const memoized = memoize(qformat.formatValue.bind(qformat), {\n // Handle NaN and cases where toString yields different result than +operator. Ex. a Date.\n toKey: (value) => (isNaN(value) ? value : +value),\n });\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Number} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Number} v Value\n * @param {String} t Thousand\n * @param {String} d Decimal\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v, t, d) {\n memoized.clear();\n return qformat.format(v, p, t, d);\n };\n\n /**\n * Change the pattern on existing formatter\n *\n * @param {String} p Pattern (optional)\n * @return {String} Returns the pattern\n */\n format.pattern = function patternFn(p) {\n if (p) {\n memoized.clear();\n qformat.pattern = p;\n qformat.prepare();\n }\n return qformat.pattern;\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n /* format.locale = function( ...args ) {\n locale = formatLocale( ...args );\n d3format = locale.format( pattern );\n\n return this;\n }; */\n\n return format;\n}\n","/* eslint import/prefer-default-export: 0 */\n\nexport const TYPES = {\n AUTO: 'U',\n INTEGER: 'I',\n NUMBER: 'R',\n FIXED_TO: 'F',\n MONEY: 'M',\n DATE: 'D',\n TIME: 'T',\n DATE_TIME: 'TS',\n INTERVAL: 'IV',\n};\n","import { TYPES } from '../constants';\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst DAYS_ABBR = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst MONTHS_ABBR = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nconst SECONDS_PER_DAY = 86400;\n\nfunction pad(s, n) {\n for (let i = s.length; i < n; i++) {\n s = `0${s}`;\n }\n return s;\n}\n\nfunction parseDate(d, twelveFormat) {\n let h = d.getUTCHours();\n let day = d.getUTCDay() - 1;\n if (twelveFormat) {\n h %= 12;\n if (!h) {\n // h == 0 -> 12\n h = 12;\n }\n }\n\n if (day < 0) {\n day = 6;\n }\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth(),\n day,\n date: d.getUTCDate(),\n h,\n m: d.getUTCMinutes(),\n s: d.getUTCSeconds(),\n f: d.getUTCMilliseconds(),\n t: d.getUTCHours() >= 12 ? 'pm' : 'am',\n };\n}\n\nfunction getRemainder(value) {\n let s = value.toString().split('.');\n if (s[1]) {\n s = Number(`0.${s[1]}`);\n } else {\n return 0;\n }\n return s;\n}\n\nfunction parseIntervalDays(days) {\n const d = days;\n const h = 24 * getRemainder(d);\n const m = 60 * getRemainder(h);\n const s = 60 * getRemainder(m);\n const ms = 1000 * getRemainder(s);\n\n return {\n d: Math.floor(d),\n h: Math.floor(h),\n m: Math.floor(m),\n s: Math.floor(s),\n f: Math.round(ms),\n };\n}\n\nfunction parseInterval(days, pattern) {\n let units = parseIntervalDays(days),\n d = units.d,\n h = units.h,\n m = units.m,\n s = units.s,\n f = units.f,\n w = 0,\n date;\n\n if (/w+|t+/gi.test(pattern)) {\n date = new Date(\n Date.UTC(1899, 11, 30 + Math.floor(days), 0, 0, Math.round(SECONDS_PER_DAY * (days - Math.floor(days))))\n );\n if (isNaN(date.getTime())) {\n date = null;\n }\n }\n\n if (!/D+/gi.test(pattern)) {\n h += d * 24;\n }\n if (!/h+/gi.test(pattern)) {\n m += h * 60;\n }\n if (!/m+/gi.test(pattern)) {\n s += m * 60;\n }\n if (/w+/gi.test(pattern)) {\n w = date ? date.getDay() - 1 : 0;\n if (w < 0) {\n w = 6;\n }\n }\n\n let someT = '';\n if (date) {\n someT = date.getUTCHours() >= 12 ? 'pm' : 'am';\n }\n\n return {\n year: 0,\n month: 0,\n day: w,\n date: d,\n h,\n m,\n s,\n f,\n t: someT,\n };\n}\n\nfunction getMasks(inst, d) {\n return {\n 'Y+|y+': {\n Y: `${Number(`${d.year}`.slice(-2))}`,\n YY: pad(`${d.year}`.slice(-2), 2),\n YYY: pad(`${d.year}`.slice(-3), 3),\n def(m) {\n // default\n return pad(`${d.year}`, m.length);\n },\n },\n 'M+': {\n M: d.month + 1,\n MM: pad(`${d.month + 1}`, 2),\n MMM: inst.locale_months_abbr[d.month],\n def: inst.locale_months[d.month],\n },\n 'W+|w+': {\n W: d.day,\n WW: pad(`${d.day}`, 2),\n WWW: inst.locale_days_abbr[d.day],\n def: inst.locale_days[d.day],\n },\n 'D+|d+': {\n D: d.date,\n def(m) {\n return pad(`${d.date}`, m.length);\n },\n },\n 'h+|H+': {\n h: d.h,\n def(m) {\n return pad(`${d.h}`, m.length);\n },\n },\n 'm+': {\n m: d.m,\n def(m) {\n return pad(`${d.m}`, m.length);\n },\n },\n 's+|S+': {\n s: d.s,\n def(m) {\n return pad(`${d.s}`, m.length);\n },\n },\n 'f+|F+': {\n def(m) {\n let f = `${d.f}`,\n n = m.length - f.length;\n if (n > 0) {\n for (let i = 0; i < n; i++) {\n f += '0';\n }\n } else if (n < 0) {\n f = f.slice(0, m.length);\n }\n return f;\n },\n },\n 't{1,2}|T{1,2}': {\n def(m) {\n let t = d.t;\n if (m[0].toUpperCase() === m[0]) {\n t = t.toUpperCase();\n }\n t = t.slice(0, m.length);\n return t;\n },\n },\n };\n}\n\nclass DateFormatter {\n /**\n * @name DateFormatter\n * @constructs\n * @param {Object} localeInfo\n * @param {String} pattern\n */\n constructor(localeInfo, pattern, qtype) {\n const info = localeInfo || {};\n\n if (!info.qCalendarStrings) {\n info.qCalendarStrings = {\n qLongDayNames: DAYS,\n qDayNames: DAYS_ABBR,\n qLongMonthNames: MONTHS,\n qMonthNames: MONTHS_ABBR,\n };\n }\n\n this.localeInfo = info;\n this.locale_days = info.qCalendarStrings.qLongDayNames.slice();\n this.locale_days_abbr = info.qCalendarStrings.qDayNames.slice();\n this.locale_months = info.qCalendarStrings.qLongMonthNames.slice();\n this.locale_months_abbr = info.qCalendarStrings.qMonthNames.slice();\n\n if (!pattern) {\n const patternMap = {\n [TYPES.TIME]: info.qTimeFmt || 'hh:mm:ss',\n [TYPES.DATE]: info.qDateFmt || 'YYYY-MM-DD',\n [TYPES.DATE_TIME]: info.qTimestampFmt || 'YYYY-MM-DD hh:mm:ss',\n };\n\n pattern = patternMap[qtype];\n }\n\n this.pattern = pattern;\n }\n\n clone() {\n const n = new DateFormatter(this.localeInfo, this.pattern);\n n.subtype = this.subtype;\n return n;\n }\n\n /**\n * Formats a date according to given pattern\n * @param {Date} date The date to format.\n * @param {String} pattern The desired format of the date\n * var d = new Date(2013, 8, 15, 13, 55, 40, 987);\n * var n = new DateFormatter();\n * @example\n * m.format( d, 'YYYY-MM-DD hh:mm:ss.ffff') // 2013-08-15 13:55:40.9870\n * m.format( d, 'h:m:s tt') // 1:55:40 pm\n * m.format( d, 'h:m:s TT') // 1:55:40 PM\n * m.format( d, 'M/D/YYYY') // 8/15/2013\n * m.format( d, 'WWWW DD MMM') // Thursday 15 Aug\n * m.format( d, 'WWW DD MMMM @ hh:mm:ss') // Thu 15 August @ 13:55:40\n */\n format(date, pattern) {\n // Fallback pattern is set in constructor\n if (!pattern) {\n pattern = this.pattern ? this.pattern : 'YYYY-MM-DD hh:mm:ss';\n }\n\n pattern = pattern.replace(/\\[.+]|\\[|]/g, '');\n const hasTwelveFlag = /t+/gi.test(pattern);\n let parsedDate;\n\n if (date instanceof Date) {\n parsedDate = parseDate(date, hasTwelveFlag);\n } else {\n if (date < 0) {\n // parseInterval don't support for negative values\n date = -date;\n pattern = `-${pattern}`;\n }\n parsedDate = parseInterval(date, pattern);\n }\n // remove [] and everything inside it\n\n const masks = getMasks(this, parsedDate);\n\n const masksArr = [];\n for (const mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n masksArr.push(mask);\n }\n }\n const dateTimeRegex = new RegExp(masksArr.join('|'), 'g');\n\n const result = pattern.replace(dateTimeRegex, (m) => {\n let r;\n let mask;\n for (mask in masks) {\n if (Object.prototype.hasOwnProperty.call(masks, mask)) {\n r = new RegExp(mask);\n if (r.test(m)) {\n break;\n }\n }\n }\n if (!r) {\n return '';\n }\n let value;\n for (const submask in masks[mask]) {\n if (submask === m || submask.toLowerCase() === m) {\n value = masks[mask][submask];\n if (typeof value === 'undefined') {\n value = masks[mask][submask.toLowerCase()];\n }\n break;\n }\n }\n if (typeof value === 'undefined') {\n value = masks[mask].def;\n }\n\n if (typeof value === 'function') {\n value = value(m);\n }\n return value;\n });\n return result;\n }\n}\n\nexport default function dateFormatFactory(...args) {\n return new DateFormatter(...args);\n}\n","import dateFormatFactory from './parts/qs-date-formatter';\nimport { TYPES } from './constants';\nimport memoize from './memoize';\n\nconst MS_PER_DAY = 86400000;\n\nexport function QlikTimeToDate(value) {\n return new Date(\n Date.UTC(1899, 11, 30 + Math.floor(value), 0, 0, 0, Math.round(MS_PER_DAY * (value - Math.floor(value))))\n );\n}\n\nexport default function formatter(pattern, qtype = 'TS', localeInfo = null) {\n let qformat = dateFormatFactory(localeInfo, pattern, qtype);\n let memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' && typeof date.getTime === 'function' ? date.getTime() : date),\n });\n\n /**\n * Prepare a value according to the specified qtype\n *\n * @param {Number} value The value to be formatted\n * @return {Number} The converted value (if applied)\n */\n function prepare(value) {\n if (qtype !== TYPES.INTERVAL) {\n return QlikTimeToDate(value);\n }\n return value;\n }\n\n /**\n * Format a value according to the specified pattern created at construct\n *\n * @param {Date} value The number to be formatted\n * @return {String} [description]\n */\n function format(value) {\n value = prepare(value);\n return memoized(value);\n }\n\n /**\n * Format a value according to a specific pattern\n * that is not the one specified in the constructor\n *\n * @param {String} p Pattern\n * @param {Date} v Value\n * @return {String} Formatted value\n */\n format.format = function formatFn(p, v) {\n memoized.clear();\n v = prepare(v);\n return qformat.format(v, p);\n };\n\n /**\n * Set the locale for the formatter\n *\n * @param {Object} args Locale object for formatting\n * @return {Undefined} Returns nothing\n */\n format.locale = function locale(li) {\n qformat = dateFormatFactory(li, pattern, qtype);\n memoized = memoize(qformat.format.bind(qformat), {\n toKey: (date) => (typeof date === 'object' ? date.getTime() : date),\n });\n return this;\n };\n\n /**\n * Get or set the QType\n *\n * @param {String} nqt New qType (optional)\n * @return {String} Current qtype\n */\n format.qtype = function qtypeFn(nqt) {\n if (nqt !== undefined) {\n qtype = nqt;\n memoized.clear();\n }\n return qtype;\n };\n\n return format;\n}\n","import numberFormat from './numberFormat';\nimport timeFormat from './timeFormat';\n\nexport { numberFormat, timeFormat };\n\nexport function createFromMetaInfo(meta, localeInfo) {\n if (meta && meta.qNumFormat && ['D', 'T', 'TS', 'IV'].indexOf(meta.qNumFormat.qType) !== -1) {\n return timeFormat(meta.qNumFormat.qFmt, meta.qNumFormat.qType, localeInfo);\n }\n let pattern = '#';\n let thousand = localeInfo && typeof localeInfo.qThousandSep !== 'undefined' ? localeInfo.qThousandSep : ',';\n let decimal = localeInfo && typeof localeInfo.qDecimalSep !== 'undefined' ? localeInfo.qDecimalSep : '.';\n let type = 'U';\n let isAuto = meta && !!meta.qIsAutoFormat;\n if (meta && meta.qNumFormat) {\n pattern = meta.qNumFormat.qFmt || pattern;\n thousand = meta.qNumFormat.qThou || thousand;\n decimal = meta.qNumFormat.qDec || decimal;\n type = meta.qNumFormat.qType || type;\n isAuto = isAuto && ['M'].indexOf(meta.qNumFormat.qType) === -1;\n } else {\n isAuto = true;\n }\n\n if (isAuto || type === 'U') {\n pattern = `#${decimal}##`;\n type = 'U';\n }\n\n return numberFormat(pattern, thousand, decimal, type, localeInfo);\n}\n","import { createFromMetaInfo } from '../formatter';\n\nexport default function qField({ meta, id, key, localeInfo, fieldExtractor, value, type, sourceField } = {}) {\n let values;\n\n const valueFn = value || (type === 'dimension' ? (d) => d.qElemNo : (d) => d.qValue);\n const labelFn = (d) => d.qText || '';\n const reduce = type === 'dimension' ? 'first' : 'avg';\n const formatter = createFromMetaInfo(meta, localeInfo);\n const reduceLabel = type === 'dimension' ? 'first' : (labels, v) => formatter(v);\n\n const f = {\n id: () => id,\n key: () => key,\n raw: () => meta,\n title: () => meta.qFallbackTitle || meta.label,\n type: () => type,\n origin: () => sourceField,\n items: () => {\n if (!values) {\n values = fieldExtractor(f);\n }\n return values;\n },\n min: () => meta.qMin,\n max: () => meta.qMax,\n value: valueFn,\n label: labelFn,\n reduce,\n reduceLabel,\n formatter: () => formatter,\n tags: () => meta.qTags,\n };\n\n return f;\n}\n","// import augmentH from './augment-hierarchy';\nimport extend from 'extend';\nimport SExtractor from './extractor-s';\nimport { extract as TExtractor, augment as augmentTree } from './extractor-t';\nimport { findField } from './util';\nimport field from './field';\n\nfunction createFields(path, obj, prefix, parentKey, opts) {\n return (obj[path] || []).map((meta, i) => {\n const fieldKey = `${parentKey ? `${parentKey}/` : ''}${path}/${i}`;\n const f = {\n instance: field(\n extend(\n {\n id: `${prefix ? `${prefix}/` : ''}${fieldKey}`,\n key: fieldKey,\n meta,\n },\n opts\n )\n ),\n };\n f.attrDims = createFields(\n 'qAttrDimInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qElemNo, type: 'dimension' })\n );\n f.attrExps = createFields(\n 'qAttrExprInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qNum, type: 'measure' })\n );\n f.measures = createFields(\n 'qMeasureInfo',\n meta,\n prefix,\n fieldKey,\n extend({}, opts, { value: (v) => v.qValue, type: 'measure' })\n );\n return f;\n });\n}\n\nexport default function q({ key, data, config = {} } = {}) {\n const cache = {\n fields: [],\n wrappedFields: [],\n allFields: [],\n virtualFields: [],\n };\n\n const cube = data;\n if (!cube) {\n throw new Error('Missing \"data\" input');\n }\n\n if (!cube.qDimensionInfo) {\n throw new Error('The \"data\" input is not recognized as a hypercube');\n }\n\n const deps = q.util;\n\n const opts = {\n cache,\n cube,\n localeInfo: config.localeInfo,\n fieldExtractor: null,\n pages: null,\n hierarchy: () => null,\n virtualFields: config.virtualFields,\n };\n\n const dataset = {\n key: () => key,\n raw: () => cube,\n field: (query) => findField(query, opts),\n fields: () => cache.fields.slice(),\n extract: (extractionConfig) => opts.extractor(extractionConfig, dataset, cache, deps),\n hierarchy: (hierarchyConfig) => opts.hierarchy(hierarchyConfig, dataset, cache, deps),\n _cache: () => cache,\n };\n\n if (cube.qMode === 'K' || cube.qMode === 'T' || (!cube.qMode && cube.qNodesOnDim)) {\n opts.extractor = TExtractor;\n opts.hierarchy = augmentTree;\n opts.pages = cube.qMode === 'K' ? cube.qStackedDataPages : cube.qTreeDataPages;\n } else if (cube.qMode === 'S') {\n opts.extractor = SExtractor;\n opts.pages = cube.qDataPages;\n opts.hierarchy = augmentTree;\n } else {\n opts.extractor = () => []; // TODO - throw unsupported error?\n }\n\n opts.fieldExtractor = (f) => opts.extractor({ field: f }, dataset, cache, deps);\n\n const dimAcc = cube.qMode === 'S' ? (d) => d.qElemNumber : undefined;\n const measAcc = cube.qMode === 'S' ? (d) => d.qNum : undefined;\n\n cache.wrappedFields.push(\n ...createFields('qDimensionInfo', cube, key, '', extend({}, opts, { value: dimAcc, type: 'dimension' }))\n );\n cache.wrappedFields.push(\n ...createFields('qMeasureInfo', cube, key, '', extend({}, opts, { value: measAcc, type: 'measure' }))\n );\n\n cache.fields = cache.wrappedFields.map((f) => f.instance);\n\n const traverse = (arr) => {\n arr.forEach((f) => {\n cache.allFields.push(f.instance);\n traverse(f.measures);\n traverse(f.attrDims);\n traverse(f.attrExps);\n });\n };\n\n traverse(cache.wrappedFields);\n\n (config.virtualFields || []).forEach((v) => {\n // key: 'temporal',\n // from: 'qDimensionInfo/0',\n // override: {\n // value: v => v.qNum,\n // },\n const sourceField = dataset.field(v.from);\n const f = field({\n meta: sourceField.raw(),\n id: `${key}/${v.key}`,\n sourceField,\n fieldExtractor: (ff) => opts.extractor({ field: ff }, dataset, cache, deps),\n key: v.key,\n type: sourceField.type(),\n localeInfo: opts.localeInfo,\n value: sourceField.value,\n ...(v.override || {}),\n });\n cache.virtualFields.push(f);\n });\n\n cache.allFields.push(...cache.virtualFields);\n\n return dataset;\n}\n","import resolve from '../json-path-resolver';\n\nconst LAYOUT_TO_PROP = [\n ['qHyperCube', 'qHyperCubeDef'],\n ['qTreeData', 'qTreeDataDef'],\n ['qDimensionInfo', 'qDimensions'],\n ['qMeasureInfo', 'qMeasures'],\n ['qAttrDimInfo', 'qAttributeDimensions'],\n ['qAttrExprInfo', 'qAttributeExpressions'],\n];\n\nconst DIM_RX = /\\/qDimensionInfo(?:\\/(\\d+))?/;\nconst M_RX = /\\/qMeasureInfo\\/(\\d+)/;\nconst ATTR_DIM_RX = /\\/qAttrDimInfo\\/(\\d+)(?:\\/(\\d+))?/;\nconst ATTR_EXPR_RX = /\\/qAttrExprInfo\\/(\\d+)/;\nconst HC_RX = /\\/?qHyperCube/;\nconst TD_RX = /\\/?qTreeData/;\n\nconst SHORTEN_HC = (path) => `${path.substr(0, path.indexOf('/qHyperCubeDef') + 14)}`; // 14 = length of '/qHyperCubeDef'\nconst SHORTEN_TD = (path) => `${path.substr(0, path.indexOf('/qTreeDataDef') + 13)}`; // 13 = length of '/qTreeDataDef'\n\nexport function extractFieldFromId(id, layout) {\n let path = id;\n let dimensionIdx = -1;\n let measureIdx = -1;\n let pathToCube = '';\n let shortenizer = (p) => p;\n if (HC_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qHyperCube') + 10)}`; // 10 = length of 'qHyperCube'\n shortenizer = SHORTEN_HC;\n } else if (TD_RX.test(id)) {\n pathToCube = `${path.substr(0, path.indexOf('qTreeData') + 9)}`; // 9 = length of 'qTreeData'\n shortenizer = SHORTEN_TD;\n }\n\n let shortenPath = true;\n\n if (DIM_RX.test(id)) {\n dimensionIdx = +DIM_RX.exec(id)[1];\n }\n\n if (M_RX.test(id)) {\n measureIdx = +M_RX.exec(id)[1];\n }\n\n if (ATTR_DIM_RX.test(id)) {\n measureIdx = -1;\n dimensionIdx = 0;\n const attrCol = +ATTR_DIM_RX.exec(path)[2];\n if (!isNaN(attrCol)) {\n dimensionIdx = attrCol;\n path = path.replace(/\\/\\d+$/, '');\n }\n shortenPath = false;\n }\n\n if (ATTR_EXPR_RX.test(id)) {\n // depends on number of measures + number of attr expressions\n // in dimensions and measures before this one\n const offset = measureIdx;\n if (layout) {\n measureIdx = 0;\n const hc = resolve(pathToCube, layout);\n\n // offset by number of measures\n measureIdx += (hc.qMeasureInfo || []).length;\n\n // offset by total number of attr expr in dimensions\n // (assuming attr expr in dimensions are ordered first)\n if (dimensionIdx > -1) {\n measureIdx = hc.qDimensionInfo\n .slice(0, dimensionIdx)\n .reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n dimensionIdx = -1;\n } else {\n measureIdx = hc.qDimensionInfo.reduce((v, dim) => v + dim.qAttrExprInfo.length, measureIdx);\n // offset by total number of attr expr in measures before 'index'\n measureIdx = hc.qMeasureInfo.slice(0, offset).reduce((v, meas) => v + meas.qAttrExprInfo.length, measureIdx);\n }\n\n // offset by the actual column value for the attribute expression itself\n measureIdx += +ATTR_EXPR_RX.exec(path)[1];\n } else if (dimensionIdx > -1) {\n dimensionIdx = -1;\n measureIdx = +ATTR_EXPR_RX.exec(path)[1];\n } else {\n measureIdx += +ATTR_EXPR_RX.exec(path)[1] + 1;\n }\n }\n\n LAYOUT_TO_PROP.forEach(([v, prop]) => {\n path = path.replace(v, prop);\n });\n\n if (shortenPath) {\n path = shortenizer(path);\n }\n\n if (path && path[0] !== '/') {\n path = `/${path}`;\n }\n\n return {\n measureIdx,\n dimensionIdx,\n path,\n };\n}\n\n/**\n * Helper method to generate suitable QIX selection methods and parameters based on a brush instance.\n * @alias brush\n * @memberof picasso.q\n * @param {Brush} brush A brush instance\n * @param {object} [opts]\n * @param {boolean} [opts.byCells=false] Whether to prefer selection by row index.\n * @param {string} [opts.primarySource] Field source to extract row indices from. If not specified, indices from first source are used.\n * @param {boolean} [opts.orMode=true] If false, combine measure range selections.\n * @param {object} [layout] QIX data layout. Needed only when brushing on attribute expressions, to be able to calculate the measure index.\n * @return {object[]} An array of relevant selections\n */\nexport default function qBrush(brush, opts = {}, layout) {\n const byCells = opts.byCells;\n const primarySource = opts.primarySource;\n const selections = [];\n const methods = {};\n const isActive = brush.isActive();\n let hasValues = false;\n brush.brushes().forEach((b) => {\n const info = extractFieldFromId(b.id, layout);\n if (b.type === 'range' && info.measureIdx > -1 && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.multiRangeSelectTreeDataValues) {\n methods.multiRangeSelectTreeDataValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.multiRangeSelectTreeDataValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qDimensionIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n } else {\n if (b.type === 'range' && info.measureIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.rangeSelectHyperCubeValues) {\n methods.rangeSelectHyperCubeValues = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.rangeSelectHyperCubeValues.ranges.push({\n qMeasureIx: info.measureIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: true,\n },\n })\n );\n }\n }\n if (b.type === 'range' && info.dimensionIdx > -1) {\n const ranges = b.brush.ranges();\n if (ranges.length) {\n hasValues = true;\n if (!methods.selectHyperCubeContinuousRange) {\n methods.selectHyperCubeContinuousRange = {\n path: info.path,\n ranges: [],\n };\n }\n ranges.forEach((range) =>\n methods.selectHyperCubeContinuousRange.ranges.push({\n qDimIx: info.dimensionIdx,\n qRange: {\n qMin: range.min,\n qMax: range.max,\n qMinInclEq: true,\n qMaxInclEq: false,\n },\n })\n );\n }\n }\n\n if (b.type === 'value' && info.dimensionIdx > -1) {\n if (byCells) {\n if (\n layout &&\n layout.qHyperCube &&\n (layout.qHyperCube.qMode === 'P' || layout.qHyperCube.qMode === 'T' || layout.qHyperCube.qMode === 'K')\n ) {\n const hyperCube = layout.qHyperCube;\n const noOfLeftDims = hyperCube.qNoOfLeftDims;\n const dimInterColSortIdx = hyperCube.qEffectiveInterColumnSortOrder.indexOf(info.dimensionIdx);\n\n if (!methods.selectPivotCells) {\n methods.selectPivotCells = {\n path: info.path,\n cells: [],\n };\n }\n\n if (b.id === primarySource || !primarySource) {\n const validValues = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n\n if ((noOfLeftDims === 0 || dimInterColSortIdx >= noOfLeftDims) && noOfLeftDims > -1) {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'T',\n qCol: val,\n qRow: dimInterColSortIdx - noOfLeftDims,\n });\n });\n } else {\n validValues.forEach((val) => {\n methods.selectPivotCells.cells.push({\n qType: 'L',\n qCol: info.dimensionIdx,\n qRow: val,\n });\n });\n }\n hasValues = !!methods.selectPivotCells.cells.length;\n }\n } else {\n if (!methods.selectHyperCubeCells) {\n methods.selectHyperCubeCells = {\n path: info.path,\n cols: [],\n };\n }\n\n methods.selectHyperCubeCells.cols.push(info.dimensionIdx);\n if (b.id === primarySource || (!primarySource && !methods.selectHyperCubeCells.values)) {\n methods.selectHyperCubeCells.values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!methods.selectHyperCubeCells.values.length;\n }\n }\n } else {\n const values = b.brush\n .values()\n .map((s) => +s)\n .filter((v) => !isNaN(v));\n hasValues = !!values.length;\n selections.push({\n params: [info.path, info.dimensionIdx, values, false],\n method: 'selectHyperCubeValues',\n });\n }\n }\n }\n });\n\n if (!hasValues && isActive) {\n return [\n {\n method: 'resetMadeSelections',\n params: [],\n },\n ];\n }\n\n if (methods.rangeSelectHyperCubeValues) {\n selections.push({\n method: 'rangeSelectHyperCubeValues',\n params: [\n methods.rangeSelectHyperCubeValues.path,\n methods.rangeSelectHyperCubeValues.ranges,\n [],\n opts.orMode ?? true,\n ],\n });\n }\n\n if (methods.selectHyperCubeContinuousRange) {\n selections.push({\n method: 'selectHyperCubeContinuousRange',\n params: [methods.selectHyperCubeContinuousRange.path, methods.selectHyperCubeContinuousRange.ranges],\n });\n }\n\n if (methods.selectHyperCubeCells) {\n selections.push({\n method: 'selectHyperCubeCells',\n params: [\n methods.selectHyperCubeCells.path,\n methods.selectHyperCubeCells.values,\n methods.selectHyperCubeCells.cols,\n ],\n });\n }\n\n if (methods.selectPivotCells) {\n selections.push({\n method: 'selectPivotCells',\n params: [methods.selectPivotCells.path, methods.selectPivotCells.cells],\n });\n }\n\n if (methods.multiRangeSelectTreeDataValues) {\n selections.push({\n method: 'multiRangeSelectTreeDataValues',\n params: [methods.multiRangeSelectTreeDataValues.path, methods.multiRangeSelectTreeDataValues.ranges],\n });\n }\n\n return selections;\n}\n","import data from './data/dataset';\nimport qBrushHelper from './brush/q-brush';\nimport numberFormat from './formatter/numberFormat';\nimport timeFormat from './formatter/timeFormat';\n\nexport default function initialize(picasso) {\n data.util = picasso.data('matrix').util;\n picasso.data('q', data);\n picasso.formatter('q-number', numberFormat);\n picasso.formatter('q-time', timeFormat);\n}\n\ninitialize.qBrushHelper = qBrushHelper; // deprecated\ninitialize.selections = qBrushHelper;\n","const selectionUtils = {\n brushInterceptors: {\n DIM_VALUE_NULL: -2,\n DIM_VALUE_TOTAL: -3,\n brushOnlyOne,\n filterValues,\n },\n};\n\nexport default selectionUtils;\n\n/**\n * Implementation details\n */\n\n/**\n * Brush interception filter func - Brush ONE single value\n * @param selectBrush\n * @param items\n * @returns {*}\n */\nfunction brushOnlyOne(brush, items) {\n const activeBrushes = brush.brushes().filter((b) => b.type === 'value');\n let toggleOff = [];\n if (activeBrushes.length) {\n activeBrushes.forEach((b) => {\n toggleOff = toggleOff.concat(\n b.brush.values().map((v) => ({\n key: b.id,\n value: v,\n }))\n );\n });\n }\n\n return toggleOff.concat(items);\n}\n\nfunction findField(chartInstance, item) {\n const splitIndex = item.key.indexOf('qHyperCube') + 'qHyperCube'.length;\n const datasetName = item.key.substr(0, splitIndex);\n const fieldName = item.key.substr(splitIndex + 1);\n return chartInstance.dataset(datasetName).field(fieldName);\n}\n\n/**\n * Brush interception filter function\n * Do not allow selections on null value\n * Do not allow selections in locked dimension\n * @param chartInstance\n * @param items\n * @returns Object { items: {Array}, itemsAreLocked: {Boolean} }\n */\nfunction filterValues(chartInstance, items) {\n const self = this;\n let meta;\n let field;\n const lockedFields = [];\n let lockedItems = 0;\n const brushItems = [];\n\n items.forEach((item) => {\n if (item.value === self.DIM_VALUE_NULL || item.value === self.DIM_VALUE_TOTAL) {\n return;\n }\n field = findField(chartInstance, item);\n\n meta = field && field.raw();\n\n if (!meta.qLocked) {\n brushItems.push({\n key: item.key,\n value: item.value,\n });\n } else {\n lockedFields.push(meta);\n lockedItems++;\n }\n });\n\n return { items: brushItems, itemsAreLocked: lockedItems > 0 && lockedItems === items.length, lockedFields };\n}\n","import extend from 'extend';\nimport Actions from './selection-actions';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nconst DEFAULT_OPTIONS = {\n data: ['elemNo'],\n contexts: ['select'],\n startOnEmptySelection: true,\n style: {\n active: {\n strokeWidth: 2,\n stroke: '#333', // To make it consistent with other charts\n },\n inactive: {\n opacity: 0.3,\n },\n },\n};\n\nconst ESCAPE = 27;\nconst ENTER = 13;\nconst SHIFT = 16;\n\n/**\n * Create a new Selections handler\n *\n * @param {Object} options\n * @param {Object} options.model The backend model for the chart\n * @param {Object} options.chartInstance Picasso chart instance\n * @param {Object} options.selectionsApi Object selectionsApi\n * @returns {Object} The selections handler instance\n */\nfunction Selections(options) {\n if (!options || !options.chartInstance || !options.selectionsApi) {\n throw Error('Selections-handler: Missing input');\n }\n const chartInstance = options.chartInstance;\n const selectionsApi = options.selectionsApi;\n const dataPaths = options.dataPaths || [''];\n const selectPaths = options.selectPaths;\n const lasso = options.lasso;\n\n let selectionContexts = [];\n const selectionsApiRestoreHelper = { propertiesToRestore: {} };\n let on = false;\n const actions = Actions(chartInstance, selectionsApi, selectPaths);\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n let lastShift = false;\n function shiftToggle(e) {\n if (e.keyCode === SHIFT && e.shiftKey !== lastShift) {\n lastShift = e.shiftKey;\n lasso.toggle();\n }\n }\n\n function confirmOrCancelSelection(event) {\n const key = event.keyCode;\n if (key === ESCAPE) {\n selectionsApi.cancel();\n } else if (key === ENTER) {\n selectionsApi.confirm();\n }\n }\n\n // If a single field in a single table is not locked, this function returns false\n function areAllFieldsLocked() {\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n return dimFields.length && dimFields.every((field) => field.raw().qLocked);\n }\n\n // If a single field in a single table is not locked, this function returns false\n function getFieldsLocked() {\n const lockedFields = [];\n let dimFields = dataPaths.map((dataPath) =>\n chartInstance\n .dataset(dataPath)\n .fields()\n .filter((field) => field.type() === 'dimension')\n );\n\n // flattern list\n dimFields = [].concat.apply([], dimFields);\n\n for (let i = 0; i < dimFields.length; i++) {\n if (dimFields[i].raw().qLocked) {\n lockedFields.push(dimFields[i].raw());\n }\n }\n return {\n fields: lockedFields,\n areAllFieldsLocked: lockedFields.length && lockedFields.length === dimFields.length,\n };\n }\n\n function isLassoDisabled() {\n return options.isLassoDisabled && options.isLassoDisabled();\n }\n\n selectionsApi.on('cleared', () => {\n selectionContexts.forEach((context) => {\n context.brush.clear();\n // Clear dependent components\n context.dependentComponents.forEach((comp) => {\n const instance = chartInstance.component(comp.id);\n if (instance) {\n instance.emit(comp.clear);\n }\n });\n });\n });\n\n // Setup a selection context\n /*\n builder - instance of chart-builder\n componentKeys = []\n options = {\n contexts: [],\n data: [],\n style: {}\n }\n */\n /**\n * Setup a selection context\n * @param {Object} options Selection context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n fn.tearDown();\n\n const result = this.setUpBrush(options);\n\n if (on) {\n register();\n }\n\n return result;\n };\n fn.setUpBrush = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n const selectionTrigger = {\n on: 'tap',\n action(e) {\n return e.ctrlKey || options.isSingleSelect ? 'set' : 'toggle';\n },\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n };\n\n const selectionConsumer = {\n context: opts.contexts[0],\n data: opts.data,\n style: opts.style,\n };\n\n const context = createContext(opts, chartInstance);\n // Do this here instead of in register to be able to catch the consumer\n context.listeners.toggle = function (items) {\n if (!on) {\n return [];\n }\n const fieldsLocked = getFieldsLocked();\n if (opts.startOnEmptySelection && items.length === 0 && fieldsLocked.areAllFieldsLocked) {\n eventUtils.showLockedFeedback(fieldsLocked.fields);\n return [];\n }\n return actions.toggleValues(items, context.brush, opts.startOnEmptySelection);\n };\n\n // Add all three to cover tap, brush range and lasso\n context.brush.intercept('toggle-values', context.listeners.toggle);\n context.brush.intercept('add-values', context.listeners.toggle);\n context.brush.intercept('remove-values', context.listeners.toggle);\n context.brush.intercept('set-values', context.listeners.toggle);\n\n context.listeners.start = function () {\n if (selectionContexts.length > 1) {\n selectionContexts.forEach((c) => {\n if (c !== context) {\n c.brush.end();\n }\n });\n\n // something may still be needed but can not call selectionsApi.clear() that would cause a infinite loop\n // if (!selectionsApi.canClear || selectionsApi.canClear()) {\n // selectionsApi.clear();\n // }\n }\n };\n\n selectionContexts.push(context);\n\n return { trigger: selectionTrigger, consume: selectionConsumer };\n };\n fn.setUpStart = function () {\n fn.tearDown();\n };\n fn.setUpDone = function () {\n if (on) {\n register();\n }\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n selectionContexts.forEach((context) => {\n context.brush.removeInterceptor('toggle-values', context.listeners.toggle);\n context.brush.removeInterceptor('add-values', context.listeners.toggle);\n context.brush.removeInterceptor('remove-values', context.listeners.toggle);\n context.brush.removeInterceptor('set-values', context.listeners.toggle);\n });\n selectionContexts = [];\n };\n\n function register() {\n selectionContexts.forEach((context) => {\n context.listeners.update = function (added, removed) {\n // On tap end, picaso will run rendering in the same frame, and if this is a heavy job then long tap end will happen before tap end finish. This can trigger the radial context menu.\n // So we prevent long tap end here.\n if (!context.sleep) {\n actions.update(added, removed, context.brush);\n }\n };\n context.brush.on('update', context.listeners.update);\n context.brush.on('start', context.listeners.start);\n });\n }\n\n function deregister() {\n selectionContexts.forEach((context) => {\n context.brush.removeListener('update', context.listeners.update);\n context.brush.removeListener('start', context.listeners.start);\n });\n }\n\n fn.pauseEngineCalls = function (id) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = true;\n }\n });\n };\n\n fn.resumeEngineCalls = function (id, run) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.sleep = false;\n if (run) {\n context.listeners.update([], []);\n }\n }\n });\n };\n\n fn.addComponent = function (id, comp) {\n selectionContexts.forEach((context) => {\n if (context.id === id) {\n context.dependentComponents.push(comp);\n }\n });\n };\n\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n document.addEventListener('keydown', shiftToggle);\n document.addEventListener('keyup', shiftToggle);\n\n const onDeactivated = () => {\n selectionContexts.forEach((context) => {\n context.brush.end();\n });\n document.removeEventListener('keyup', confirmOrCancelSelection);\n if (lasso.active()) {\n lasso.toggle();\n }\n };\n selectionsApi.on('deactivated', onDeactivated);\n selectionsApiRestoreHelper.unbindDeactivated = () => {\n selectionsApi.removeListener('deactivated', onDeactivated);\n };\n\n const onActivated = () => {\n document.addEventListener('keyup', confirmOrCancelSelection);\n };\n selectionsApi.on('activated', onActivated);\n selectionsApiRestoreHelper.unbindActivated = () => {\n selectionsApi.removeListener('activated', onActivated);\n };\n };\n fn.isOn = () => on;\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n document.removeEventListener('keydown', shiftToggle);\n document.removeEventListener('keyup', shiftToggle);\n document.removeEventListener('keyup', confirmOrCancelSelection);\n\n selectionsApiRestoreHelper.unbindActivated();\n selectionsApiRestoreHelper.unbindDeactivated();\n };\n\n fn.lassoState = function () {\n return lasso.active() && !isLassoDisabled();\n };\n fn.allFieldsLocked = function () {\n return areAllFieldsLocked();\n };\n\n return fn;\n}\n\nclass NoSelections {\n // eslint-disable-next-line class-methods-use-this\n isOn() {\n return false;\n }\n\n // eslint-disable-next-line class-methods-use-this\n on() {\n console.warn('Can not turn on selections on this object');\n }\n\n // eslint-disable-next-line class-methods-use-this\n off() {}\n}\n\nexport default {\n create(options) {\n if (!options.selectionsApi) {\n return new NoSelections();\n }\n return Selections(options);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n listeners: {},\n dependentComponents: [],\n id: options.contexts[0],\n };\n}\n","import PicassoQ from 'picasso-plugin-q/dist/picasso-q';\nimport selectionUtils from './selection-utils';\n\n// TODO: maybe add support later\nconst eventUtils = {\n showLockedFeedback: () => {},\n};\n\nfunction SelectionActions(chartInstance, selectionsApi, paths) {\n function fn() {}\n\n function update(added, removed, brush) {\n if (!selectionsApi.isActive()) {\n selectionsApi.begin(paths);\n }\n const selections = PicassoQ.qBrushHelper(brush);\n selections.forEach((s) => {\n selectionsApi.select(s);\n });\n }\n\n function toggleValues(items, brush, startOnEmptySelection) {\n const filterResult = selectionUtils.brushInterceptors.filterValues(chartInstance, items);\n const itms = filterResult.items;\n if (filterResult.itemsAreLocked) {\n eventUtils.showLockedFeedback(filterResult.lockedFields);\n }\n if (!selectionsApi.isActive() && !filterResult.itemsAreLocked && (startOnEmptySelection || itms.length > 0)) {\n selectionsApi.begin(paths);\n brush.start();\n brush.emit('update', [], []); // and activate our brush\n }\n\n return itms;\n }\n\n fn.update = update;\n fn.toggleValues = toggleValues;\n\n return fn;\n}\nexport default SelectionActions;\n","/**\n * Create a new tooltip action context\n *\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The tooltip actions handler instance\n */\nfunction TooltipActions(chartInstance, componentKey, data, context, tooltipKey) {\n let hasOpen = false;\n\n context = context || 'tooltip';\n data = data || ['self'];\n\n const brush = chartInstance.brush(context);\n\n const fn = {};\n\n // Exposed here for test stub purposes\n fn.isOpen = function () {\n return hasOpen;\n };\n\n function closeTooltip() {\n if (hasOpen) {\n const tooltip = chartInstance.component(tooltipKey);\n tooltip.emit('hide');\n }\n hasOpen = false;\n }\n\n function openTooltip(shapes) {\n hasOpen = true;\n const tooltip = chartInstance.component(tooltipKey);\n const e = {};\n const data = { nodes: shapes };\n tooltip.emit('show', e, data);\n }\n\n fn.closeTooltip = closeTooltip;\n\n /**\n * Updates the contents in tooltip. Requires an array of tooltipInfo.labelData and\n * an array of tooltipInfo.measureRows for the tooltip to display content, otherwise\n * it will show nothing. These key value mappings should be sent in from the charts.\n */\n function update() {\n const brushes = brush.brushes();\n\n // Fetches only the shapes that we are hovering over\n const shapes = chartInstance.getAffectedShapes(context, 'and', data, componentKey);\n\n if (brushes.length >= 1) {\n hasOpen = true;\n openTooltip(shapes);\n } else {\n closeTooltip();\n }\n }\n\n function toggleInterceptor(items) {\n // Remove duplicates if we have multiple dimensions to aoivd a toggle\n // ex: set(2006 ) ->2006 is on, followed by set(2006 ) ->2006 is off\n if (data.length > 1) {\n const check = {};\n const ret = [];\n items.forEach((item) => {\n if (!check[item.key]) {\n check[item.key] = {};\n }\n if (!check[item.key][item.value]) {\n check[item.key][item.value] = true;\n ret.push(item);\n }\n });\n return ret;\n }\n return items;\n }\n\n fn.update = update;\n fn.toggleInterceptor = toggleInterceptor;\n return fn;\n}\n\nexport default {\n create(...args) {\n return TooltipActions(...args);\n },\n};\n","export default {\n formatMeasureValue,\n};\n\nfunction formatMeasureValue(field, measureContent) {\n if (field.raw().isCustomFormatted) {\n return field.formatter()(measureContent.value.qText);\n }\n const value = measureContent.value.qNum !== undefined ? measureContent.value.qNum : measureContent.value.qValue;\n return field.formatter()(value);\n}\n","const MAX_VISIBLE_ITEMS = 5;\nconst OTHERS_ELEMNO = -3;\nconst NULL_ELEMNO = -2;\n\n// TODO: The function getAffectedShapes returns duplicate shapes.\n// Remove when this is fixed on picasso\nfunction filterDuplicateShapes(shapes) {\n const uniques = [];\n\n shapes.forEach((shape) => {\n if (uniques.indexOf(shape) === -1 && shape.type !== 'container') {\n uniques.push(shape);\n }\n });\n\n return uniques;\n}\n\nexport const createFilter = (filterShapes) => (shapes) =>\n filterShapes ? filterShapes(shapes) : filterDuplicateShapes(shapes);\n\nexport const createContent =\n (context) =>\n ({ h, data, style }) => {\n const content = extractContent(context, data);\n const renderSettings = {\n h,\n style,\n rtl: context.direction === 'rtl',\n translator: context.translator,\n };\n return context.renderer(renderSettings, content);\n };\n\nfunction extractContent(tooltipInfo, uniqueShapes) {\n const dataset = tooltipInfo.chartInstance.dataset(tooltipInfo.dataPath);\n\n // Create content + header\n const content = [];\n\n const numberInExcess = uniqueShapes.length - MAX_VISIBLE_ITEMS;\n const numItems = Math.min(MAX_VISIBLE_ITEMS, uniqueShapes.length);\n for (let j = 0; j < numItems; j++) {\n const shape = uniqueShapes[j];\n const localContent = {\n rows: [],\n };\n\n if (tooltipInfo.labelData) {\n const labels = [];\n const refPaths = tooltipInfo.labelData;\n let isNullValue = false;\n for (let i = 0; i < refPaths.length; i++) {\n const currentNode = shape.data[refPaths[i]].value;\n if (currentNode.qElemNo === NULL_ELEMNO || currentNode.qElemNumber === NULL_ELEMNO) {\n // The node is null\n isNullValue = true;\n break;\n }\n labels.push(shape.data[refPaths[i]].value.qText);\n }\n\n if (isNullValue) {\n return undefined;\n }\n\n localContent.header = tooltipInfo.headerResolver(labels);\n localContent.rows = tooltipInfo.measureRows\n .map((measureRow) => {\n const rowData = shape.data;\n return tooltipInfo.rowResolver(dataset.field(rowData[measureRow].source.field), rowData[measureRow], rowData);\n })\n .filter((row) => !!row);\n\n const colorByData = getColorByDimData(tooltipInfo, shape);\n if (colorByData) {\n localContent.rows.unshift(colorByData);\n }\n content.push(localContent);\n }\n }\n if (numberInExcess > 0) {\n content.numberInExcess = numberInExcess;\n }\n\n content.rowCount = content[0] ? content.length * content[0].rows.length : 0;\n return content;\n}\n\nfunction getOthersIndex(values) {\n let index = -1;\n for (let i = 0; i < values.length; i++) {\n if (values[i] === OTHERS_ELEMNO) {\n index = i;\n }\n }\n return index;\n}\n\n/**\n * Get the information of how the color by row should look like.\n * The data for color by is fetched directly from the shape and it's key value mapping called\n * colorByDim, which contains the label and the elemNo\n * @param tooltipInfo - an object containing the chart view\n * @param shape - an object representing the shape currently hovered upon\n * @returns {{label: string - legendTitle, value: (*|String) - color by value, template: string - html template}}\n */\nfunction getColorByDimData(tooltipInfo, shape) {\n const colorData = shape.data.color;\n const colorSettings = tooltipInfo.colorService?.getSettings?.();\n\n if (!colorSettings || colorSettings.type === 'color' || !colorData || !colorSettings.fieldType) {\n return undefined;\n }\n\n const ids = [];\n tooltipInfo.data.forEach((mapping) => {\n const elemNoObj = shape.data[mapping];\n if (elemNoObj) {\n ids.push(elemNoObj.value);\n }\n });\n const othersIndex = getOthersIndex(ids);\n\n const { translator } = tooltipInfo;\n const label = colorSettings.label;\n const color = shape.attrs?.fill;\n const value = othersIndex !== -1 ? translator.get('properties.dimensionLimits.others') : colorData.label;\n return { color, label, value };\n}\n","/* eslint no-underscore-dangle: 0 */\nconst TOOLTIP_CONTAINER_ID = 'dist-flow-tooltip';\nconst TOOLTIP_CONTAINER_SELECTOR = `#${TOOLTIP_CONTAINER_ID}`;\n\nfunction appendTooltipContainer() {\n if (!document.querySelector(TOOLTIP_CONTAINER_SELECTOR)) {\n const container = document.createElement('div');\n container.id = TOOLTIP_CONTAINER_ID;\n container.style.overflow = 'hidden';\n container.style.position = 'fixed';\n container.style.pointerEvents = 'none';\n container.style.left = '0px';\n container.style.top = '0px';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.zIndex = 1020;\n document.body.appendChild(container);\n }\n}\n\nfunction destroyTooltipContainer() {\n const elm = document.querySelector(TOOLTIP_CONTAINER_SELECTOR);\n if (elm && elm.parentElement && elm.childElementCount < 1) {\n elm.parentElement.removeChild(elm);\n }\n}\n\n/**\n * Base tooltip definition\n */\nexport default function tooltip({ key = 'tooltip', rtl, fontFamily, filter, content }) {\n return {\n show: true,\n key,\n type: 'tooltip',\n layout: {\n displayOrder: 3,\n },\n beforeMount() {\n appendTooltipContainer();\n },\n beforeUpdate() {\n appendTooltipContainer();\n },\n destroyed() {\n destroyTooltipContainer();\n },\n settings: {\n appendTo: () => document.querySelector(TOOLTIP_CONTAINER_SELECTOR),\n content,\n filter,\n extract: (context) => context.node,\n direction: rtl ? 'rtl' : 'ltr',\n placement: 'bounds',\n },\n style: {\n arrow: {\n color: '#404040',\n },\n content: {\n display: 'table',\n 'border-spacing': '4px',\n background: 'rgba(64, 64, 64, 0.9)',\n opacity: '1',\n fontSize: '13px',\n fontFamily,\n 'empty-cells': 'show',\n },\n cell: {\n 'max-width': '180px',\n 'word-break': 'break-word',\n 'word-wrap': 'break-word',\n 'overflow-wrap': 'break-word',\n hyphens: 'auto',\n },\n },\n };\n}\n","/** @jsx h */\nimport rtlUtils from '../../extra/rtl-util';\n\nconst { detectTextDirection: getDirection } = rtlUtils;\n\nexport default function render(settings, content) {\n const { h, style, translator, rtl } = settings;\n const result = [];\n const labelTextAlign = rtl ? 'right' : 'left';\n content.forEach((item) => {\n if (item.header) {\n const headerStyle = {\n ...style.cell,\n textAlign: labelTextAlign,\n fontWeight: 'bold',\n direction: getDirection(item.header),\n };\n result.push(\n <tr>\n <td style={headerStyle} colSpan={2}>\n {item.header}\n </td>\n </tr>\n );\n }\n item.rows.forEach((row) => {\n let valueContent = row.value;\n if (row.color) {\n const symbolStyle = {\n display: 'inline-block',\n width: 10,\n height: 10,\n 'background-color': row.color,\n margin: '0 8px',\n };\n const symbol = <div style={symbolStyle} />;\n valueContent = rtl ? [row.value, symbol] : [symbol, row.value];\n }\n const label = rtl ? [':', row.label] : [row.label, ':'];\n const labelStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(row.label) };\n const valueStyle = { ...style.cell, textAlign: rtl ? 'left' : 'right', direction: getDirection(row.value) };\n result.push(\n <tr>\n <td style={labelStyle}>{label}</td>\n <td style={valueStyle}>{valueContent}</td>\n </tr>\n );\n });\n });\n if (content.numberInExcess) {\n const moreText = translator.get('Object.ChartTooltip.NMore', content.numberInExcess);\n const moreStyle = { ...style.cell, textAlign: labelTextAlign, direction: getDirection(moreText) };\n result.push(\n <tr>\n <td style={moreStyle} colSpan={2}>\n {moreText}\n </td>\n </tr>\n );\n }\n return result;\n}\n","import extend from 'extend';\nimport TooltipAction from './tooltip-actions';\nimport formatting from '../formatting';\nimport { createFilter, createContent } from './tooltip-content';\nimport createTooltip from './tooltips-component';\nimport defaultTooltipRenderer from './tooltip-renderer';\n\nconst DEFAULT_OPTIONS = {\n tooltipKey: 'tooltip',\n data: [''],\n contexts: ['tooltip'],\n headerResolver(values) {\n return values.join(', ');\n },\n rowResolver(field, measureContent) {\n return {\n value: formatting.formatMeasureValue(field, measureContent),\n label: field.title(),\n };\n },\n direction: 'ltr',\n renderer: defaultTooltipRenderer,\n};\n\n/**\n * Create a new Tooltips handler\n *\n * @param {Object} model The backend model for the chart\n * @param {Object} chartInstance Picasso chart instance\n * @returns {Object} The selections handler instance\n */\nfunction Tooltips(chartInstance, $element, chartType) {\n if (!chartInstance) {\n throw Error('Tooltips-handler: Missing input');\n }\n\n let tooltipContexts = {};\n let on = false;\n\n // Not need for a function, so turned it into an object\n const fn = {};\n\n /**\n * Setup a tooltips context\n * @param {Object} options Tooltip context options\n * @returns {Object} The selections handler instance\n */\n fn.setUp = function (options) {\n const opts = extend(true, {}, DEFAULT_OPTIONS, options);\n\n if (!opts.componentKey) {\n throw Error('Tooltips-handler.setUp: Missing required input');\n }\n\n if (tooltipContexts[opts.contexts[0]] && on) {\n deRegContext(tooltipContexts[opts.contexts[0]]);\n }\n\n const context = createContext(opts, chartInstance);\n tooltipContexts[opts.contexts[0]] = context;\n\n if (on) {\n registerContext(context);\n }\n\n const component = createTooltip({\n key: opts.tooltipKey,\n rtl: context.direction === 'rtl',\n fontFamily: context.theme.getStyle(chartType, 'tooltip', 'fontFamily'),\n filter: createFilter(context.filterShapes),\n content: createContent(context, opts.dataPath),\n });\n\n const settings = opts.chartBuilder.getSettings();\n settings.components.push(component);\n\n return {\n trigger: {\n on: context.treatAsDesktop ? 'over' : 'tap',\n action: 'set',\n contexts: opts.contexts,\n data: opts.data,\n globalPropagation: 'stop',\n },\n consume: opts.contexts.map((c) => ({ context: c })),\n component,\n };\n };\n\n fn.tearDown = function () {\n if (on) {\n deregister();\n }\n tooltipContexts = [];\n };\n\n function register() {\n Object.keys(tooltipContexts).forEach((key) => {\n registerContext(tooltipContexts[key]);\n });\n }\n\n function registerContext(context) {\n context.listeners.update = function (added, removed) {\n context.action.update(added, removed, context);\n };\n context.listeners.end = function () {\n context.action.closeTooltip();\n };\n\n context.brush.on(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.on('end', context.listeners.end);\n // Intecept the set-values call to avoid a toggle in the second dimension.\n context.brush.intercept('set-values', context.action.toggleInterceptor);\n }\n\n function deregister() {\n Object.keys(tooltipContexts).forEach((key) => {\n deRegContext(tooltipContexts[key]);\n });\n }\n\n function deRegContext(context) {\n context.brush.removeListener(context.treatAsDesktop ? 'update' : 'set-values', context.listeners.update);\n context.brush.removeListener('end', context.listeners.end);\n context.brush.removeInterceptor('set-values', context.action.toggleInterceptor);\n }\n\n function closeTooltip() {\n Object.keys(tooltipContexts).forEach((key) => {\n tooltipContexts[key].action.closeTooltip();\n });\n }\n\n function mouseLeave() {\n closeTooltip();\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (const prop in tooltipContexts) {\n tooltipContexts[prop].brush.clear();\n }\n }\n\n fn.closeTooltip = closeTooltip;\n\n fn.isOn = () => on;\n fn.on = function () {\n if (on) {\n return;\n }\n on = true;\n\n register();\n\n if ($element) {\n $element.on('mouseleave', mouseLeave);\n }\n };\n\n fn.off = function () {\n if (!on) {\n return;\n }\n on = false;\n deregister();\n\n if ($element) {\n $element.off('mouseleave', mouseLeave);\n }\n closeTooltip();\n };\n\n return fn;\n}\n\nexport default {\n create(chartInstance, $element, chartType) {\n return Tooltips(chartInstance, $element, chartType);\n },\n};\n\nfunction createContext(options, chartInstance) {\n return {\n brush: chartInstance.brush(options.contexts[0]),\n action: TooltipAction.create(\n chartInstance,\n options.componentKey,\n options.data,\n options.contexts[0],\n options.tooltipKey\n ),\n listeners: {},\n chartInstance,\n dataPath: options.dataPath,\n renderer: options.renderer,\n data: options.data,\n headerResolver: options.headerResolver,\n rowResolver: options.rowResolver,\n colorService: options.colorService,\n attrDimPath: options.attrDimPath,\n measureRows: options.measureRows,\n labelData: options.labelData,\n filterShapes: options.filterShapes,\n\n direction: options.environment.options.direction,\n theme: options.environment.theme,\n translator: options.environment.translator,\n treatAsDesktop: options.environment.deviceType !== 'touch',\n };\n}\n","import hashFromString from '../../../extra/hash-from-string';\n\nconst hash = {\n generateHash,\n updateHash,\n};\n\nexport default hash;\n\n/**\n * Implementation details\n */\n\nfunction generateHash(hashData) {\n return hashFromString(JSON.stringify(hashData));\n}\n\nfunction updateHash(properties, hashData) {\n if (!properties.qUndoExclude) {\n properties.qUndoExclude = {};\n }\n\n properties.qUndoExclude.hashCode = hash.generateHash(hashData);\n}\n","/**\n * Generate a 32 bit integer hash code from a string\n */\nexport default function hashFromString(str) {\n let hash = 0;\n\n if (!str || !str.length) {\n return hash;\n }\n\n for (let i = 0; i < str.length; i++) {\n const chr = str.charCodeAt(i);\n /* eslint-disable no-bitwise */\n hash = (hash << 5) - hash + chr;\n hash &= hash;\n /* eslint-enable no-bitwise */\n }\n return hash;\n}\n","import { getValue } from 'qlik-chart-modules';\n\nconst hashBuilder = {\n getDefaultHashDataForHyperCube,\n};\n\nexport default hashBuilder;\n\n/**\n * Implementation details\n */\n\nfunction getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app) {\n return getMeasureExpressions(hyperCubeDef, app).then((measureExpressions) => ({\n drillLevel: getDrillIndices(hyperCube),\n dimensionExpressions: getDimensionExpressions(hyperCube),\n measureExpressions,\n }));\n}\n\nfunction getMeasureExpressions(hyperCubeDef, app) {\n const dfds = [];\n\n if (!hyperCubeDef.qMeasures) {\n return Promise.resolve(dfds);\n }\n\n hyperCubeDef.qMeasures.forEach((measure) => {\n if (measure.qLibraryId) {\n dfds.push(getMeasureDataFromLibraryItem(measure.qLibraryId, app));\n } else {\n dfds.push(Promise.resolve());\n }\n });\n\n return Promise.all(dfds);\n}\n\nfunction getMeasureDataFromLibraryItem(libraryId, app) {\n return app.getMeasure(libraryId).then((item) => item.getProperties().then((props) => props.qMeasure.qDef));\n}\n\nfunction getDimensionExpressions(hyperCube) {\n return hyperCube.qDimensionInfo.map((dimensionInfo) => dimensionInfo.qGroupFieldDefs);\n}\n\nfunction getDrillIndices(hyperCube) {\n const dimensions = getDimensions(hyperCube);\n return dimensions.map((dim) => dim.qGroupPos);\n}\n\nfunction getDimensions(hyperCube) {\n return getValue(hyperCube, 'qDimensionInfo', []);\n}\n","/* eslint-disable no-restricted-syntax */\nimport originalExtend from 'extend';\n\nconst JSONPatch = {};\n\nconst extend = originalExtend.bind(null, true);\nfunction isObject(v) {\n return v != null && !Array.isArray(v) && typeof v === 'object';\n}\nconst isArray = Array.isArray;\n\nconst isUndef = function (v) {\n return typeof v === 'undefined';\n};\n\nconst isFunction = function (v) {\n return typeof v === 'function';\n};\n\n/**\n * Generate an exact duplicate (with no references) of a specific value.\n *\n * @private\n * @param {Object} The value to duplicate\n * @returns {Object} a unique, duplicated value\n */\nfunction generateValue(val) {\n if (val) {\n val = extend({}, { val }).val;\n }\n return val;\n}\n\n/**\n * An additional type checker used to determine if the property is of internal\n * use or not a type that can be translated into JSON (like functions).\n *\n * @private\n * @param {Object} obj The object which has the property to check\n * @param {String} The property name to check\n * @returns {Boolean} Whether the property is deemed special or not\n */\nfunction isSpecialProperty(obj, key) {\n return isFunction(obj[key]) || key.substring(0, 2) === '$$' || key.substring(0, 1) === '_';\n}\n\n/**\n * Finds the parent object from a JSON-Pointer (\"/foo/bar/baz\" = \"bar\" is \"baz\" parent),\n * also creates the object structure needed.\n *\n * @private\n * @param {Object} data The root object to traverse through\n * @param {String} The JSON-Pointer string to use when traversing\n * @returns {Object} The parent object\n */\nfunction getParent(data, str) {\n const seperator = '/';\n const parts = str.substring(1).split(seperator).slice(0, -1);\n let numPart;\n\n parts.forEach((part, i) => {\n if (i === parts.length) {\n return;\n }\n numPart = +part;\n data[numPart || part] = isUndef(data[numPart || part]) ? (!Number.isNaN(+numPart) ? [] : {}) : data[part];\n data = data[numPart || part];\n });\n\n return data;\n}\n\n/**\n * Cleans an object of all its properties, unless they're deemed special or\n * cannot be removed by configuration.\n *\n * @private\n * @param {Object} obj The object to clean\n */\nfunction emptyObject(obj) {\n Object.keys(obj).forEach((key) => {\n const config = Object.getOwnPropertyDescriptor(obj, key);\n\n if (config.configurable && !isSpecialProperty(obj, key)) {\n delete obj[key];\n }\n });\n}\n\n/**\n * Compare an object with another, could be object, array, number, string, bool.\n *\n * @param {Object} a The first object to compare\n * @param {Object} b The second object to compare\n * @returns {Boolean} Whether the objects are identical\n */\nfunction compare(a, b) {\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key of Object.keys(a)) {\n if (!compare(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (!compare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n}\n\n/**\n * Generates patches by comparing two arrays.\n *\n * @private\n * @param {Array} oldA The old (original) array, which will be patched\n * @param {Array} newA The new array, which will be used to compare against\n * @returns {Array} An array of patches (if any)\n */\nfunction patchArray(original, newA, basePath) {\n let patches = [];\n const oldA = original.slice();\n let i;\n let l;\n let tmpIdx = -1;\n\n function findIndex(a, id, idx) {\n if (a[idx] && isUndef(a[idx].qInfo)) {\n return null;\n }\n if (a[idx] && a[idx].qInfo.qId === id) {\n // shortcut if identical\n return idx;\n }\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] && a[i].qInfo.qId === id) {\n return i;\n }\n }\n return -1;\n }\n\n if (compare(newA, oldA)) {\n // array is unchanged\n return patches;\n }\n\n if (newA[0] === null || (!isUndef(newA[0]) && isUndef(newA[0].qInfo))) {\n // we cannot create patches without unique identifiers, replace array...\n patches.push({\n op: 'replace',\n path: basePath,\n value: newA,\n });\n return patches;\n }\n\n for (i = oldA.length - 1; i >= 0; --i) {\n tmpIdx = findIndex(newA, oldA[i] && oldA[i].qInfo && oldA[i].qInfo.qId, i);\n if (tmpIdx === -1) {\n patches.push({\n op: 'remove',\n path: `${basePath}/${i}`,\n });\n oldA.splice(i, 1);\n } else {\n patches = patches.concat(JSONPatch.generate(oldA[i], newA[tmpIdx], `${basePath}/${i}`));\n }\n }\n\n for (i = 0, l = newA.length; i < l; ++i) {\n tmpIdx = findIndex(oldA, newA[i] && newA[i].qInfo && newA[i].qInfo.qId);\n if (tmpIdx === -1) {\n patches.push({\n op: 'add',\n path: `${basePath}/${i}`,\n value: newA[i],\n });\n oldA.splice(i, 0, newA[i]);\n } else if (tmpIdx !== i) {\n patches.push({\n op: 'move',\n path: `${basePath}/${i}`,\n from: `${basePath}/${tmpIdx}`,\n });\n oldA.splice(i, 0, oldA.splice(tmpIdx, 1)[0]);\n }\n }\n return patches;\n}\n\n/**\n * Generate an array of JSON-Patch:es following the JSON-Patch Specification Draft.\n *\n * See [specification draft](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-10)\n *\n * Does NOT currently generate patches for arrays (will replace them)\n *\n * @param {Object} original The object to patch to\n * @param {Object} newData The object to patch from\n * @param {String} [basePath] The base path to use when generating the paths for the patches (normally not used)\n * @returns {Array} An array of patches\n */\nJSONPatch.generate = function (original, newData, basePath) {\n basePath = basePath || '';\n let patches = [];\n\n Object.keys(newData).forEach((key) => {\n const val = generateValue(newData[key]);\n const oldVal = original[key];\n const tmpPath = `${basePath}/${key}`;\n\n if (compare(val, oldVal) || isSpecialProperty(newData, key)) {\n return;\n }\n if (isUndef(oldVal)) {\n // property does not previously exist\n patches.push({\n op: 'add',\n path: tmpPath,\n value: val,\n });\n } else if (isObject(val) && isObject(oldVal)) {\n // we need to generate sub-patches for this, since it already exist\n patches = patches.concat(JSONPatch.generate(oldVal, val, tmpPath));\n } else if (isArray(val) && isArray(oldVal)) {\n patches = patches.concat(patchArray(oldVal, val, tmpPath));\n } else {\n // it's a simple property (bool, string, number)\n patches.push({\n op: 'replace',\n path: `${basePath}/${key}`,\n value: val,\n });\n }\n });\n\n Object.keys(original).forEach((key) => {\n if (isUndef(newData[key]) && !isSpecialProperty(original, key)) {\n // this property does not exist anymore\n patches.push({\n op: 'remove',\n path: `${basePath}/${key}`,\n });\n }\n });\n\n return patches;\n};\n\n/**\n * Apply a list of patches to an object.\n *\n * @param {Object} original The object to patch\n * @param {Array} patches The list of patches to apply\n */\nJSONPatch.apply = function (original, patches) {\n patches.forEach((patch) => {\n const parent = getParent(original, patch.path);\n let key = patch.path.split('/').splice(-1)[0];\n const target = key && Number.isNaN(+key) ? parent[key] : parent[+key] || parent;\n const from = patch.from ? patch.from.split('/').splice(-1)[0] : null;\n\n if (patch.op === 'add' || patch.op === 'replace') {\n if (isArray(parent)) {\n // trust indexes from patches, so don't replace the index if it's an add\n if (key === '-') {\n key = parent.length;\n }\n parent.splice(+key, patch.op === 'add' ? 0 : 1, patch.value);\n } else if (isArray(target) && isArray(patch.value)) {\n const newValues = patch.value.slice();\n // keep array reference if possible...\n target.length = 0;\n target.push.apply(target, newValues);\n } else if (isObject(target) && isObject(patch.value)) {\n // keep object reference if possible...\n emptyObject(target);\n extend(target, patch.value);\n } else {\n // simple value\n parent[key] = patch.value;\n }\n } else if (patch.op === 'move') {\n const oldParent = getParent(original, patch.from);\n if (isArray(parent)) {\n parent.splice(+key, 0, oldParent.splice(+from, 1)[0]);\n } else {\n parent[key] = oldParent[from];\n delete oldParent[from];\n }\n } else if (patch.op === 'remove') {\n if (isArray(parent)) {\n parent.splice(+key, 1);\n } else {\n delete parent[key];\n }\n }\n });\n};\n\n/**\n * Deep clone an object.\n *\n * @param {Object} obj The object to clone\n * @returns {Object} A new object identical to the `obj`\n */\nJSONPatch.clone = function (obj) {\n return extend({}, obj);\n};\n\n/**\n * Creates a JSON-patch.\n *\n * @param {String} op The operation of the patch. Available values: \"add\", \"remove\", \"move\"\n * @param {Object} [val] The value to set the `path` to. If `op` is `move`, `val` is the \"from JSON-path\" path\n * @param {String} path The JSON-path for the property to change (e.g. \"/qHyperCubeDef/columnOrder\")\n * @returns {Object} A patch following the JSON-patch specification\n */\nJSONPatch.createPatch = function (op, val, path) {\n const patch = {\n op: op.toLowerCase(),\n path,\n };\n if (patch.op === 'move') {\n patch.from = val;\n } else if (typeof val !== 'undefined') {\n patch.value = val;\n }\n return patch;\n};\n\n/**\n * Apply the differences of two objects (keeping references if possible).\n * Identical to running `JSONPatch.apply(original, JSONPatch.generate(original, newData));`\n *\n * @param {Object} original The object to update/patch\n * @param {Object} newData the object to diff against\n *\n * @example\n * var obj1 = { foo: [1,2,3], bar: { baz: true, qux: 1 } };\n * var obj2 = { foo: [4,5,6], bar: { baz: false } };\n * JSONPatch.updateObject(obj1, obj2);\n * // => { foo: [4,5,6], bar: { baz: false } };\n */\nJSONPatch.updateObject = function (original, newData) {\n if (!Object.keys(original).length) {\n extend(original, newData);\n return;\n }\n JSONPatch.apply(original, JSONPatch.generate(original, newData));\n};\n\nexport default JSONPatch;\n","import extend from 'extend';\nimport JSONPatch from './json-patch';\n\nclass SoftPropertyHandler {\n constructor(model) {\n this._model = model;\n }\n\n setModel(model) {\n this._model = model;\n }\n\n saveSoftProperties(prevEffectiveProperties, effectiveProperties) {\n if (!this._model) {\n return Promise.resolve(false);\n }\n\n let patches = JSONPatch.generate(prevEffectiveProperties, effectiveProperties);\n extend(true, prevEffectiveProperties, effectiveProperties);\n\n if (patches && patches.length) {\n patches = patches.map((p) => ({\n qOp: p.op,\n qValue: JSON.stringify(p.value),\n qPath: p.path,\n }));\n\n return this._model.applyPatches(patches, true).then(() => true);\n }\n return Promise.resolve(false);\n }\n\n async mergeSoftPatches() {\n if (!this._model) {\n return;\n }\n\n const propertiesPromise = this._model.getProperties();\n const effectivePromise = this._model.getEffectiveProperties();\n\n const properties = await propertiesPromise;\n const effective = await effectivePromise;\n\n if (properties.qExtendsId) {\n return;\n }\n const patches = JSONPatch.generate(properties, effective);\n JSONPatch.apply(properties, patches);\n\n const self = this;\n self._model.setProperties(properties).then(() => {\n self._model.clearSoftPatches();\n });\n }\n}\n\nexport default SoftPropertyHandler;\n","export default {\n canModifyHardProperties,\n};\n\nfunction canModifyHardProperties(layout) {\n if (layout.qHasSoftPatches || layout.qExtendsId) {\n return false;\n }\n if (layout.permissions) {\n return layout.permissions.update;\n }\n return layout.qMeta.privileges.indexOf('update') !== -1;\n}\n","import SoftPropertyHandler from '../../../extra/soft-property-handler';\nimport hardPropertiesChecker from '../../../extra/hard-properties-checker';\n\nexport default {\n saveDerivedProperties,\n};\n\n/**\n * Implementation details\n */\n\nfunction saveDerivedProperties(model, layout, properties, prevProperties) {\n // Can't set new properties on a master item (SUI-1363)\n\n if (hardPropertiesChecker.canModifyHardProperties(layout)) {\n return model.setProperties(properties);\n }\n\n const softPropertyHandler = new SoftPropertyHandler(model);\n return softPropertyHandler.saveSoftProperties(prevProperties, properties);\n}\n","export default {\n validate,\n};\n\n/**\n * Implementation details\n */\n\nfunction validate(settings) {\n if (\n !settings ||\n !settings.layout ||\n !settings.properties ||\n !settings.model ||\n !settings.hashData ||\n !settings.generateDerivedProperties\n ) {\n throw Error('Derived-properties: Missing input');\n }\n}\n","import extend from 'extend';\nimport Hash from './hash/hash';\nimport HashBuilder from './hash/hash-builder';\nimport Save from './save/save';\nimport InputValidator from './input-validator/input-validator';\n\nfunction DerivedProperties() {\n this._generationInProgress = false;\n}\n\nDerivedProperties.prototype.isDerivedUpToDate = isDerivedUpToDate;\nDerivedProperties.prototype.updateDerivedProperties = updateDerivedProperties;\nDerivedProperties.prototype.addDefaultHyperCubeHash = addDefaultHyperCubeHash;\n\nexport default DerivedProperties;\n\nfunction isDerivedUpToDate(settings) {\n InputValidator.validate(settings);\n\n const properties = settings.properties;\n const hash = Hash.generateHash(settings.hashData);\n\n if (!properties.qUndoExclude || properties.qUndoExclude.hashCode !== hash) {\n return false;\n }\n\n return true;\n}\n\n// Returns a boolean flag if properties actually are being updated or not\nfunction updateDerivedProperties(settings) {\n InputValidator.validate(settings);\n\n if (this._generationInProgress) {\n return Promise.resolve(true);\n }\n\n if (isDerivedUpToDate(settings)) {\n const layoutIsUpdated =\n settings.layout.qUndoExclude &&\n settings.layout.qUndoExclude.hashCode === settings.properties.qUndoExclude.hashCode;\n return Promise.resolve(!layoutIsUpdated);\n }\n\n const self = this;\n const model = settings.model;\n const layout = settings.layout;\n const properties = extend(true, {}, settings.properties);\n const prevProperties = extend(true, {}, properties);\n\n this._generationInProgress = true;\n\n Hash.updateHash(properties, settings.hashData);\n\n return settings.generateDerivedProperties(layout, properties).then(() =>\n Save.saveDerivedProperties(model, layout, properties, prevProperties).then(() => {\n self._generationInProgress = false;\n\n return Promise.resolve(true);\n })\n );\n}\n\nfunction addDefaultHyperCubeHash(hyperCubeDef, hyperCube, app, settings) {\n return HashBuilder.getDefaultHashDataForHyperCube(hyperCubeDef, hyperCube, app).then((defaultSettings) =>\n extend(true, settings, defaultSettings)\n );\n}\n","const ExpressionWrapper = {\n wrapExpression,\n};\n\nfunction wrapExpression(expression) {\n const result = expression.replace(/\\]/g, ']]');\n\n return result ? `[${result}]` : '';\n}\n\nexport default ExpressionWrapper;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable guard-for-in */\nconst ExpressionReplacer = {\n replaceExpressionTokens,\n createRegExp,\n};\n\nfunction replaceExpressionTokens(expression, tokenMappings, tokenIdentifiers) {\n const identifiers = {\n start: (tokenIdentifiers && tokenIdentifiers.start) || '{{',\n end: (tokenIdentifiers && tokenIdentifiers.end) || '}}',\n };\n\n let returnExpression = expression;\n let tokenExpression;\n let tokenString;\n\n for (const key in tokenMappings) {\n tokenExpression = tokenMappings[key];\n tokenString = identifiers.start + key + identifiers.end;\n\n returnExpression = returnExpression.replace(createRegExp(tokenString, true), tokenExpression);\n }\n\n return returnExpression;\n}\n\nfunction createRegExp(string, isGlobal, isGrouped) {\n const escapedString = escapeRegExp(string);\n const regexpString = isGrouped ? `(${escapedString})` : escapedString;\n return isGlobal ? new RegExp(regexpString, 'g') : new RegExp(regexpString);\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\n\nexport default ExpressionReplacer;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport ExpressionWrapper from './expression-wrapper';\nimport ExpressionReplacer from './expression-replacer';\n\nconst ExpressionGenerator = {\n generateExpression,\n};\n\n// builds up mappings for the dimensions and measures and wraps the dimensions\n// mappings = { mapping }\n// mapping = {\n// \tvalue: (string) the expression value to replace the key with,\n// \twrap: (boolean) if the expression should be cleaned and wrapped or not (usually if field)\n// variations: (Array) array of strings with variations on the same key that if the value is empty should also be empty\nfunction generateExpression(template, mappings) {\n const explicitMappings = {};\n\n if (mappings) {\n for (const key in mappings) {\n const mapping = mappings[key];\n\n const expression = mapping.wrap ? ExpressionWrapper.wrapExpression(mapping.value) : mapping.value;\n\n explicitMappings[key] = expression;\n\n const variations = mapping.variations || [];\n\n variations.forEach((variation) => {\n const variationExpressions = assembleVariation(variation, expression, key);\n explicitMappings[variation] = variationExpressions;\n });\n }\n }\n\n return ExpressionReplacer.replaceExpressionTokens(template, explicitMappings);\n}\n\n// Internal functions\n\nfunction assembleVariation(variation, value, key) {\n if (value === '') {\n return '';\n }\n\n const regExp = ExpressionReplacer.createRegExp(key, true, true);\n const stringArray = variation.split(regExp);\n let expression = '';\n\n stringArray.forEach((substring) => {\n expression += substring !== key ? substring : value;\n });\n\n return expression;\n}\n\nexport default ExpressionGenerator;\n","import extend from 'extend';\nimport ExpressionGenerator from '../expression-generator/expression-generator';\n\nconst HyperCubeGenerator = {\n generateHyperCubeDef,\n getAllHyperCubeExpressions,\n};\n\n// builds up a hyper cube using a hyper cube def and the hyper cube result, needs the app as well\n// also supports additional mappings that allows generation of more advanced expressions\nfunction generateHyperCubeDef(template, hyperCubeDef, hyperCube, app, mappings) {\n // hyper cube knows about {{Dim[n]}} {{Mea[n]}} mappings.\n return getKnownMappings(template.dimensions.concat(template.measures), hyperCubeDef, hyperCube, app).then(\n (knownMappings) => {\n const allMappings = extend({}, knownMappings, mappings);\n\n const generatedHyperCubeDef = extend(true, {}, hyperCubeDef);\n // clean the dimensions and measures\n generatedHyperCubeDef.qDimensions = [];\n generatedHyperCubeDef.qMeasures = [];\n\n template.dimensions.forEach((dimensionTemplate) => {\n generatedHyperCubeDef.qDimensions.push({\n qDef: {\n qFieldDefs: [`=${ExpressionGenerator.generateExpression(dimensionTemplate, allMappings)}`],\n },\n });\n });\n\n template.measures.forEach((measureTemplate) => {\n generatedHyperCubeDef.qMeasures.push({\n qDef: {\n qDef: ExpressionGenerator.generateExpression(measureTemplate, allMappings),\n },\n });\n });\n\n return generatedHyperCubeDef;\n }\n );\n}\n\nasync function getAllHyperCubeExpressions(hyperCubeDef, hyperCube, app) {\n const dimensions = hyperCubeDef.qDimensions.map((dimension, index) =>\n getExpressionFromDimension(dimension, app, index, hyperCube)\n );\n const measures = hyperCubeDef.qMeasures.map((measure) => getExpressionFromMeasure(measure, app));\n\n return {\n dimensions: await Promise.all(dimensions),\n measures: await Promise.all(measures),\n };\n}\n\nfunction getExpressionFromDimension(dimension, app, index, hyperCube) {\n if (dimension.qLibraryId) {\n return getExpressionFromLibraryItem(dimension.qLibraryId, 'dimension', app, index, hyperCube);\n }\n const drillIndex = hyperCube.qDimensionInfo[index].qGroupPos;\n return Promise.resolve(dimension.qDef.qFieldDefs[drillIndex]);\n}\n\nfunction getExpressionFromMeasure(measure, app) {\n if (measure.qLibraryId) {\n return getExpressionFromLibraryItem(measure.qLibraryId, 'measure', app);\n }\n return Promise.resolve(measure.qDef.qDef);\n}\n\n// Internal functions\n\nfunction getExpressionFromLibraryItem(id, type, app, index, hyperCube) {\n if (!app) {\n console.warn('No app provided, returning library id');\n return id;\n }\n\n const getFn = type === 'dimension' ? 'getDimension' : 'getMeasure';\n\n return app[getFn](id).then((item) =>\n item.getProperties().then((props) => {\n if (type === 'dimension') {\n return props.qDim.qFieldDefs[hyperCube.qDimensionInfo[index].qGroupPos];\n }\n return props.qMeasure.qDef;\n })\n );\n}\n\n// identifies {{Dim[x]}} {{Mea[x]}} mappings and returns the distinct instances of them\nfunction getKnownMappings(mappings, hyperCubeDef, hyperCube, app) {\n const knownMappings = {};\n let dimensionIndices;\n let measureIndices;\n const dfds = [];\n\n mappings.forEach((mapping) => {\n dimensionIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Dim')));\n dimensionIndices.forEach((index) => {\n dfds.push(\n getExpressionFromDimension(hyperCubeDef.qDimensions[index], app, index, hyperCube).then((expression) => {\n knownMappings[`Dim[${index}]`] = { value: expression, wrap: true };\n })\n );\n });\n\n measureIndices = spliceIdentifiedMatches(mapping.match(getMappingRegExp('Mea')));\n measureIndices.forEach((index) => {\n dfds.push(\n getExpressionFromMeasure(hyperCubeDef.qMeasures[index], app).then((expression) => {\n knownMappings[`Mea[${index}]`] = { value: expression };\n })\n );\n });\n });\n\n let returnPromise;\n if (dfds.length) {\n returnPromise = Promise.all(dfds).then(() => Promise.resolve(knownMappings));\n } else {\n returnPromise = Promise.resolve(knownMappings);\n }\n return returnPromise;\n}\n\nfunction getMappingRegExp(string) {\n return new RegExp(`\\\\{\\\\{${string}\\\\[\\\\d\\\\]\\\\}\\\\}`, 'g');\n}\n\nfunction spliceIdentifiedMatches(matches) {\n if (!matches) {\n return [];\n }\n return matches.map((match) => match.substr(6, 1));\n}\n\nexport default HyperCubeGenerator;\n","export default function isNumeric(v) {\n return !Number.isNaN(parseFloat(v)) && Number.isFinite(+v);\n}\n","export default function isInteger(v) {\n return !Number.isNaN(parseInt(v, 10)) && parseFloat(v, 10) === parseInt(v, 10);\n}\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport BINNING_DEFAULTS from './binning-defaults';\n\n/**\n * Implementation details\n */\n\nfunction getBinMode(layout) {\n return getValue(layout, 'bins.binMode', BINNING_DEFAULTS.BIN_MODE);\n}\n\nfunction getBinSize(layout) {\n return getValue(layout, 'bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinSize(layout) {\n return getValue(layout, 'qUndoExclude.bins.binSize', BINNING_DEFAULTS.BIN_SIZE);\n}\n\nfunction getDerivedBinOffset(layout) {\n return getValue(layout, 'qUndoExclude.bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction getDerivedBinCount(layout) {\n const binCount = getValue(layout, 'qUndoExclude.bins.binCount', BINNING_DEFAULTS.BIN_COUNT);\n\n if (!isNumeric(binCount)) {\n return BINNING_DEFAULTS.BIN_COUNT;\n }\n\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getBinCount(layout) {\n return getValue(layout, 'bins.binCount', undefined);\n}\n\nfunction getBinOffset(layout) {\n return getValue(layout, 'bins.offset', BINNING_DEFAULTS.OFFSET);\n}\n\nfunction isAutoBin(layout) {\n return getValue(layout, 'bins.auto', BINNING_DEFAULTS.AUTO);\n}\n\nfunction isCountDistinct(layout) {\n return getValue(layout, 'bins.countDistinct', BINNING_DEFAULTS.COUNT_DISTINCT);\n}\n\nfunction isEmpty(v) {\n return v === undefined || v === null || v === '';\n}\n\nconst histogramUtils = {\n getBinSize,\n getDerivedBinSize,\n getDerivedBinOffset,\n getDerivedBinCount,\n getBinCount,\n getBinOffset,\n isAutoBin,\n isCountDistinct,\n getBinMode,\n isEmpty,\n};\n\nexport default histogramUtils;\n","import isInteger from '@qlik/common/extra/is-integer';\nimport isNumeric from '@qlik/common/extra/is-numeric';\n\nconst LOG10 = Math.log(10);\nconst EPSILON = 1e-9;\nconst NICE_NUMBERS1 = [1, 1.5, 2, 3, 4, 5, 6, 10];\nconst NICE_NUMBERS2 = [1, 2, 4, 5, 6, 8, 10];\nconst LOOP_CONTROL_NUMBERS = [2, 4, 5, 10];\n\n/**\n * Implementation details\n */\n\nfunction validateInput(min, max, binCount) {\n if (!isNumeric(min) || !isNumeric(max) || !isNumeric(binCount)) {\n throw Error('binSizeCalculator: One of the inputs is NOT numeric');\n }\n\n if (min > max) {\n throw Error(\"binSizeCalculator: The 'min' parameter is bigger than the 'max' parameter\");\n }\n}\n\nfunction getBinCount(binCount) {\n // The smallest number of bins possible is 1\n if (binCount < 1) {\n return 1;\n }\n\n // The numbers of bins needs to be an integer, round it with Math.ceil\n if (!isInteger(binCount)) {\n return Math.ceil(binCount);\n }\n\n return binCount;\n}\n\nfunction getGoodNumber(value, niceNumbers) {\n if (value === 0) {\n return 0;\n }\n let roundedFraction;\n const magnitude = Math.floor(Math.log(Math.abs(value)) / LOG10);\n const fraction = value / 10 ** magnitude;\n for (let i = 0; i < niceNumbers.length; i++) {\n if (fraction <= niceNumbers[i]) {\n roundedFraction = niceNumbers[i];\n break;\n }\n }\n\n // Fix floating error\n return (\n (magnitude >= 0 ? roundedFraction * 10 ** magnitude : roundedFraction / 10 ** -magnitude) * (value < 0 ? -1 : 1)\n );\n}\n\nfunction calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) {\n return Math.floor(Math.abs(min - newMin) / binSize) + Math.floor(Math.abs(newMax - max) / binSize);\n}\n\nfunction calculateBinSize(min, max, nbrOfBins) {\n let newMin;\n let newMax;\n let range;\n let binSize;\n let niceBinSize;\n let magnitude;\n let f;\n let k;\n let i = -1;\n let delta;\n let n;\n let loop;\n let t;\n let niceNumbers = NICE_NUMBERS1;\n nbrOfBins = Math.max(1, nbrOfBins);\n if (max === min) {\n if (max === 0) {\n binSize = 1;\n if (nbrOfBins === 1) {\n return {\n min,\n max,\n nbrOfBins,\n rawBinSize: range / nbrOfBins,\n offset: -0.5, // new min\n newMax: 0.5,\n binSize: 1,\n numEmptyBins: 0,\n };\n }\n } else if (nbrOfBins === 1) {\n binSize = max + EPSILON;\n niceNumbers = NICE_NUMBERS2;\n } else {\n binSize = Math.abs(max / nbrOfBins);\n }\n } else {\n max += EPSILON;\n range = max - min;\n binSize = range / nbrOfBins;\n }\n do {\n k = 1;\n loop = 0;\n if (i >= 0) {\n delta = 1 / LOOP_CONTROL_NUMBERS[i];\n n = 1;\n niceNumbers = [];\n while (n <= 10) {\n niceNumbers.push(Math.round(n * 1000) / 1000);\n n += delta;\n }\n }\n niceBinSize = binSize;\n do {\n niceBinSize = getGoodNumber(niceBinSize * k, niceNumbers);\n magnitude = Math.floor(Math.log(niceBinSize) / LOG10);\n f = 10 ** magnitude;\n if (max === min) {\n newMax = (Math.ceil(max / niceBinSize) + Math.floor(nbrOfBins / 2)) * niceBinSize;\n } else {\n newMax = Math.ceil(max / niceBinSize) * niceBinSize;\n }\n newMin = newMax - nbrOfBins * niceBinSize;\n let j = 0;\n t = f;\n while ((newMin > min || newMax < max) && j < LOOP_CONTROL_NUMBERS.length) {\n newMin = Math.floor(min / t) * t;\n newMax = newMin + nbrOfBins * niceBinSize;\n t = f / LOOP_CONTROL_NUMBERS[j++];\n }\n\n // Fix floating error\n if (magnitude < 1) {\n f = 10 ** (Math.abs(magnitude) + 1);\n newMax = Math.round(newMax * f) / f;\n newMin = Math.round(newMin * f) / f;\n }\n k = 1.1;\n loop++;\n } while ((newMin > min || newMax < max) && loop < 10); // Bin size should be increased to cover the min-max range\n i++;\n } while (calculateNumEmptyBins(min, max, nbrOfBins, binSize, newMin, newMax) > 0 && i < LOOP_CONTROL_NUMBERS.length);\n return {\n binCount: nbrOfBins,\n offset: newMin, // new min\n binSize: niceBinSize,\n };\n}\n\nfunction preCalculateBinSize(min, max, binCount) {\n // General input validation\n validateInput(min, max, binCount);\n\n // Makes sure binCount is an integer bigger than 0\n binCount = getBinCount(binCount);\n\n return calculateBinSize(min, max, binCount);\n}\n\nconst binSizeCalculator = {\n calculateBinSize: preCalculateBinSize,\n};\n\nexport default binSizeCalculator;\n","import { getValue } from 'qlik-chart-modules';\nimport isNumeric from '@qlik/common/extra/is-numeric';\nimport histogramUtils from '../histogram-utils';\nimport binSizeCalculator from './bin-size-calculator';\n\n/**\n * Implementation details\n */\n\nfunction getMappings(values) {\n const mappings = {};\n\n mappings.BinSize = {\n value: `,${values.binSize}`,\n };\n\n mappings.Label = {\n value: values.binOffset === 0 ? '' : \",'x'\",\n };\n\n mappings.Offset = {\n value: values.binOffset === 0 ? '' : `,${values.binOffset}`,\n };\n\n mappings.Distinct = {\n value: values.distinct ? 'Distinct ' : '',\n };\n\n return mappings;\n}\n\nfunction getBinInfo(layout) {\n const dimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n let qMin = dimInfo.qMin;\n let qMax = dimInfo.qMax;\n\n qMin = isNumeric(qMin) ? qMin : 1;\n qMax = isNumeric(qMax) ? qMax : 1;\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n return binSizeCalculator.calculateBinSize(qMin, qMax, binCount);\n}\n\nfunction getMappingValues(layout) {\n const auto = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n let binSize;\n let binOffset;\n let binCount;\n let binInfo;\n const distinct = histogramUtils.isCountDistinct(layout);\n\n if (auto || binMode === 'maxCount') {\n binInfo = getBinInfo(layout);\n\n binSize = binInfo.binSize;\n binOffset = binInfo.offset;\n binCount = binInfo.binCount;\n } else {\n binSize = histogramUtils.getBinSize(layout);\n binOffset = histogramUtils.getBinOffset(layout);\n }\n\n return {\n binSize,\n binOffset,\n binCount,\n distinct,\n };\n}\n\nconst histogramMappings = {\n getMappingValues,\n getMappings,\n};\n\nexport default histogramMappings;\n","import { setValue } from 'qlik-chart-modules';\nimport HyperCubeDefGenerator from '@qlik/common/picasso/hypercube-def-generator/hypercube-def-generator';\nimport ExpressionGenerator from '@qlik/common/picasso/expression-generator/expression-generator';\nimport histogramMappings from './histogram-mappings';\nimport histogramUtils from '../histogram-utils';\n\nasync function generateHyperCubes(layout, properties, environment) {\n const { app, translator } = environment;\n const mappingValues = histogramMappings.getMappingValues(layout);\n const mappings = histogramMappings.getMappings(mappingValues);\n\n const hyperCubeTemplate = {\n dimensions: ['Class(aggr({{Dim[0]}},{{Dim[0]}}){{BinSize}}{{Label}}{{Offset}})'],\n measures: ['Count({{Distinct}}{{Dim[0]}})'],\n };\n\n // Sturges' formula - https://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width\n const binCountTemplate = '=Ceil(Log10(Count({{Dim[0]}})) / Log10(2)) + 1';\n\n const expressionsPromise = HyperCubeDefGenerator.getAllHyperCubeExpressions(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app\n );\n const boxCubeDefPromise = HyperCubeDefGenerator.generateHyperCubeDef(\n hyperCubeTemplate,\n properties.qHyperCubeDef,\n layout.qHyperCube,\n app,\n mappings\n );\n\n const expressions = await expressionsPromise;\n const boxCubeDef = await boxCubeDefPromise;\n let binCountExpr;\n\n if (histogramUtils.isAutoBin(layout)) {\n binCountExpr = {\n qValueExpression: {\n qExpr: ExpressionGenerator.generateExpression(binCountTemplate, {\n 'Dim[0]': { value: expressions.dimensions[0], wrap: true },\n }),\n },\n };\n } else if (histogramUtils.getBinMode(layout) === 'maxCount' && histogramUtils.isEmpty(properties.bins.binCount)) {\n // When the user have not provided any binCount we use the derived value which will be the output of the auto algorithm in most cases\n binCountExpr = histogramUtils.getDerivedBinCount(layout);\n } else {\n binCountExpr = properties.bins.binCount;\n }\n\n // Dimension should be sorted numeric ascending\n setValue(boxCubeDef, 'qDimensions.0.qDef.qSortCriterias', [{ qSortByNumeric: 1 }]);\n\n // Store the data labels, used when object is flipped to table\n setValue(boxCubeDef, 'qDimensions.0.qDef.qFieldLabels', [layout.qHyperCube.qDimensionInfo[0].qFallbackTitle]);\n setValue(\n boxCubeDef,\n 'qMeasures.0.qDef.qLabel',\n layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel')\n );\n\n // Store the generated hyperCube on properties\n setValue(properties, 'qUndoExclude.box.qHyperCubeDef', boxCubeDef);\n\n // Store the binSize (which in auto mode will be dynamically calculated)\n setValue(properties, 'qUndoExclude.bins.binSize', mappingValues.binSize);\n setValue(properties, 'qUndoExclude.bins.offset', mappingValues.binOffset);\n setValue(properties, 'qUndoExclude.bins.binCount', binCountExpr);\n}\n\nconst cubesGenerator = {\n generateHyperCubes,\n};\n\nexport default cubesGenerator;\n","/**\n * Checks whether a collision has occurred for range selection\n * @param e - event, in this case a mouse event\n * @param targets - the target points that the selections are hitting\n * @param selectionGesture - The type of selection gesture, for example area range select\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForRange(e, targets, selectionGesture) {\n return (\n !!e &&\n !!selectionGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => targets.indexOf(c.settings.key) !== -1)[0]\n );\n}\n\n/**\n * Checks whether a collision has occurred for lasso selection\n * @param e - event, in this case a mouse event\n * @param gesturesParams - parameters for lasso selection\n * @param lassoGesture - the lasso gesture instance\n * @returns {boolean} - True, if a collision has occurred, otherwise false\n */\nfunction isOnComponentForLasso(e, gesturesParams, lassoGesture) {\n return (\n e &&\n lassoGesture.chart\n .componentsFromPoint({\n x: e.center.x,\n y: e.center.y,\n })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0]\n );\n}\n\nfunction isOnComponentForNavBtn(e, legendBrushKey, navBtnGesture) {\n const components = navBtnGesture.chart.componentsFromPoint(e.center);\n return components.some((c) => c.settings.key === legendBrushKey);\n}\n\nexport default {\n isOnComponentForRange,\n isOnComponentForLasso,\n isOnComponentForNavBtn,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getLassoState(handlers) {\n return handlers.selectionHandler.lassoState() && !handlers.selectionHandler.allFieldsLocked();\n}\n\n/**\n * Handles lasso events for picasso charts using HammerJS. When activating lasso selection enable function is\n * triggered first. lassoStart is triggered on all areas specified by options.direction key. Lasso is the gesture\n * that will be active by default.\n */\nfunction callLassoGesture(state, gesturesFns, gesturesParams) {\n return {\n type: 'Pan',\n options: {\n direction: Hammer.DIRECTION_ALL,\n threshold: 1,\n enable(manager, e) {\n if (state.lassoing) {\n return gesturesFns.isSelectionEnabled();\n }\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n return (\n gesturesFns.isSelectionEnabled() && e && (getLassoState(gesturesParams.handlers) || state.lassoing) && hitComp\n );\n },\n event: 'lasso',\n },\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n lassostart(e) {\n const hitComp = onComponentChecker.isOnComponentForLasso(e, gesturesParams, this);\n if (!hitComp) {\n return;\n }\n gesturesFns.switchTo('lasso', this.chart, e);\n state.lassoing = true;\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.lassoBrushKey);\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoStart', e);\n },\n lassomove(e) {\n if (!state.lassoing) {\n return;\n }\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoMove', e);\n },\n lassoend(e) {\n if (!state.lassoing) {\n return;\n }\n\n e.clientX = e.pointers[0].clientX;\n e.clientY = e.pointers[0].clientY;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoEnd', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, true);\n state.lassoing = false;\n },\n lassocancel(e) {\n state.lassoing = false;\n gesturesFns.doEmit(this.chart, 'lasso', 'lassoCancel', e);\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.lassoBrushKey, false);\n },\n },\n };\n}\n\nexport default {\n callLassoGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles measure range selection events for picasso charts using HammerJS. When activating measure range selection enable function is\n * triggered first. measurerangestart is triggered on all areas specified by options.direction key. Only after measurerangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called measurerange, then our\n * events must be named measurerangestart, measurerangemove, measurerangeend, measurerangecancel.\n */\nfunction callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'arearange';\n\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL,\n event: 'measurerange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenMea) {\n return false;\n }\n\n if (state.measureSelecting) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.measureSelecting = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.measureSelecting && !!gesturesParams.keys.measureRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n measurerangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'measurerange'\n ? [measureAxis, gesturesParams.keys.componentKey]\n : [measureAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.measureSelecting = true;\n gesturesFns.switchTo('measurerange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.measureRangeBrushKey);\n },\n measurerangemove(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeMove', e);\n },\n measurerangeend(e) {\n if (!state.measureSelecting) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMeasure', 'rangeEnd', e);\n state.measureSelecting = false;\n },\n measurerangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.measureRangeBrushKey, false);\n state.measureSelecting = false;\n },\n },\n };\n}\n\nexport default {\n callMeasureRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\nfunction getAxisOrientation(axis, orientation) {\n let dir;\n if (axis === 'x-axis') {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL;\n } else {\n dir = orientation === 'horizontal' ? Hammer.DIRECTION_HORIZONTAL : Hammer.DIRECTION_VERTICAL;\n }\n return dir;\n}\n\n/**\n * Handles area range selection events for picasso charts using HammerJS. When activating area range selection enable function is\n * triggered first. arearangestart is triggered on all areas specified by options.direction key. Only after arearangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called arearange, then our\n * events must be named arearangestart, arearangemove, arearangeend, arearangecancel.\n */\nfunction callAreaRangeGesture(state, gesturesFns, gesturesParams, axis) {\n const activeRangeBrush = gesturesParams.keys.dimRangeBrushKey ? 'majorrange' : 'measurerange';\n\n return {\n // Area range select gesture\n type: 'Pan',\n options: {\n direction: getAxisOrientation(axis, gesturesParams.isHorizontal),\n event: 'arearange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n\n if (state.minoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.minoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.minoring;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n arearangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'arearange' ? [axis, gesturesParams.keys.componentKey] : [axis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.minoring = true;\n gesturesFns.switchTo('arearange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.areaBrushKey);\n },\n arearangemove(e) {\n if (!state.minoring) {\n return;\n }\n // Behaves likes lasso, which adds all data points as soon as we hit the points, we only want to highlight the values within the range\n this.chart.brush(gesturesParams.keys.areaBrushKey).clear();\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaMove', e);\n },\n arearangeend(e) {\n if (!state.minoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeMinor', 'areaEnd', e);\n state.minoring = false;\n },\n arearangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.areaBrushKey, false);\n state.minoring = false;\n },\n },\n };\n}\n\nexport default {\n callAreaRangeGesture,\n};\n","import Hammer from 'hammerjs';\nimport onComponentChecker from './on-component-checker';\n\n/**\n * Handles dimension range selection events for picasso charts using HammerJS. When activating dimension range selection enable function is\n * triggered first. majorrangestart is triggered on all areas specified by options.direction key. Only after majorrangestart\n * is triggered, then the other events might be triggered as well. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called majorrange, then our\n * events must be named majorrangestart, majorrangemove, majorrangeend, majorrangecancel.\n */\nfunction callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis) {\n const activeRangeBrush = gesturesParams.keys.measureRangeBrushKey ? 'measurerange' : 'arearange';\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'majorrange',\n enable(manager, e) {\n if (!gesturesParams.rangeSelStatus.isOpenDim) {\n return false;\n }\n if (state.majoring) {\n return gesturesFns.isSelectionEnabled();\n }\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n\n state.majoring = gesturesFns.isSelectionEnabled() && !!e && !!hitComp;\n return state.majoring && !!gesturesParams.keys.dimRangeBrushKey;\n },\n },\n requireFailure: `lasso ${activeRangeBrush}`,\n recognizeWith: gesturesParams.handlers.scrollHandler ? 'drag' : null,\n events: {\n majorrangestart(e) {\n const targets =\n gesturesParams.active.gesture === 'majorrange' ? [dimAxis, gesturesParams.keys.componentKey] : [dimAxis];\n const hitComp = onComponentChecker.isOnComponentForRange(e, targets, this);\n if (!hitComp) {\n return;\n }\n\n state.majoring = true;\n gesturesFns.switchTo('majorrange', this.chart, e);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeStart', e);\n gesturesParams.handlers.selectionHandler.pauseEngineCalls(gesturesParams.keys.dimRangeBrushKey);\n },\n majorrangemove(e) {\n if (!state.majoring) {\n return;\n }\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeMove', e);\n },\n majorrangeend(e) {\n if (!state.majoring) {\n return;\n }\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, true);\n gesturesFns.doEmit(this.chart, 'rangeDim', 'rangeEnd', e);\n state.majoring = false;\n },\n majorrangecancel() {\n gesturesParams.handlers.selectionHandler.resumeEngineCalls(gesturesParams.keys.dimRangeBrushKey, false);\n state.majoring = false;\n },\n },\n };\n}\n\nexport default {\n callDimensionRangeGesture,\n};\n","import Hammer from 'hammerjs';\n\n/**\n * Handles dragging for picasso charts using HammerJS. When activating dragging the enable function is\n * triggered first. dragstart is triggered on all areas specified by options.direction key. The different event\n * names must be appended as suffixes for options.event. In this case options.event is called drag, then our\n * events must be named dragstart, dragmove, dragend, dragcancel.\n */\nfunction callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl) {\n let dragPoint = {};\n return {\n type: 'Pan',\n options: {\n direction: gesturesParams.isHorizontal ? Hammer.DIRECTION_VERTICAL : Hammer.DIRECTION_HORIZONTAL,\n event: 'drag',\n enable(manager, e) {\n if (state.dragging) {\n return gesturesFns.isNavigationEnabled();\n }\n\n state.dragging =\n gesturesFns.isNavigationEnabled() &&\n !!e &&\n !!this.chart\n .componentsFromPoint({ x: e.center.x, y: e.center.y })\n .filter((c) => c.settings.key === gesturesParams.keys.componentKey)[0];\n return state.dragging;\n },\n },\n requireFailure: hasSelections ? `lasso ${gesturesFns.getBrushConfig()}` : '',\n events: {\n dragstart(e) {\n dragPoint = { x: e.deltaX, y: e.deltaY };\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY : e.deltaX) / gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n },\n dragmove(e) {\n if (!state.dragging) {\n return;\n }\n let change =\n -(gesturesParams.isHorizontal ? e.deltaY - dragPoint.y : e.deltaX - dragPoint.x) /\n gesturesParams.handlers.scrollHandler.getItemSize();\n if (!gesturesParams.isHorizontal && isRtl) {\n change = -change;\n }\n gesturesParams.handlers.scrollHandler.getScrollApi().move(change);\n dragPoint = { x: e.deltaX, y: e.deltaY };\n },\n dragend() {\n if (!state.dragging) {\n return;\n }\n state.dragging = false;\n },\n dragcancel() {\n state.dragging = false;\n },\n },\n };\n}\n\nexport default {\n callDragGesture,\n};\n","import onComponentChecker from './on-component-checker';\n\n/**\n * Handles navigational button events for picasso charts using HammerJS. When pressing on a navigational button,\n * the enable function is triggered to check if the navigational button should be enabled or not.\n * For example, in edit mode it should be disabled.\n * @param isEnabledFn - Function that returns a boolean. In this case return false if in edit mode, true otherwise\n * @param legendBrushKey - String defining the legend brush key\n * @returns An object for reacting to tap events according to HammerJS API\n */\nfunction callNavBtnGesture(isEnabledFn, legendBrushKey) {\n return {\n type: 'Tap',\n options: {\n event: 'navBtnTap',\n enable(manager, e) {\n if (!e || !isEnabledFn()) {\n return false;\n }\n\n return onComponentChecker.isOnComponentForNavBtn(e, legendBrushKey, this);\n },\n },\n events: {\n navBtnTap(e) {\n // Invokes paging interaction on legend\n this.chart.componentsFromPoint(e.center).forEach((c) => {\n const btn = e.target;\n const attr = btn ? btn.getAttribute('data-action') : '';\n if (attr) {\n return c.emit(attr);\n }\n return undefined;\n });\n },\n },\n };\n}\n\nexport default {\n callNavBtnGesture,\n};\n","import lassoGesture from './gestures/lasso-gesture';\nimport measureRangeGesture from './gestures/measure-range-gesture';\nimport areaRangeGesture from './gestures/area-range-gesture';\nimport dimensionRangeGesture from './gestures/dimension-range-gesture';\nimport dragGesture from './gestures/drag-gesture';\nimport navBtnGesture from './gestures/navigational-button-gesture';\n\n/**\n * Creates Picasso components for interaction component that are dependent on eatchother\n */\n\nfunction DependentInteractions(handlers, orientation, isRtl, keys, rangeSelStatus) {\n const ret = {};\n\n orientation = orientation || 'vertical';\n\n const lassoBrushKey = keys.lassoBrushKey || 'select';\n const dimRangeBrushKey = keys.dimRangeBrushKey || null;\n const measureRangeBrushKey = keys.measureRangeBrushKey || null;\n const areaBrushKey = keys.areaBrushKey || null;\n const legendBrushKey = keys.legendBrushKey || null;\n\n const hasSelections = !!handlers.selectionHandler && handlers.selectionHandler.isOn();\n\n const state = {\n dragging: false,\n lassoing: false,\n majoring: false,\n minoring: false,\n measureSelecting: false,\n };\n\n const active = {\n gesture: '',\n type: '',\n };\n\n const isHorizontal = orientation === 'horizontal';\n\n const dimAxis = isHorizontal ? 'y-axis' : 'x-axis';\n const measureAxis = isHorizontal ? 'x-axis' : 'y-axis';\n\n function switchTo(gesture, chart, e) {\n if (active.gesture === gesture) {\n return;\n }\n let clearKey = lassoBrushKey;\n const activeChart = chart || active.chart;\n\n switch (active.gesture) {\n case 'majorrange':\n doEmit(activeChart, 'rangeDim', 'rangeClear', e);\n clearKey = dimRangeBrushKey;\n break;\n case 'measurerange':\n doEmit(activeChart, 'rangeMeasure', 'rangeClear', e);\n clearKey = measureRangeBrushKey;\n break;\n case 'arearange':\n doEmit(activeChart, 'rangeMinor', 'areaClear', e);\n clearKey = areaBrushKey;\n break;\n default:\n break;\n }\n\n active.gesture = gesture;\n const newType = gesture === 'range' ? 'range' : 'item';\n\n if (active.type && active.type !== newType) {\n activeChart.brush(clearKey).clear();\n }\n\n active.chart = chart;\n active.type = newType;\n }\n\n // Just added here to allow easy disabling of things while developing\n function doEmit(chart, comp, cont, e) {\n if (chart) {\n const inst = chart.component(comp);\n if (inst) {\n inst.emit(cont, e);\n }\n }\n }\n\n function getBrushConfig() {\n if (!dimRangeBrushKey) {\n return 'measurerange arearange';\n }\n if (!measureRangeBrushKey) {\n return 'majorrange arearange';\n }\n return 'majorrange measurerange';\n }\n\n let gestures = [];\n\n const gesturesFns = {\n isSelectionEnabled: () => handlers.selectionHandler && handlers.selectionHandler.isOn(),\n isNavigationEnabled: () => handlers.scrollHandler && handlers.scrollHandler.isOn(),\n doEmit,\n switchTo,\n getBrushConfig,\n };\n\n const gesturesParams = {\n handlers,\n keys,\n isHorizontal,\n active,\n rangeSelStatus,\n };\n\n if (hasSelections) {\n gestures = [\n {\n type: 'Tap',\n options: {\n event: 'rangeClearTap',\n },\n events: {\n rangeClearTap(e) {\n switchTo('none', this.chart, e);\n\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n },\n },\n },\n ];\n\n // Ordering matters here because the tap event, because the above gesture does not return anything\n // and we want don't want to call the navigational button enable function for all tap events\n gestures.unshift(navBtnGesture.callNavBtnGesture(gesturesFns.isNavigationEnabled, legendBrushKey));\n\n gestures.push(lassoGesture.callLassoGesture(state, gesturesFns, gesturesParams));\n\n // Only two of the axis range selection can exist at the same time\n if (!dimRangeBrushKey) {\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n // Register component to selections handler so it is cleared properly\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else if (!measureRangeBrushKey) {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(areaRangeGesture.callAreaRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(areaBrushKey, { id: 'rangeMinor', clear: 'areaClear' });\n } else {\n gestures.push(dimensionRangeGesture.callDimensionRangeGesture(state, gesturesFns, gesturesParams, dimAxis));\n handlers.selectionHandler.addComponent(dimRangeBrushKey, { id: 'rangeDim', clear: 'rangeClear' });\n\n gestures.push(measureRangeGesture.callMeasureRangeGesture(state, gesturesFns, gesturesParams, measureAxis));\n handlers.selectionHandler.addComponent(measureRangeBrushKey, { id: 'rangeMeasure', clear: 'rangeClear' });\n }\n }\n\n if (handlers.scrollHandler) {\n gestures.push(dragGesture.callDragGesture(state, gesturesFns, gesturesParams, hasSelections, isRtl));\n\n // On scroll we need to switch of the major ranging, so that pan will work\n handlers.scrollHandler.getScrollApi().on('update', onScrollUpdate);\n }\n\n function onScrollUpdate() {\n switchTo('none');\n state.majoring = false;\n state.measureSelecting = false;\n state.minoring = false;\n }\n\n ret.gestures = gestures;\n ret.destroy = function () {\n if (handlers.scrollHandler) {\n handlers.scrollHandler.getScrollApi().removeListener('update', onScrollUpdate);\n }\n };\n\n return ret;\n}\n\nexport default {\n create: DependentInteractions,\n};\n","import { getValue } from 'qlik-chart-modules';\n\nconst MAX_GLYPH_COUNT = 20;\n\n//\n// Implementation details\n//\n\nfunction getMaxGlyphCountForDimAxis(layout) {\n const qApprMaxGlyphCount = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0.qApprMaxGlyphCount', 0);\n return Math.min(MAX_GLYPH_COUNT, qApprMaxGlyphCount);\n}\n\nfunction createDimensionAxisSettings(layout) {\n return {\n settings: {\n labels: {\n maxGlyphCount: getMaxGlyphCountForDimAxis(layout),\n },\n },\n };\n}\n\nconst DimensionAxis = {\n createSettings: createDimensionAxisSettings,\n};\n\nexport default DimensionAxis;\n","import { getValue } from 'qlik-chart-modules';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createDimensionScaleSettings(layout) {\n const isAutoMode = histogramUtils.isAutoBin(layout);\n const binMode = histogramUtils.getBinMode(layout);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n let min;\n let max;\n\n if (isAutoMode || binMode === 'maxCount') {\n // User is expecting a specific number of bars so we make sure the axis\n // will hold this number of bars even if there are not that many bars in the data\n const offset = histogramUtils.getDerivedBinOffset(layout);\n\n const binCount = histogramUtils.getDerivedBinCount(layout);\n\n min = offset;\n max = offset + binCount * binSize;\n } else {\n const dimInfo = getValue(layout, 'qUndoExclude.box.qHyperCube.qDimensionInfo.0', {});\n min = dimInfo.qMin || 0;\n max = (dimInfo.qMax || 0) + binSize;\n }\n\n return {\n component: {\n type: 'linear',\n min,\n max,\n },\n };\n}\n\nconst DimensionScale = {\n createSettings: createDimensionScaleSettings,\n};\n\nexport default DimensionScale;\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: {\n r: 255,\n g: 255,\n b: 255,\n a: 0,\n },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable camelcase */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable no-cond-assign */\n/* eslint-disable prefer-rest-params */\n\n/**\n * Module which defines a color object\n * @exports objects.views/charts/representation/color\n * @expose module:objects.views/charts/representation/color~Color\n */\nimport Class from './class';\nimport CSSColors from './css-colors';\n\n// color formats\nconst rgb = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i;\n\nconst rgba = /^rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(\\d(\\.\\d+)?)\\)$/i;\nconst hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;\nconst hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;\nconst hsl = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i;\nconst hsla = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i;\nconst floor = Math.floor;\nconst round = Math.round;\n\n/**\n * @class\n * @classdesc Class which provides color transformation functionality\n * @description This is a constructor.\n * @param {object} - Parameters to create a color from different notations\n * @example\n * // a few ways of instantiating a red color\n * var red;\n * red = new Color(255, 0, 0, 1); // rgba as parameters\n * red = new Color('#ff0000'); // hex\n * red = new Color('rgb(255,0,0)');//rgb as string\n * red = new Color('hsl(0, 100, 50)');// hsl as string\n * red = new Color(16711680);// uint\n */\nconst Color = Class.extend(\n /** @lends module:objects.views/charts/representation/color~Color# */ {\n init() {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 1;\n let h;\n let s;\n let lcs;\n let l;\n let v;\n let c;\n let h_;\n let x;\n let rgb_;\n let m;\n let matches;\n let colorString;\n\n this._invalid = false;\n\n if (arguments[0] instanceof Color) {\n r = arguments[0]._r;\n g = arguments[0]._g;\n b = arguments[0]._b;\n a = arguments[0]._a;\n this._invalid = arguments[0]._invalid;\n } else if (arguments.length < 3) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (\n (matches = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d(\\.\\d+)?)\\s*\\)$/i.exec(\n colorString\n ))\n ) {\n // rgba(1, 2, 3, 0.4)\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n a = parseFloat(matches[4]);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n // #aBc123\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n a = 1;\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n // #a5F\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n a = 1;\n } else if (\n (matches = /^hsl\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsl(1, 2, 3)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (\n (matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n colorString\n ))\n ) {\n // hsla(1,2,3,0.4)\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n l = parseFloat(matches[5]);\n a = parseFloat(matches[7]);\n\n h %= 360;\n s /= 100;\n l /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n\n c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = l - 0.5 * c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n } else if (\n (matches = /^hsv\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*\\)$/i.exec(colorString))\n ) {\n // hsv(1, 2, 3) {\n h = parseFloat(matches[1]);\n s = parseFloat(matches[3]);\n v = parseFloat(matches[5]);\n\n h %= 360;\n s /= 100;\n v /= 100;\n\n h = h < 0 ? 0 : h > 360 ? 360 : h;\n s = s < 0 ? 0 : s > 1 ? 1 : s;\n v = v < 0 ? 0 : v > 1 ? 1 : v;\n\n c = v * s;\n h_ = h / 60;\n x = c * (1 - Math.abs((h_ % 2) - 1));\n\n rgb_ = [];\n\n h_ = Math.floor(h_);\n switch (h_) {\n case 0:\n rgb_ = [c, x, 0];\n break;\n case 1:\n rgb_ = [x, c, 0];\n break;\n case 2:\n rgb_ = [0, c, x];\n break;\n case 3:\n rgb_ = [0, x, c];\n break;\n case 4:\n rgb_ = [x, 0, c];\n break;\n case 5:\n rgb_ = [c, 0, x];\n break;\n default:\n rgb_ = [0, 0, 0];\n }\n\n m = v - c;\n\n r = rgb_[0] + m;\n g = rgb_[1] + m;\n b = rgb_[2] + m;\n\n r = round(255 * r);\n g = round(255 * g);\n b = round(255 * b);\n a = 1.0;\n } else if (CSSColors[colorString.toLowerCase()]) {\n lcs = colorString.toLowerCase();\n r = CSSColors[lcs].r;\n g = CSSColors[lcs].g;\n b = CSSColors[lcs].b;\n a = typeof CSSColors[lcs].a === 'number' ? CSSColors[lcs].a : 1.0;\n } else {\n this._invalid = true;\n }\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0 && arguments[1] === 'argb') {\n a = (0xff000000 & arguments[0]) >>> 24;\n a /= 255;\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else if (typeof arguments[0] === 'number' && arguments[0] >= 0) {\n r = (0xff0000 & arguments[0]) >> 16;\n g = (0x00ff00 & arguments[0]) >> 8;\n b = 0x0000ff & arguments[0];\n } else {\n this._invalid = true;\n }\n } else if (arguments.length >= 3) {\n r = arguments[0];\n g = arguments[1];\n b = arguments[2];\n a = arguments.length >= 4 ? arguments[3] : 1;\n } else {\n this._invalid = true;\n }\n\n if (Number.isNaN(+r + g + b + a)) {\n this._invalid = true;\n }\n\n this._r = floor(r);\n this._g = floor(g);\n this._b = floor(b);\n this._a = a;\n\n // object to cache string representations in various color spaces\n this._spaces = {};\n },\n isInvalid() {\n return this._invalid;\n },\n /**\n * Sets alpha value of color\n * @param {number} a - Alpha value of the color\n */\n setAlpha(a) {\n this._a = a;\n this._spaces = {};\n },\n /**\n * Gets the alpha value of this color\n * @returns {number}\n */\n getAlpha() {\n return this._a;\n },\n /**\n * Returns an rgb string representation of this color.\n * @return {string} An rgb string representation of this color\n */\n toRGB: function toRGB() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns an rgba string representation of this color.\n * @return {string} An rgba string representation of this color.\n */\n toRGBA: function toRGBA() {\n if (!this._spaces.rgba) {\n this._spaces.rgba = Color.toRGBA(this);\n }\n return this._spaces.rgba;\n },\n toString() {\n if (!this._spaces.rgb) {\n this._spaces.rgb = Color.toRGB(this);\n }\n return this._spaces.rgb;\n },\n /**\n * Returns a hex string representation of this color.\n * @return {string}\n */\n toHex: function toHex() {\n if (!this._spaces.hex) {\n this._spaces.hex = Color.toHex(this);\n }\n return this._spaces.hex;\n },\n /**\n * Returns a hsl string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsl(0,0,0)\n */\n toHSL: function toHSL(luma) {\n if (!this._spaces.hsl) {\n this._spaces.hsl = Color.toHSL(this, luma);\n }\n return this._spaces.hsl;\n },\n /**\n * Returns a hsla string representation of this color using \"bi-hexcone\" model for lightness\n * @param {boolean} luma - Whether to use luma calculation\n * @return {string} In format hsla(0,0,0,0)\n */\n toHSLA: function toHSLA(luma) {\n if (!this._spaces.hsla) {\n this._spaces.hsla = Color.toHSLA(this, luma);\n }\n return this._spaces.hsla;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSV() {\n const hsvComp = this.toHSVComponents();\n return `hsv(${hsvComp.h},${hsvComp.s},${hsvComp.v})`;\n },\n /**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\n toHSVComponents: function toHSVComponents() {\n if (!this._spaces.hsvComp) {\n this._spaces.hsvComp = Color.toHSVComponents(this);\n }\n return this._spaces.hsvComp;\n },\n /**\n * Returns a uint representation of this color\n * @return {number}\n */\n toNumber: function toNumber() {\n if (!this._spaces.num) {\n this._spaces.num = Color.toNumber(this);\n }\n return this._spaces.num;\n },\n /**\n * Checks if this color is perceived as dark.\n * @return {string} True if the luminance is below 160, false otherwise.\n */\n isDark() {\n return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2\n // return this.getLuminance() < 160; //luminace calc option #3\n },\n /**\n * Calculates the perceived luminance of the color.\n * @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.\n */\n getLuminance() {\n // alpha channel is not considered\n if (typeof this._lumi === 'undefined') {\n // calculate luminance\n // this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1\n this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2\n // this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3\n }\n\n return this._lumi;\n },\n /**\n * Shifts the color towards a lighter or darker shade\n * @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.\n * @return {string} The shifted color as hsla string.\n */\n shiftLuminance(value) {\n const chsla = this.toHSLA();\n const matches = /^hsla\\(\\s*(\\d+(\\.\\d+)?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,\\s*(\\d+(\\.\\d+)?%?)\\s*,(\\d(\\.\\d+)?)\\)$/i.exec(\n chsla\n );\n\n const h = parseFloat(matches[1]);\n const s = parseFloat(matches[3]);\n let l = parseFloat(matches[5]);\n const a = parseFloat(matches[7]);\n // l *= 1 + value / 100;\n // l = Math.max( 0, l % 100 );\n l += value;\n l = Math.max(0, Math.min(l, 100));\n\n // if( value > 0 ){\n // s = s*0.2; //removing saturation to avoid the border from being too light\n // }\n\n return `hsla(${h},${s},${l},${a})`;\n },\n /**\n * Compares two colors.\n * @param {Color} c The color to compare with.\n * @return {boolean} True if the rgb channels are the same, false otherwise\n */\n isEqual(c) {\n if (c instanceof Color) {\n return this._r === c._r && this._g === c._g && this._b === c._b;\n }\n\n c = new Color(c);\n return this._r === c._r && this._g === c._g && this._b === c._b;\n },\n /**\n * Linearly interpolates each channel of two colors.\n * @param {Color} c2 The other color.\n * @param {number} t The interpolation value in the range (0-1).\n * @return {string} The blend as an rgb string.\n */\n blend(c2, t) {\n const r = floor(this._r + (c2._r - this._r) * t);\n const g = floor(this._g + (c2._g - this._g) * t);\n const b = floor(this._b + (c2._b - this._b) * t);\n const a = floor(this._a + (c2._a - this._a) * t);\n\n return `rgba(${[r, g, b, a].join(',')})`;\n },\n\n createShiftedColor(v) {\n if (v === undefined || Number.isNaN(+v)) {\n v = 1;\n }\n const lumi = this.getLuminance();\n const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;\n const hsla_string = this.shiftLuminance(\n (lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v\n );\n\n return new Color(hsla_string);\n },\n }\n);\n\n/**\n * Returns an rgb string representation of this color\n * @param {Color|string} c\n * @returns {string} An rgb string with channel values within range 0-255.\n */\nColor.toRGB = function toRGB(c) {\n if (c instanceof Color) {\n return `rgb(${[c._r, c._g, c._b].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgb(${r},${g},${b})`;\n};\n/**\n *\n * @param c\n * @param a\n * @returns {string} The color rgb format.\n */\nColor.toRGBA = function toRGB(c, a) {\n if (c instanceof Color) {\n return `rgba(${[c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(',')})`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n const r = (c & 0xff0000) >> 16;\n const g = (c & 0x00ff00) >> 8;\n const b = c & 0x0000ff;\n\n return `rgba(${r},${g},${b},${typeof a !== 'undefined' ? a : c._a})`;\n};\n/**\n *\n * @param {Color|string} c\n * @returns {string} The color in hexadecimal space.\n */\nColor.toHex = function toHex(c) {\n let r;\n let g;\n let b;\n if (c instanceof Color) {\n r = c._r.toString(16);\n g = c._g.toString(16);\n b = c._b.toString(16);\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n return `#${[r, g, b].join('')}`;\n }\n\n if (typeof c === 'string') {\n c = Color.toNumber(c);\n }\n\n r = ((c & 0xff0000) >> 16).toString(16);\n g = ((c & 0x00ff00) >> 8).toString(16);\n b = (c & 0x0000ff).toString(16);\n\n if (r.length === 1) {\n r = `0${r}`;\n }\n if (g.length === 1) {\n g = `0${g}`;\n }\n if (b.length === 1) {\n b = `0${b}`;\n }\n\n return `#${r}${g}${b}`;\n};\n/**\n * Return the color in hsl space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsl space.\n */\nColor.toHSL = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsl(${h * 360},${s * 100},${l * 100})`;\n};\n/**\n * Return the color in hsla space using \"bi-hexcone\" model for lightness\n * @param {Color|string} c\n * @param {boolean} luma - Whether to use luma calculation\n * @returns {string} The color in hsla space.\n */\nColor.toHSLA = function (c, luma) {\n let h = 0;\n let s;\n let l;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, lightness/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n const a = c._a;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n if (luma) {\n // Y'709 http://en.wikipedia.org/wiki/Rec._709\n // Y′709 = 0.21R + 0.72G + 0.07B\n l = 0.21 * r + 0.72 * g + 0.07 * b;\n } else {\n l = (max + min) / 2;\n }\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return `hsla(${h * 360},${s * 100},${l * 100},${a})`;\n};\n/**\n * Return the color components in hsv space using \"hexcone\" model for value (lightness)\n * @param {Color|string} c\n * @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}\n */\nColor.toHSVComponents = function (c) {\n let h = 0;\n let s;\n let ch;\n if (typeof c === 'string') {\n c = new Color(c);\n }\n\n // red, green, blue, hue, saturation, value/luma, max, min, chroma\n const r = c._r / 255;\n const g = c._g / 255;\n const b = c._b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n const v = max;\n\n if (max === min) {\n // greyscale\n s = 0;\n h = 0;\n } else {\n ch = max - min;\n s = ch === 0 ? 0 : ch / v;\n switch (max) {\n case r:\n h = (g - b) / ch + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / ch + 2;\n break;\n case b:\n h = (r - g) / ch + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return { h: (h * 360) % 360, s: s * 100, v: v * 100 };\n};\n/**\n * Returns an number representation of the color\n * @param {Color|string} c\n * @returns {Number} Unsigned integer in the range 0-16 777 216\n */\nColor.toNumber = function toNumber() {\n if (arguments.length === 1 && arguments[0] instanceof Color) {\n return (arguments[0]._r << 16) + (arguments[0]._g << 8) + arguments[0]._b;\n }\n\n let r = 0;\n let g = 0;\n let b = 0;\n let matches;\n let colorString;\n\n if (arguments.length === 1) {\n if (typeof arguments[0] === 'string') {\n colorString = arguments[0];\n\n if ((matches = /^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/i.exec(colorString))) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if ((matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString))) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if ((matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString))) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n }\n return (r << 16) + (g << 8) + b;\n};\nColor.blend = function blend(c1, c2, t) {\n c1 = Color.toNumber(c1);\n c2 = Color.toNumber(c2);\n\n const r1 = (c1 & 0xff0000) >> 16;\n const g1 = (c1 & 0x00ff00) >> 8;\n const b1 = c1 & 0x0000ff;\n const r2 = (c2 & 0xff0000) >> 16;\n const g2 = (c2 & 0x00ff00) >> 8;\n const b2 = c2 & 0x0000ff;\n const r = r1 + (r2 - r1) * t;\n const g = g1 + (g2 - g1) * t;\n const b = b1 + (b2 - b1) * t;\n\n return (r << 16) + (g << 8) + b;\n};\nColor.getBlend = function getBlend(c1, c2, t) {\n const r = c1._r + (c2._r - c1._r) * t;\n const g = c1._g + (c2._g - c1._g) * t;\n const b = c1._b + (c2._b - c1._b) * t;\n const a = c1._a + (c2._a - c1._a) * t;\n\n return new Color(r, g, b, a);\n};\nColor.isCSSColor = function (color) {\n if (arguments.length > 1 || typeof color !== 'string') {\n return false;\n }\n return (\n rgb.test(color) ||\n rgba.test(color) ||\n hex.test(color) ||\n hexShort.test(color) ||\n hsl.test(color) ||\n hsla.test(color) ||\n CSSColors[color.toLowerCase()]\n );\n};\n\nColor.getBestContrast = function (color, cl, cd) {\n const lum = color.getLuminance();\n return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;\n};\n\nColor.getContrast = function (color1, color2) {\n if (!color1 || !color2) {\n return undefined;\n }\n\n const l1 = color1.getLuminance() / 100;\n const l2 = color2.getLuminance() / 100;\n\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n }\n\n return (l2 + 0.05) / (l1 + 0.05);\n};\n\nColor.isDark = function () {\n const o = {\n getLuminance: Color.prototype.getLuminance,\n isInvalid: Color.prototype.isInvalid,\n };\n Color.prototype.init.apply(o, [].slice.call(arguments));\n return Color.prototype.isDark.call(o);\n};\n\nColor.useDarkLabel = function (areaColor, bgIsDark) {\n return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;\n};\n\nexport default Color;\n","import Color from './color';\n\nconst chartUtils = {\n TRANSPARENT_BLACK: 'rgba( 0,0,0,0.2 )',\n TRANSPARENT_WHITE: 'rgba( 255,255,255,0.7 )',\n LIGHT_GREY: '#ccc',\n DARK_GREY: '#666',\n BLACK: '#000',\n WHITE: '#fff',\n\n getInverse(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.BLACK;\n }\n return colorObj.isDark() ? this.WHITE : this.BLACK;\n },\n\n getContrastingGrey(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0) {\n return this.DARK_GREY;\n }\n return Color.getBestContrast(colorObj, new Color(chartUtils.LIGHT_GREY), new Color(chartUtils.DARK_GREY));\n },\n\n getBestContrast(color, color1, color2) {\n return Color.getBestContrast(new Color(color), new Color(color1), new Color(color2));\n },\n\n getContrastingTransparent(color) {\n const colorObj = new Color(color);\n const alpha = colorObj.getAlpha();\n\n if (alpha === 0 || color === 'none') {\n return this.TRANSPARENT_BLACK;\n }\n return colorObj.isDark() ? this.TRANSPARENT_WHITE : this.TRANSPARENT_BLACK;\n },\n};\n\nexport default chartUtils;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\nimport histogramUtils from '../histogram-utils';\n\n//\n// Implementation details\n//\n\nfunction createBoxMarkerSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n) {\n const { theme } = chartView.environment;\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n const binSize = histogramUtils.getDerivedBinSize(layout);\n\n const brushTrigger = [];\n const brushConsume = [\n basicSelectionSettings.consume,\n dimensionSelectionSettings.consume,\n measureSelectionSettings.consume,\n ];\n\n if (chartView._tooltipHandler.isOn()) {\n brushTrigger.push(tooltipSettings.box.trigger);\n brushConsume.push.apply(brushConsume, tooltipSettings.box.consume);\n }\n\n brushTrigger.push(basicSelectionSettings.trigger);\n\n return {\n key: 'box-marker',\n settings: {\n box: {\n fill: boxFillColor,\n stroke: chartStyleUtils.getContrastingGrey(boxFillColor).toHex(),\n strokeWidth: 1,\n maxWidthPx: Infinity,\n minWidthPx: NaN, // Temp fix for QLIK-92353 until a proper fix is available in picasso.js\n minWidth: 0,\n },\n major: {\n scale: 'dimension',\n ref: {\n start: 'binStart',\n end: 'binEnd',\n },\n },\n minor: { scale: 'measure' },\n whiskers: false,\n orientation: 'vertical',\n },\n brush: {\n trigger: brushTrigger,\n consume: brushConsume,\n },\n data: {\n extract: {\n field: 'qDimensionInfo/0',\n props: {\n start: 0,\n end: { field: 'qMeasureInfo/0' },\n measure: {\n field: 'qMeasureInfo/0',\n reduce: 'first',\n value(v) {\n return v;\n },\n reduceLabel: 'none',\n },\n binStart: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum;\n },\n },\n binEnd: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v.qNum + binSize;\n },\n },\n elemNo: { field: 'qDimensionInfo/0' },\n bin: {\n field: 'qDimensionInfo/0',\n value(v) {\n return v;\n },\n },\n },\n },\n },\n };\n}\n\nconst BoxMarker = {\n createSettings: createBoxMarkerSettings,\n};\n\nexport default BoxMarker;\n","import chartStyleUtils from '@qlik/common/extra/chart-style-utils';\n\n//\n// Implementation details\n//\n\nfunction createLabelSettings(layout, theme) {\n const boxFillColor = theme.getColorPickerColor(layout.color.bar.paletteColor);\n\n return {\n settings: {\n sources: [\n {\n strategy: {\n settings: {\n labels: [\n {\n placements: [{}, { fill: chartStyleUtils.getInverse(boxFillColor) }],\n },\n ],\n },\n },\n },\n ],\n },\n };\n}\n\nconst Label = {\n createSettings: createLabelSettings,\n};\n\nexport default Label;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartBuilder from '@qlik/common/picasso/chart-builder/chart-builder';\nimport DependentInteractions from '@qlik/common/picasso/selections/dependent-interactions';\nimport DimensionAxis from './dimension-axis';\nimport DimensionScale from './dimension-scale';\nimport BoxMarker from './box-marker';\nimport Label from './label';\n// import propertyResolver from '../../../../assets/client/utils/property-resolver';\n\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\n/**\n * Checks whether the dimension is locked or not\n * @param layout - layout for histogram\n * @returns {boolean} - true is the dimension is locked, otherwise false\n */\nfunction getLockedDim(layout) {\n const dimInfos =\n layout.qUndoExclude &&\n layout.qUndoExclude.box &&\n layout.qUndoExclude.box.qHyperCube &&\n layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n ? layout.qUndoExclude.box.qHyperCube.qDimensionInfo\n : undefined;\n if (!dimInfos) {\n return false;\n }\n return !!dimInfos[0].qLocked;\n}\n\n/**\n * Disables/Enables measure- dimension range selection depending if the field is locked or not.\n * In this case, as soon as the current class function is locked, then both measure and dimension\n * range selection is locked down\n * @param lockedDim - boolean determining if the dimension is locked down\n * @returns {object} that gives the status of measure and dimension range selection\n */\nfunction retrieveRangeSelStatus(lockedDim) {\n const rangeSelStatus = {};\n if (lockedDim) {\n rangeSelStatus.isOpenDim = false;\n rangeSelStatus.isOpenMea = false;\n } else {\n rangeSelStatus.isOpenDim = true;\n rangeSelStatus.isOpenMea = true;\n }\n return rangeSelStatus;\n}\n\nfunction isSingleSelect(layout) {\n return getValue(layout, 'qHyperCube.qDimensionInfo.0.qIsOneAndOnlyOne', false);\n}\n\nfunction createChartSettings(chartView, layout) {\n const isRtl = chartView.isRtl();\n const orgDimInfo = getValue(layout, 'qHyperCube.qDimensionInfo.0', {});\n const dimTitle = orgDimInfo.qFallbackTitle || '';\n const { theme, translator } = chartView.environment;\n\n // Create components\n const chartBuilder = ChartBuilder.create({\n chartID,\n theme,\n isRtl,\n });\n\n let basicSelectionSettings = {};\n let dimensionSelectionSettings = {};\n let measureSelectionSettings = {};\n if (chartView._selectionHandler.isOn()) {\n chartView._selectionHandler.setUpStart();\n\n basicSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n });\n\n dimensionSelectionSettings = chartView._selectionHandler.setUpBrush({\n contexts: ['select-dimension'],\n data: ['elemNo'],\n dataPath: 'qUndoExclude/box',\n isSingleSelect: isSingleSelect(layout),\n });\n\n measureSelectionSettings = chartView._selectionHandler.setUpBrush({\n dataPath: 'qUndoExclude/box',\n contexts: ['select-measure'],\n data: ['end'],\n });\n\n chartView._selectionHandler.setUpDone();\n }\n\n const tooltipSettings = { box: {} };\n if (chartView._tooltipHandler.isOn()) {\n tooltipSettings.box = chartView._tooltipHandler.setUp({\n chartBuilder,\n environment: chartView.environment,\n data: [''],\n contexts: ['boxTip'],\n componentKey: 'box-marker',\n measureRows: ['measure'], // Should be a mapped path under extract, mandatory to display tooltip\n labelData: ['bin'], // Should be a mapped path under extract, mandatory to display tooltip\n });\n }\n\n const lockedDims = getLockedDim(layout);\n const rangeSelStatus = retrieveRangeSelStatus(lockedDims);\n\n const handlers = {\n scrollHandler: null,\n selectionHandler: chartView._selectionHandler,\n };\n\n const keys = {\n componentKey: 'box-marker',\n lassoBrushKey: 'select',\n dimRangeBrushKey: null,\n measureRangeBrushKey: 'select-measure',\n areaBrushKey: 'select-dimension',\n };\n\n if (this._dependentActions) {\n this._dependentActions.destroy();\n }\n this._dependentActions = DependentInteractions.create(handlers, 'vertical', isRtl, keys, rangeSelStatus);\n\n chartBuilder.addPreset('dimension-measure-chart', {\n // common\n isRtl,\n includeDimensionAxis: true,\n orientation: 'vertical',\n selectionsEnabled: chartView._selectionHandler.isOn(),\n theme,\n\n // measure scale\n measureSource: 'qMeasureInfo/0',\n measureScaleSettings: {\n component: {\n expand: 0,\n include: [0], // Make sure that the measure axis starts from 0.\n },\n },\n\n // Lasso\n enableLasso: true,\n lasso: {\n brushKey: 'select',\n brushComponents: ['box-marker'],\n },\n\n // Mea range selection\n enableMeasureRange: true,\n measureRange: {\n brushKey: 'select-measure',\n brushAxis: 'y-axis',\n brushArea: 'box-marker',\n brushScale: 'measure',\n },\n\n // Area range selection\n enableAreaRange: true,\n areaRange: {\n brushKey: 'select-dimension',\n brushAxis: 'x-axis',\n brushData: ['elemNo'],\n brushArea: 'box-marker',\n brushScale: 'rangeSelSettings',\n brushComponents: ['box-marker'],\n multiple: true,\n chartInstance: chartView.chartInstance,\n },\n brushActions: this._dependentActions.gestures,\n\n dimensionSource: 'qDimensionInfo/0',\n dimensionScaleSettings: DimensionScale.createSettings(layout),\n\n // measure axis and title\n measureAxisProperties: layout.measureAxis, // used by both\n measureTitleText: layout.measureAxis.label || translator.get('Visualization.Histogram.MeasureAxisLabel'),\n\n // dimension axis and title\n dimensionAxisProperties: layout.dimensionAxis, // used by both\n dimensionAxisSettings: DimensionAxis.createSettings(layout),\n dimensionTitleText: dimTitle,\n\n // grid lines\n gridlines: layout.gridlines,\n\n // scroll\n hasNavigation: false,\n isNavigationEnabledFn: () => false,\n\n // ref-lines\n refLines: layout.refLine && layout.refLine.refLines,\n });\n\n const settings = chartBuilder.getSettings();\n\n // Box marker\n const boxMarkerSettings = BoxMarker.createSettings(\n chartView,\n layout,\n basicSelectionSettings,\n dimensionSelectionSettings,\n measureSelectionSettings,\n tooltipSettings\n );\n chartBuilder.addComponent('box-marker', boxMarkerSettings);\n\n if (layout.dataPoint && layout.dataPoint.showLabels) {\n const binLabelSettings = Label.createSettings(layout, theme);\n chartBuilder.addComponent('labels', binLabelSettings);\n }\n\n // Add snapshot settings\n chartView.addSnapshotChartSettings(settings, layout);\n\n // max: layout.qHyperCube.qDimensionInfo[0].qMax + binSize,\n settings.scales.rangeSelSettings = {\n type: 'linear',\n min: settings.scales.dimension.min,\n max: settings.scales.dimension.max,\n source: 'qDimensionInfo/0',\n };\n\n return settings;\n}\n\nconst ChartSettings = {\n createChartSettings,\n};\n\nexport default ChartSettings;\n","import { getValue } from 'qlik-chart-modules';\nimport ChartView from '@qlik/common/picasso/chart-view';\nimport SelectionHandler from '@qlik/common/picasso/selections/selections-handler';\nimport TooltipHandler from '@qlik/common/picasso/tooltip/tooltips-handler';\nimport DerivedProperties from '@qlik/common/picasso/derived-properties/derived-properties';\nimport cubesGenerator from './derived-properties/histogram-cubes-generator';\nimport histogramMappings from './derived-properties/histogram-mappings';\nimport ChartSettings from './chart-settings/chart-settings';\n\nconst namespace = '.histogram';\nconst chartID = 'object.histogram';\n\n//\n// Implementation details\n//\n\nfunction init({ environment, lasso, picasso, $element, backendApi, selectionsApi, renderState }) {\n this._super(picasso, $element, environment, backendApi, selectionsApi);\n\n this.renderState = renderState;\n\n this.picassoElement.__do_not_use_findShapes = this.chartInstance.findShapes.bind(this.chartInstance); // to allow access to renderered content via DOM\n\n this._derivedProperties = new DerivedProperties();\n\n this._selectionHandler = SelectionHandler.create({\n model: backendApi.model,\n chartInstance: this.chartInstance,\n selectionsApi,\n selectPaths: ['/qUndoExclude/box/qHyperCubeDef'],\n lasso,\n });\n this._tooltipHandler = TooltipHandler.create(this.chartInstance, $element, chartID);\n\n this.setDataPaths(['qUndoExclude/box/qHyperCube']);\n}\n\nfunction updateConstraints(constraints) {\n const tooltip = !constraints.passive;\n const selection = !constraints.select && !constraints.active;\n\n this._tooltipHandler[tooltip ? 'on' : 'off']();\n this._selectionHandler[selection ? 'on' : 'off']();\n}\nfunction off() {\n this._tooltipHandler.off();\n this._selectionHandler.off();\n}\n\nfunction setSnapshotData(snapshotLayout) {\n this._super(snapshotLayout);\n\n snapshotLayout.qUndoExclude.box.qHyperCube.qDataPages = this.layout.qUndoExclude.box.qHyperCube.qDataPages; // eslint-disable-line no-param-reassign\n\n return Promise.resolve(snapshotLayout);\n}\n\nfunction getRequireNumericDimensionAttribute(qHyperCube) {\n return qHyperCube.qDimensionInfo.length > 0 && qHyperCube.qDimensionInfo[0].qTags.indexOf('$numeric') === -1;\n}\n\nfunction getDisclaimerAttributes(layout) {\n function isOnlyNanData() {\n const rows = getValue(layout, 'qUndoExclude.box.qHyperCube.qDataPages.0.qMatrix', []);\n\n // There is only one row and the dimension value on that row is null, then we only have NaN data\n return rows.length === 1 && rows[0][0] && rows[0][0].qIsNull;\n }\n\n const onlyNanData = isOnlyNanData();\n\n return {\n data: layout.qUndoExclude && layout.qUndoExclude.box,\n supportedDisclaimers: {\n LimitedData: true,\n OnlyNanData: true,\n OnlyNegativeOrZeroValues: !onlyNanData,\n RequireNumericDimension: true,\n },\n options: {\n bottom: true,\n supportNegative: false,\n explicitOnlyNanData: onlyNanData,\n explicitRequireNumericDimension: getRequireNumericDimensionAttribute(layout.qHyperCube),\n },\n };\n}\n\nfunction updateChart(layout, settings) {\n if (!layout.qUndoExclude) {\n // Console error when undefined data is sent to picasso\n return Promise.resolve();\n }\n this._super(layout, settings);\n return undefined;\n}\n\nfunction getHashData(layout, properties) {\n return {\n box: properties.qHyperCubeDef,\n binMappings: histogramMappings.getMappingValues(layout),\n binProperties: properties.bins,\n measureAxis: properties.measureAxis,\n version: '2.0', // Added to trigger update because of logic changes in generateHyperCubes\n };\n}\n\nfunction updateData(layout) {\n const self = this;\n\n return self._super(layout).then(() => {\n if (self._destroyed) {\n return Promise.reject();\n }\n layout = self.layout; // eslint-disable-line no-param-reassign\n\n const rect = {\n height: Math.min(layout.qHyperCube.qSize.qcy, 1000),\n width: 2,\n };\n\n const model = self.backendApi.model;\n\n const isSnapshot = !!this.layout.snapshotData;\n if (isSnapshot) {\n return Promise.resolve();\n }\n\n return model.getEffectiveProperties().then((properties) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n return self._derivedProperties\n .addDefaultHyperCubeHash(\n properties.qHyperCubeDef,\n layout.qHyperCube,\n self.environment.app,\n getHashData(layout, properties)\n )\n .then((hashData) => {\n if (self._destroyed) {\n return Promise.reject();\n }\n const settings = {\n layout,\n properties,\n model,\n hashData,\n generateDerivedProperties(layout, properties) {\n return cubesGenerator.generateHyperCubes(layout, properties, self.environment);\n },\n };\n\n if (!self._derivedProperties.isDerivedUpToDate(settings)) {\n self.renderState.pending();\n return self._derivedProperties.updateDerivedProperties(settings);\n }\n if (!layout.qUndoExclude) {\n // Have seen a couple of console errors because qUndoExclude did not exist when calling backendApi.updateCache bellow\n return Promise.resolve();\n }\n\n self.renderState.restore();\n self.backendApi.updateCache(layout.qUndoExclude.box);\n\n return self.getData(self.backendApi, layout.qUndoExclude.box.qHyperCube, rect);\n });\n });\n });\n}\n\nfunction paint() {\n const undoExclude = this.layout.qUndoExclude;\n if (!undoExclude) {\n return Promise.resolve(false);\n }\n const haveBoxData = undoExclude.box && undoExclude.box.qHyperCube.qDataPages.length;\n if (haveBoxData) {\n return this._super();\n }\n return Promise.resolve(false);\n}\n\nfunction isLassoDisabled() {\n return false;\n}\n\nconst HistogramView = ChartView.extend('Histogram', {\n namespace,\n init,\n updateConstraints,\n off,\n createChartSettings: function createChartSettings(layout) {\n return ChartSettings.createChartSettings(this, layout);\n },\n setSnapshotData,\n getDisclaimerAttributes,\n updateChart,\n updateData,\n paint,\n isLassoDisabled,\n});\n\nexport default HistogramView;\n","export default class BackednAPi {\n constructor(model) {\n this.model = model;\n this.path = '/qUndoExclude/box/qHyperCubeDef';\n }\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n setCacheOptions({ maxStackedValues }) {}\n\n // eslint-disable-next-line class-methods-use-this, no-unused-vars\n updateCache(args) {}\n\n getData(pages) {\n return this.model.getHyperCubeData(this.path, pages);\n }\n}\n","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports.conversion=r():e.conversion=r()}(window,(function(){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/conversion/\",n(n.s=2)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){window,e.exports=function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&\"object\"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:e}),2&r&&\"string\"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,\"a\",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p=\"/qlik-modifiers/\",n(n.s=1)}([function(e,r,n){\"use strict\";var t=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=function(e){return\"function\"==typeof Array.isArray?Array.isArray(e):\"[object Array]\"===o.call(e)},u=function(e){if(!e||\"[object Object]\"!==o.call(e))return!1;var r,n=t.call(e,\"constructor\"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,\"isPrototypeOf\");if(e.constructor&&!n&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},l=function(e,r){i&&\"__proto__\"===r.name?i(e,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):e[r.name]=r.newValue},c=function(e,r){if(\"__proto__\"===r){if(!t.call(e,r))return;if(a)return a(e,r).value}return e[r]};e.exports=function e(){var r,n,t,o,i,a,p=arguments[0],f=1,m=arguments.length,d=!1;for(\"boolean\"==typeof p&&(d=p,p=arguments[1]||{},f=2),(null==p||\"object\"!=typeof p&&\"function\"!=typeof p)&&(p={});f<m;++f)if(null!=(r=arguments[f]))for(n in r)t=c(p,n),p!==(o=c(r,n))&&(d&&o&&(u(o)||(i=s(o)))?(i?(i=!1,a=t&&s(t)?t:[]):a=t&&u(t)?t:{},l(p,{name:n,newValue:e(d,a,o)})):void 0!==o&&l(p,{name:n,newValue:o}));return p}},function(e,r,n){\"use strict\";n.r(r);var t=n(0),o=n.n(t),i=function(e,r,n){if(!r)return!1;var t,o=r.split(\".\"),i=o[o.length-1],a=e;for(t=0;t<o.length-1;++t)void 0===a[o[t]]&&(a[o[t]]=Number.isNaN(+o[t+1])?{}:[]),a=a[o[t]];if(void 0!==n){var s=a[i];return a[i]=n,{updated:n,previous:s}}return delete a[i],!1},a=function(e,r,n){var t,o=r.split(\".\"),i=e;if(void 0===i)return n;for(t=0;t<o.length;++t){if(void 0===i[o[t]])return n;i=i[o[t]]}return i},s=\"\".concat(\" \",\"(\").concat(\" \"),u=\"\".concat(\" \",\")\").concat(\" \");function l(e){return s+e+u}function c(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.qLibraryId){var n=function(e,r){if(!r)return null;var n,t;for(n=0;n<r.length;n++)if((t=r[n]).qInfo.qId===e)return t;return null}(e.qLibraryId,r.dimensionList);return n&&n.qData.info[0].qTags.indexOf(\"$numeric\")>-1}var t=function(e,r){if(!r)return null;var n,t,o=function(e){var r=e.trim();\"=\"===r.charAt(0)&&(r=(r=r.substring(1)).trim());var n=r.length-1;return\"[\"===r.charAt(0)&&\"]\"===r.charAt(n)&&(r=(r=r.substring(1,n)).trim()),r}(e);for(n=0;n<r.length;n++){if((t=r[n]).qName===o)return t;if(t.qDerivedFieldData)for(var i=0;i<t.qDerivedFieldData.qDerivedFieldLists.length;++i)for(var a=t.qDerivedFieldData.qDerivedFieldLists[i],s=0;s<a.qFieldDefs.length;++s){var u=a.qFieldDefs[s];if(u.qName===o)return u}}return null}(e.qDef.qFieldDefs[0],r.fieldList);return t&&t.qTags.indexOf(\"$numeric\")>-1}function p(e){return!(!e.fullAccumulation&&!e.fullRange)}function f(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"RowNo(Total)\":\"RowNo()\"}function m(e){var r=function(e){return e?(e=function(e){return e.replace(/\\/\\*[^]*?\\*\\//g,\"\")}(e=function(e){return e.replace(/\\/\\/(.*)$/gm,\"\")}(e))).trim():\"\"}(e).trim();return\"=\"===r.substring(0,1)?r.substring(1).trim():r}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return\"[$(=Replace(GetObjectField(\".concat(e,\"),']',']]'))]\")}function y(e,r){var n=e.crossAllDimensions;return 2===r&&n?\"Above(Total \":\"Above(\"}function q(e){return void 0===e?\")\":\", 0, \".concat(e,\")\")}function b(e,r){return e?\"\".concat(r,'={\">=$(=Min(').concat(r,\"))<=$(=Max(\").concat(r,'))\"}'):\"\".concat(r,'={\"=Only({1}').concat(r,\")>='$(=MinString(\").concat(r,\"))' and Only({1}\").concat(r,\")<='$(=MaxString(\").concat(r,\"))'\\\"}\")}function D(e){var r=e.modifier,n=void 0===r?{}:r,t=e.dimensions,o=e.dimensionAndFieldList,i=e.funcComp,a=void 0===i?\"Sum\":i,s=e.valueComp,u=void 0===s?\"0\":s;if(!n.showExcludedValues)return\"\";if(t&&1===t.length){var l=b(c(t[0],o),d(0));return\"\".concat(a,\"({1<\").concat(l,\">}\").concat(u,\")\")}if(t&&2===t.length){var p=c(t[0],o),f=c(t[1],o),m=d(0),y=d(1),q=b(p,m),D=b(f,y);return\"\".concat(a,\"({1<\").concat(q,\",\").concat(D,\">}\").concat(u,\")\")}return\"\".concat(a,\"({1}\").concat(u,\")\")}function v(e){return\"\".concat(e,\"(\")}function g(e){var r=e.properties,n=e.layout;return a(r,\"qHyperCubeDef.qDimensions\",a(n,\"qHyperCube.qDimensionInfo\",[])).length}var h={isFullRange:p,getNumDimensions:g,getExpressionWithExcludedComp:function(e){var r=e.expression,n=e.modifier,t=e.dimensions,o=e.dimensionAndFieldList,i=e.treatMissingAsNull,a=l(m(r));if(!n.showExcludedValues)return a;var s=D({modifier:n,dimensions:t,dimensionAndFieldList:o}),u=i?\"\":\", 0\";if(t&&1===t.length){var c=d(0);return\"If(Count(\".concat(c,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}if(t&&2===t.length){var p=d(0),f=d(1);return\"If(Count(\".concat(p,\") * Count(\").concat(f,\") > 0, \").concat(a,\" + \").concat(s).concat(u,\")\")}return a},getRowNoComp:f,getNumStepComp:function(e,r){if(!p(e)){var n=e.steps;return\"number\"!=typeof n||Number.isNaN(n)?6:n}return f(e,r)},getAboveCompPrefix:y,getAboveCompSuffix:q,getAboveComp:function(e,r,n,t){return y(e,r)+n+q(t)},getFunctionPrefix:v,getFunctionSuffix:function(){return\")\"},getRangeComp:function(e,r){return v(e)+r+\")\"},getAggrComp:function(e,r,n){return\"Aggr(\".concat(e,\", \").concat(r,\", \").concat(n,\")\")},getExcludedComp:D,needDimension:function(e){var r=e.modifier,n=e.properties,t=e.layout;return 0===function(e){return void 0===e.primaryDimension?e.accumulationDimension:e.primaryDimension}(r)&&2===g({properties:n,layout:t})},getDimComp:function(e,r){var n=function(e){return e[arguments.length>1&&void 0!==arguments[1]?arguments[1]:0].qDef.qSortCriterias[0]}(e,r),t=d(r);if(!n.qSortByExpression&&!n.qSortByNumeric&&!n.qSortByAscii)return t;var o=[\"Descending\",\"Ascending\"],i=n.qSortByNumeric?\"(Numeric, \".concat(o[(n.qSortByNumeric+1)/2],\")\"):\"\",a=n.qSortByAscii?\"(Text, \".concat(o[(n.qSortByAscii+1)/2],\")\"):\"\";return n.qSortByNumeric&&n.qSortByAscii?\"(\".concat(t,\", \").concat(i,\", \").concat(a,\")\"):n.qSortByNumeric?\"(\".concat(t,\", \").concat(i,\")\"):n.qSortByAscii?\"(\".concat(t,\", \").concat(a,\")\"):t},simplifyExpression:m,extractInputExpression:function(e){var r=e.outputExpression;if(e.modifier){var n=r.indexOf(s);if(-1!==n){var t=r.indexOf(u);if(-1!==t)return r.substring(n+s.length,t)}}},initModifier:function(e,r){Object.keys(r).forEach((function(n){void 0===e[n]&&(e[n]=r[n])}))},isNumeric:c,isApplicable:function(e){var r=e.properties,n=e.layout,t=e.minDimensions,o=void 0===t?1:t,i=e.maxDimensions,a=void 0===i?2:i;if(!r&&!n)return!0;var s=g({properties:r,layout:n});return s>=o&&s<=a},getExpressionWithMarkers:l,canExtract:function(e){var r=e.indexOf(s),n=e.indexOf(u);return r>-1&&n>-1&&r<n},getDimDefWithWrapper:d,getFieldWithWrapper:function(e){var r=e?e.replace(/]/g,\"]]\"):e;return\"[\".concat(r,\"]\")}};function x(e){return(x=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var E=o.a.bind(null,!0),A={},C=Array.isArray;function I(e){return null!=e&&!Array.isArray(e)&&\"object\"===x(e)}function M(e){return void 0===e}function S(e,r){return\"function\"==typeof e[r]||\"$$\"===r.substring(0,2)||\"_\"===r.substring(0,1)}function L(e,r){var n,t=r.substring(1).split(\"/\").slice(0,-1);return t.forEach((function(r,o){if(o!==t.length){n=+r;var i=Number.isNaN(n)?{}:[];e[n||r]=M(e[n||r])?i:e[r],e=e[n||r]}})),e}function O(e,r){var n=!0;if(I(e)&&I(r))return Object.keys(e).length===Object.keys(r).length&&(Object.keys(e).forEach((function(t){O(e[t],r[t])||(n=!1)})),n);if(C(e)&&C(r)){if(e.length!==r.length)return!1;for(var t=0,o=e.length;t<o;t+=1)if(!O(e[t],r[t]))return!1;return!0}return e===r}A.generate=function(e,r,n){n=n||\"\";var t=[];return Object.keys(r).forEach((function(o){var i=function(e){return e?E({},{val:e}).val:e}(r[o]),a=e[o],s=\"\".concat(n,\"/\").concat(o);O(i,a)||S(r,o)||(M(a)?t.push({op:\"add\",path:s,value:i}):I(i)&&I(a)?t=t.concat(A.generate(a,i,s)):C(i)&&C(a)?t=t.concat(function(e,r,n){var t=[],o=e.slice(),i=-1;function a(e,r,n){if(e[n]&&M(e[n].qInfo))return null;if(e[n]&&e[n].qInfo.qId===r)return n;for(var t=0,o=e.length;t<o;t+=1)if(e[t]&&e[t].qInfo.qId===r)return t;return-1}if(O(r,o))return t;if(!M(r[0])&&M(r[0].qInfo))return t.push({op:\"replace\",path:n,value:r}),t;for(var s=o.length-1;s>=0;s-=1)-1===(i=a(r,o[s].qInfo&&o[s].qInfo.qId,s))?(t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(s)}),o.splice(s,1)):t=t.concat(A.generate(o[s],r[i],\"\".concat(n,\"/\").concat(s)));for(var u=0,l=r.length;u<l;u+=1)-1===(i=a(o,r[u].qInfo&&r[u].qInfo.qId))?(t.push({op:\"add\",path:\"\".concat(n,\"/\").concat(u),value:r[u]}),o.splice(u,0,r[u])):i!==u&&(t.push({op:\"move\",path:\"\".concat(n,\"/\").concat(u),from:\"\".concat(n,\"/\").concat(i)}),o.splice(u,0,o.splice(i,1)[0]));return t}(a,i,s)):t.push({op:\"replace\",path:\"\".concat(n,\"/\").concat(o),value:i}))})),Object.keys(e).forEach((function(o){M(r[o])&&!S(e,o)&&t.push({op:\"remove\",path:\"\".concat(n,\"/\").concat(o)})})),t},A.apply=function(e,r){r.forEach((function(r){var n,t=L(e,r.path),o=r.path.split(\"/\").splice(-1)[0],i=o&&Number.isNaN(+o)?t[o]:t[+o]||t,a=r.from?r.from.split(\"/\").splice(-1)[0]:null;if(\"/\"===r.path&&(t=null,i=e),\"add\"===r.op||\"replace\"===r.op)if(C(t))\"-\"===o&&(o=t.length),t.splice(+o,\"add\"===r.op?0:1,r.value);else if(C(i)&&C(r.value)){var s,u=r.value.slice();i.length=0,(s=i).push.apply(s,function(e){return function(e){if(Array.isArray(e)){for(var r=0,n=new Array(e.length);r<e.length;r++)n[r]=e[r];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}(u))}else if(I(i)&&I(r.value))n=i,Object.keys(n).forEach((function(e){Object.getOwnPropertyDescriptor(n,e).configurable&&!S(n,e)&&delete n[e]})),E(i,r.value);else{if(!t)throw new Error(\"Patchee is not an object we can patch\");t[o]=r.value}else if(\"move\"===r.op){var l=L(e,r.from);C(t)?t.splice(+o,0,l.splice(+a,1)[0]):(t[o]=l[a],delete l[a])}else\"remove\"===r.op&&(C(t)?t.splice(+o,1):delete t[o])}))},A.clone=function(e){return E({},e)},A.createPatch=function(e,r,n){var t={op:e.toLowerCase(),path:n};return\"move\"===t.op?t.from=r:void 0!==r&&(t.value=r),t},A.updateObject=function(e,r){Object.keys(e).length?A.apply(e,A.generate(e,r)):E(e,r)};var F=A,P=function(e,r,n){if(!e)return Promise.resolve();var t=F.generate(r,n);return o()(!0,r,n),t&&t.length?(t=t.map((function(e){return{qOp:e.op,qValue:JSON.stringify(e.value),qPath:e.path}})),e.applyPatches(t,!0)):Promise.resolve()},N=\"accumulation\";function V(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===N)return n[t]}function w(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===N)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var T={type:\"accumulation\",disabled:!1,accumulationDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullAccumulation:!1,steps:6,outputExpression:\"\"},H={translationKey:\"properties.modifier.accumulation\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getNumStepComp(n,u),f=h.getAboveComp(n,u,c,p),m=h.getRangeComp(\"RangeSum\",f);if(h.needDimension({modifier:n,properties:t,layout:o})){var d=h.getDimComp(l,1),y=h.getDimComp(l,0),q=h.getAggrComp(m,d,y);m=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,valueComp:q}):q}return m},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,T)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.accumulation.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(w(r,e),\".accumulationDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.accumulation.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(w(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.accumulation.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(w(r,e),\".fullAccumulation\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(w(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=V(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=V(r,e);return n&&!n.fullAccumulation}},showExcludedValues:{refFn:function(r){return\"\".concat(w(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(N))return!1;var i=V(r,e);return i&&!i.disabled}};return n}},j=\"movingAverage\";function _(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===j)return n[t]}function R(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===j)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var B={type:\"movingAverage\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,fullRange:!1,steps:6,outputExpression:\"\",nullSuppression:!1},k={translationKey:\"properties.modifier.movingAverage\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},generateExpression:function(e){var r,n=e.expression,t=e.modifier,o=e.properties,i=e.layout,s=e.numDimensions,u=e.dimensionAndFieldList;if(!t)return n;var l=s;void 0===l&&(l=h.getNumDimensions({properties:o,layout:i}));var c=a(o,\"qHyperCubeDef.qDimensions\",[]),p=t.showExcludedValues&&t.nullSuppression,f=h.getExpressionWithExcludedComp({expression:n,modifier:t,dimensions:c,dimensionAndFieldList:u,treatMissingAsNull:p}),m=h.getNumStepComp(t,l),d=h.getAboveComp(t,l,f,m);if(t.nullSuppression)r=h.getRangeComp(\"RangeAvg\",d);else{var y=h.getRangeComp(\"RangeSum\",d),q=function(e,r){var n=h.getRowNoComp(e,r);if(!h.isFullRange(e)){var t=e.steps,o=\"number\"!=typeof t||Number.isNaN(t)?6:t;return\"RangeMin(\".concat(o,\", \").concat(n,\")\")}return n}(t,l);r=\"\".concat(y,\" / \").concat(q)}var b=r;if(h.needDimension({modifier:t,properties:o,layout:i})){var D=h.getDimComp(c,1),v=h.getDimComp(c,0),g=h.getAggrComp(b,D,v);b=t.showExcludedValues?h.getExcludedComp({modifier:t,dimensions:c,dimensionAndFieldList:u,funcComp:\"Only\",valueComp:g}):g}return b},extractInputExpression:h.extractInputExpression,initModifier:function(e){h.initModifier(e,B)},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.movingAverage.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(R(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.movingAverage.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(R(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.movingAverage.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},fullRange:{refFn:function(r){return\"\".concat(R(r,e),\".fullRange\")},type:\"boolean\",translation:r.range||\"properties.modifier.range\",component:\"dropdown\",schemaIgnore:!0,defaultValue:!1,options:[{value:!0,translation:r.rangeFull||\"properties.modifier.range.full\"},{value:!1,translation:r.rangeCustom||\"properties.modifier.range.custom\"}]},steps:{refFn:function(r){return\"\".concat(R(r,e),\".steps\")},type:\"integer\",translation:r.rangeSteps||\"properties.modifier.range.steps\",schemaIgnore:!0,defaultValue:6,change:function(r){var n=_(r,e);if(n){var t=n.steps;n.steps=\"number\"!=typeof t||Number.isNaN(t)?6:Math.abs(t)}},show:function(r){var n=_(r,e);return n&&!n.fullRange}},showExcludedValues:{refFn:function(r){return\"\".concat(R(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0},nullSuppression:{refFn:function(r){return\"\".concat(R(r,e),\".nullSuppression\")},type:\"boolean\",translation:r.showNull||\"properties.dimensions.showNull\",schemaIgnore:!0,defaultValue:!1,inverted:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(j))return!1;var i=_(r,e);return i&&!i.disabled}};return n}},U=\"difference\";function G(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===U)return n[t]}function W(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===U)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}var $={type:\"difference\",disabled:!1,primaryDimension:0,crossAllDimensions:!1,showExcludedValues:!0,outputExpression:\"\"},z={translationKey:\"properties.modifier.difference\",needDimension:h.needDimension,isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=h.getAboveComp(n,u,c),f=\"\".concat(c,\" - \").concat(p);if(h.needDimension({modifier:n,properties:t,layout:o})){var m=h.getDimComp(l,1),d=h.getDimComp(l,0),y=h.getAggrComp(f,m,d);f=n.showExcludedValues?h.getExcludedComp({modifier:n,dimensions:l,dimensionAndFieldList:s,funcComp:\"Only\",valueComp:y}):y}return f},initModifier:function(e){Object.keys($).forEach((function(r){void 0===e[r]&&(e[r]=$[r])}))},enableTotalsFunction:function(){return!1},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.difference.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{primaryDimension:{refFn:function(r){return\"\".concat(W(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.difference.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},crossAllDimensions:{refFn:function(r){return\"\".concat(W(r,e),\".crossAllDimensions\")},type:\"boolean\",translation:r.crossAllDimensions||\"properties.modifier.crossAllDimensions\",title:{translation:r.crossAllDimensionsTooltip||\"properties.modifier.difference.crossAllDimensions.tooltip\"},schemaIgnore:!0,defaultValue:!1,show:function(e,r){return r.layout.qHyperCube.qDimensionInfo.length>1}},showExcludedValues:{refFn:function(r){return\"\".concat(W(r,e),\".showExcludedValues\")},type:\"boolean\",translation:r.showExcludedValues||\"properties.modifier.showExcludedValues\",schemaIgnore:!0,defaultValue:!0}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(U))return!1;var i=G(r,e);return i&&!i.disabled}};return n}},Y={CURRENT_SELECTION:0,SELECT_FIELD_VALUE:1,DISREGARD_SELECTION:2},J={ONE_DIMENSION:0,ALL_DIMENSIOANS:1,DISREGARD_ALL_DIMENSIONS:2},K=\"normalization\";function X(e,r){var n=a(e,r);if(n)for(var t=0;t<n.length;t++)if(n[t].type===K)return n[t]}function Q(e,r){var n=function(e,r){var n=a(e,r);if(!n)return-1;for(var t=0;t<n.length;t++)if(n[t].type===K)return t;return-1}(e,r);return n>-1?\"\".concat(r,\".\").concat(n):r}function Z(e,r){for(var n=0;n<e.length;n++)if(e[n].value===r)return n;return-1}function ee(e,r,n,t){var o=r.layout.qHyperCube.qDimensionInfo.length,i=[{value:J.ONE_DIMENSION,translation:n.dimensionalScopeOneDimension||\"properties.modifier.dimensionalScope.respectOneDimension\",tooltipTranslation:n.dimensionalScopeOneDimensionTooltip||\"properties.modifier.dimensionalScope.respectOneDimension.tooltip\"},{value:J.ALL_DIMENSIOANS,translation:n.dimensionalScopeAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\"),tooltipTranslation:n.dimensionalScopeAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"respectAllDimensions\":\"respectDimension\",\".tooltip\")},{value:J.DISREGARD_ALL_DIMENSIONS,translation:n.dimensionalScopeDisregardAllDimensions||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\"),tooltipTranslation:n.dimensionalScopeDisregardAllDimensionsTooltip||\"properties.modifier.dimensionalScope.\".concat(2===o?\"disregardAllDimensions\":\"disregardDimension\",\".tooltip\")}];return i=function(e,r,n){if(e<2){var t=Z(r,0);r.splice(t,1)}return r}(o,i),function(e,r,n){if(0===e){var t=Z(r,1);r.splice(t,1)}return r}(X(e,t).selectionScope,i)}function re(e,r,n){var t=[{value:Y.CURRENT_SELECTION,translation:r.selectionScopeCurrentSelection||\"properties.modifier.selectionScope.currentSelection\"},{value:Y.SELECT_FIELD_VALUE,translation:r.selectionScopeSpecificValue||\"properties.modifier.selectionScope.selectAField\"},{value:Y.DISREGARD_SELECTION,translation:r.selectionScopeTotal||\"properties.modifier.selectionScope.total\"}];return function(e,r,n){if(1===e){var t=Z(r,0);r.splice(t,1)}return r}(X(e,n).dimensionalScope,t)}var ne={type:\"normalization\",disabled:!1,primaryDimension:0,outputExpression:\"\",dimensionalScope:J.DISREGARD_ALL_DIMENSIONS,selectionScope:Y.DISREGARD_SELECTION};function te(e){return 2===e?\"{1}\":\"\"}function oe(e,r,n){return 1===e?\"{$<\".concat(h.getFieldWithWrapper(r),\"={'\").concat(n,\"'}>}\"):\"\"}function ie(e,r){return 0===e&&r>1||2===e?\"Total\":\"\"}function ae(e,r,n){return 0===e&&r>1?\"<\".concat(h.getDimDefWithWrapper(n),\">\"):\"\"}var se={translationKey:\"properties.modifier.normalization\",needDimension:function(){return!0},isApplicable:function(e){var r=e.properties,n=e.layout;return h.isApplicable({properties:r,layout:n,minDimensions:1,maxDimensions:2})},extractInputExpression:h.extractInputExpression,generateExpression:function(e){var r=e.expression,n=e.modifier,t=e.properties,o=e.layout,i=e.numDimensions,s=e.dimensionAndFieldList;if(!n)return r;var u=i;void 0===u&&(u=h.getNumDimensions({properties:t,layout:o}));var l=a(t,\"qHyperCubeDef.qDimensions\",[]),c=h.getExpressionWithExcludedComp({expression:r,modifier:n,dimensions:l,dimensionAndFieldList:s}),p=n.selectionScope,f=n.dimensionalScope;return function(e,r,n,t,o,i,a){var s=te(r),u=oe(r,n,t),l=\"\"===s&&\"\"===u?\"\":s||u,c=ie(o,i),p=ae(o,i,a),f=function(e){for(var r=[],n=0;n<e;n++)r[n]=h.getDimDefWithWrapper(n);return r.join(\", \")}(i);return\"\".concat(e,\"/ Sum(\").concat(l,\" \").concat(c).concat(p,\" Aggr(\").concat(l,\" \").concat(e,\", \").concat(f,\"))\")}(c,p,n.field,n.value,f,u,n.primaryDimension)},initModifier:function(e){Object.keys(ne).forEach((function(r){void 0===e[r]&&(e[r]=ne[r])}))},updateModifier:function(e,r){1===(r.qDimensions?r.qDimensions.length:0)&&0===e.dimensionalScope&&(e.dimensionalScope=2)},enableTotalsFunction:function(){return!0},propertyPanelDef:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={type:\"items\",items:{disclaimer:{component:\"text\",translation:r.disclaimer||\"properties.modifier.normalization.disclaimer\",show:function(e,r){return!h.isApplicable({properties:r.properties})}},settings:{type:\"items\",items:{selectionScope:{refFn:function(r){return\"\".concat(Q(r,e),\".selectionScope\")},type:\"string\",translation:r.modifierSelectionScope||\"properties.modifier.selectionScope\",title:{translation:r.modifierSelectionScopeTooltip||\"properties.modifier.selectionScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:Y.DISREGARD_SELECTION,options:function(n){return re(n,r,e)}},field:{refFn:function(r){return\"\".concat(Q(r,e),\".field\")},type:\"string\",component:\"expression-with-dropdown\",translation:\"Common.Field\",defaultValue:\"\",dropdownOnly:!0,options:function(e,r,n){return n.app.getFieldList().then((function(e){return e.map((function(e){return{label:e.qName,value:e.qName}}))}))},show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},value:{refFn:function(r){return\"\".concat(Q(r,e),\".value\")},type:\"string\",ref:\"value\",component:\"string\",translation:\"properties.value\",expression:\"optional\",show:function(r){return X(r,e).selectionScope===Y.SELECT_FIELD_VALUE}},dimensionalScope:{refFn:function(r){return\"\".concat(Q(r,e),\".dimensionalScope\")},type:\"string\",translation:r.modifierDimensionalScope||\"properties.modifier.dimensionalScope\",title:{translation:r.modifierDimensionalScopeTooltip||\"properties.modifier.dimensionalScope.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:J.DISREGARD_ALL_DIMENSIONS,supportTooltip:!0,options:function(n,t){return ee(n,t,r,e)}},primaryDimension:{refFn:function(r){return\"\".concat(Q(r,e),\".primaryDimension\")},type:\"integer\",translation:r.primaryDimension||\"properties.modifier.primaryDimension\",title:{translation:r.primaryDimensionTooltip||\"properties.modifier.normalization.primaryDimension.tooltip\"},component:\"dropdown\",schemaIgnore:!0,defaultValue:1,options:function(e,r){return r.layout.qHyperCube.qDimensionInfo.map((function(e,r){return{value:r,label:e.qGroupFallbackTitles[0]}}))},show:function(r,n){return(X(r,e).dimensionalScope||0)===J.ONE_DIMENSION&&n.layout.qHyperCube.qDimensionInfo.length>1}}},show:function(e,r){return h.isApplicable({properties:r.properties})}}},show:function(r,n,t){var o=t.ext.support.modifiers;if(!Array.isArray(o)||-1===o.indexOf(K))return!1;var i=X(r,e);return i&&!i.disabled}};return n},getDisregardSelectionComp:te,getFieldSelectionComp:oe,getTotalComp:ie,getSelectedDimComp:ae},ue={getExpression:function(e){return a(e,\"qDef.base.qDef\")||a(e,\"qDef.qDef\")},getExpressionRef:function(e){return a(e,\"qDef.base.qDef\")?\"qDef.base.qDef\":\"qDef.qDef\"},getLibraryIdRef:function(e){return a(e,\"qDef.base.qLibraryId\")?\"qDef.base.qLibraryId\":\"qLibraryId\"},getLibraryId:function(e){return a(e,\"qDef.base.qLibraryId\")||a(e,\"qLibraryId\")},getLabelRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabel\":\"qDef.qLabel\"},getLabelExpressionRef:function(e){return a(e,\"qDef.base\")?\"qDef.base.qLabelExpression\":\"qDef.qLabelExpression\"}},le={initBase:function(e,r){(r||le.isValid(e))&&(i(e,\"qDef.base.qDef\",a(e,\"qDef.qDef\")),i(e,\"qDef.base.qLibraryId\",a(e,\"qLibraryId\")),i(e,\"qDef.base.qLabel\",a(e,\"qDef.qLabel\")),i(e,\"qDef.base.qLabelExpression\",a(e,\"qDef.qLabelExpression\")))},restoreBase:function(e){le.isValid(e)&&(i(e,\"qDef.qDef\",a(e,\"qDef.base.qDef\")),i(e,\"qLibraryId\",a(e,\"qDef.base.qLibraryId\")),i(e,\"qDef.qLabel\",a(e,\"qDef.base.qLabel\")),i(e,\"qDef.qLabelExpression\",a(e,\"qDef.base.qLabelExpression\")),a(e,\"qDef.qAggrFunc\")&&a(e,\"qDef.base.qAggrFunc\")&&i(e,\"qDef.qAggrFunc\",a(e,\"qDef.base.qAggrFunc\")),delete e.qDef.base)},isValid:function(e){var r=a(e,\"qDef.base.qDef\"),n=a(e,\"qDef.base.qLibraryId\");return void 0!==r||void 0!==n}},ce=le;function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}var fe={accumulation:H,movingAverage:k,difference:z,normalization:se},me=(r.default={modifiers:fe,apply:de,applyModifiers:ye,cleanUpMeasure:qe,destroy:function(e){e&&me[e.id]&&me[e.id].masterItemSubscriber&&(me[e.id].masterItemSubscriber&&me[e.id].masterItemSubscriber.unsubscribe(),delete me[e.id])},hasActiveModifiers:be,getActiveModifier:De,initBase:ce.initBase,isSupportedModifiers:function(e){return Array.isArray(e)&&e.some((function(e){return fe[e]}))},isApplicableSupportedModifiers:function(e){var r=e.modifierTypes,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return fe[e]&&fe[e].isApplicable({properties:n,layout:t})}))},measureBase:ue,limitedSorting:function(e){var r=e.measures,n=e.properties,t=e.layout,o=!1,i=!1;return r.forEach((function(e){var r=he(e);Se({modifiers:r,properties:n,layout:t})&&(o=!0,i=i||Ne({modifiers:r,properties:n,layout:t}))})),o&&!i},ifEnableTotalsFunction:ve},{});function de(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.model,n=e.properties,t=e.isSnapshot,i=void 0!==t&&t,s=e.masterItem;me[r.id]=me[r.id]||{isFirstTime:!0};var u=me[r.id].isFirstTime;if(me[r.id].isFirstTime=!1,n&&\"object\"===pe(n))return ye({model:r,properties:n});var l=r?r.layout:void 0,c=a(l,\"qSelectionInfo.qInSelections\");if(i||c)return Promise.resolve(!1);var p=a(l,\"qHyperCube.qMeasureInfo\"),f=me[r.id].lastReloadTime;if(me[r.id].lastReloadTime=a(r,\"app.layout.qLastReloadTime\"),be({measures:p,layout:l})){var m=function(e){var r=e.measures,n=e.layout,t=e.lastReloadTime;return a(e.model,\"app.layout.qLastReloadTime\")!==t&&function(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Me({measure:e,properties:n,layout:t})}))}({measures:r,layout:n})}({measures:p,layout:l,model:r,lastReloadTime:f});return m||function(e){var r=e.measures,n=e.layout,t=e.masterItem,o=e.isFirstTime;return!!Array.isArray(r)&&(o||t||r.some((function(e){return function(e){var r=e.measure,n=e.layout;return Se({modifiers:he(r),layout:n})?!r.base:!!r.base}({measure:e,layout:n})})))}({measures:p,layout:l,masterItem:s,isFirstTime:u})?r.getEffectiveProperties().then((function(e){var n=o()(!0,{},e);Ee(n);var t=Ve(n);return Le({model:r}).then((function(o){return Oe({libraryIds:t,model:r}).then((function(t){return m&&function(e){var r=e.properties;ge(r).forEach((function(e){return function(e){var r=e.measure;if(Me({measure:r,properties:e.properties})){var n=0,t=r.qDef.modifiers;Array.isArray(t)&&t.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(n++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(n>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");var t=fe[e.type].extractInputExpression({outputExpression:r.qDef.qDef,modifier:e});void 0!==t&&Ce(r)&&h.simplifyExpression(r.qDef.base.qDef)!==h.simplifyExpression(t)&&(r.qDef.base.qDef=t)}}))}}({measure:e,properties:r})}))}({properties:n}),ye({model:r,oldProperties:e,properties:n,runUpdateIfChange:!0,masterItem:s,libraryItemsProps:t,dimensionAndFieldList:o})}))}))})):Promise.resolve(!1)}return function(e){return!!Array.isArray(e)&&e.some((function(e){return\"object\"===pe(e.base)}))}(p)?r.getEffectiveProperties().then((function(e){return function(e){var r=e.model,n=e.properties,t=Ve(n);return we({model:r,libraryIds:t}).then((function(){var e=o()(!0,{},n);return ge(n).forEach((function(e){return qe(e)})),Pe({oldProperties:e,newProperties:n,model:r})}))}({model:r,properties:e})})):Promise.resolve(!1)}function ye(e){var r=e.model,n=e.oldProperties,t=e.properties,i=e.measures,s=e.runUpdateIfChange,u=void 0!==s&&s,l=e.masterItem,c=e.libraryItemsProps,p=e.dimensionAndFieldList;void 0===n&&(n=u?o()(!0,{},t):t),Ee(t);var f=Ve(t);return we({model:r,libraryIds:f,masterItem:l}).then((function(){return function(e){var r=e.measures,n=e.properties,t=e.model,i=e.libraryItemsProps,s=e.dimensionAndFieldList;if(r||(r=ge(n)),!r.length)return Promise.resolve();if(!be({measures:r,properties:n}))return r.forEach((function(e){return qe(e)})),Promise.resolve();var u=i?void 0:Ve(n);return Le({model:t,dimensionAndFieldList:s}).then((function(e){return Oe({libraryIds:u,model:t,libraryItemsProps:i}).then((function(t){r.forEach((function(r){Se({modifiers:r.qDef.modifiers,properties:n})?(function(e){var r=e.measure,n=e.properties,t=e.libraryItemsProps,i=e.dimensionAndFieldList,s=0;ce.isValid(r)||ce.initBase(r,!0);var u=r.qDef,l=u.modifiers,c=u.base;Array.isArray(l)&&l.forEach((function(e){if(\"object\"===pe(e)&&!e.disabled){if(s++,\"object\"!==pe(fe[e.type]))throw new Error('Modifier \"'.concat(e.type,'\" is not available'));if(s>1)throw new Error(\"More than 1 modifier on a measure! (not yet supported)\");fe[e.type].initModifier(e);var u=r.qLibraryId||c&&c.qLibraryId;u?function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList,a=e.libraryItemsProps[e.libraryId],s=a.qMeasure.qDef,u=fe[n.type].generateExpression({expression:s,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=u,r.qDef.qDef=n.outputExpression,(r.qDef.qLabel||a.qMeasure.qLabel)&&(r.qDef.qLabel=a.qMeasure.qLabel),(r.qDef.qLabelExpression||a.qMeasure.qLabelExpression)&&(r.qDef.qLabelExpression=a.qMeasure.qLabelExpression),r.qDef.quarantine&&r.qDef.quarantine.qNumFormat&&a.qMeasure.qNumFormat&&(r.qDef.qNumFormat=a.qMeasure.qNumFormat,r.qDef.isCustomFormatted=a.qMeasure.isCustomFormatted),delete r.qLibraryId,r.qDef.coloring=a.qMeasure.coloring,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,libraryId:u,properties:n,libraryItemsProps:t,dimensionAndFieldList:i}):function(e){var r=e.measure,n=e.modifier,t=e.properties,i=e.dimensionAndFieldList;\"function\"==typeof fe[n.type].updateModifier&&fe[n.type].updateModifier(n,t.qHyperCubeDef);var a=ue.getExpression(r),s=fe[n.type].generateExpression({expression:a,modifier:n,properties:t,dimensionAndFieldList:i});n.outputExpression=s,r.qDef.qDef=n.outputExpression,r.qDef.base.qLabelExpression?r.qDef.qLabelExpression=r.qDef.base.qLabelExpression:r.qDef.qLabel=r.qDef.base.qLabel||a,n.base=o()(!0,{},r.qDef.base)}({measure:r,modifier:e,properties:n,dimensionAndFieldList:i}),function(e){var r=a(e,\"qDef.qAggrFunc\");\"Expr\"!==r||ve(e)?\"None\"!==r?delete e.qDef.base.qAggrFunc:\"None\"===r&&ve(e)&&\"Expr\"===e.qDef.base.qAggrFunc&&(e.qDef.qAggrFunc=\"Expr\",delete e.qDef.base.qAggrFunc):(e.qDef.qAggrFunc=\"None\",e.qDef.base.qAggrFunc=\"Expr\")}(r)}}))}({measure:r,properties:n,libraryItemsProps:t,dimensionAndFieldList:e}),Ae(r)):qe(r)}))}))}))}({measures:i,properties:t,model:r,libraryItemsProps:c,dimensionAndFieldList:p}).then((function(){return u?Pe({oldProperties:n,newProperties:t,model:r}):Promise.resolve(!1)}))}))}function qe(e){!function(e){var r=he(e);return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&!fe[e.type]}))}(e)?ce.restoreBase(e):delete e.qDef.base,e.qDef.coloring&&delete e.qDef.coloring,Ae(e)}function be(e){var r=e.measures,n=e.properties,t=e.layout;return!!Array.isArray(r)&&r.some((function(e){return Se({modifiers:he(e),properties:n,layout:t})}))}function De(e){var r=he(e);if(Array.isArray(r))for(var n=0;n<r.length;n++){var t=r[n];if(fe[t.type]&&!t.disabled)return t}}function ve(e){var r=De(e);return!r||fe[r.type].enableTotalsFunction(e)}function ge(e){return a(e,\"qHyperCubeDef.qMeasures\",[]).concat(a(e,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\",[]))}function he(e){return e.modifiers||e.qDef&&e.qDef.modifiers}function xe(e){return a(e,\"outputExpression.qValueExpression.qExpr\")||a(e,\"outputExpression\")}function Ee(e){ge(e).forEach((function(e){return function(e){var r=De(e);r&&(void 0!==r.outputExpression&&xe(r)!==e.qDef.qDef?delete e.qDef.base:!ce.isValid(e)&&r.base&&(e.qDef.base=o()(!0,{},r.base)))}(e)}))}function Ae(e){var r=he(e);Array.isArray(r)&&r.forEach((function(r){\"object\"===pe(r)&&(r.disabled||!fe[r.type]&&xe(r)!==e.qDef.qDef)&&(r.disabled=!0,delete r.base)}))}function Ce(e){return e.base||e.qDef&&e.qDef.base}function Ie(e){var r=Ce(e);return e.qLibraryId||r&&r.qLibraryId}function Me(e){var r=e.measure,n=e.properties,t=e.layout;return!Ie(r)&&Se({modifiers:he(r),properties:n,layout:t})}function Se(e){var r=e.modifiers,n=e.properties,t=e.layout,o={};return Array.isArray(r)&&r.some((function(e){return!(\"object\"!==pe(e)||e.disabled||!fe[e.type])&&(void 0===o[e.type]&&(o[e.type]=fe[e.type].isApplicable({properties:n,layout:t})),o[e.type])}))}function Le(e){var r=e.model,n=e.dimensionAndFieldList;if(n)return Promise.resolve(n);var t=[],o={},i=r.app.getDimensionList().then((function(e){o.dimensionList=e}));t.push(i);var a=r.app.getFieldList().then((function(e){o.fieldList=e}));return t.push(a),Promise.all(t).then((function(){return o}))}function Oe(e){var r=e.libraryIds,n=e.model,t=e.libraryItemsProps;if(t)return Promise.resolve(t);var o=r.measureLibraryIds,i=r.dimensionLibraryIds,a={},s=[];return o.forEach((function(e){var r=n.app.getMeasure(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),i.forEach((function(e){var r=n.app.getDimension(e).then((function(r){return r.getProperties().then((function(r){a[e]=r}))}));s.push(r)})),Promise.all(s).then((function(){return a}))}function Fe(e,r){if(\"\"!==r||-1===[\"qFmt\",\"qDec\",\"qThou\"].indexOf(e))return r}function Pe(e){var r=e.oldProperties,n=e.newProperties,t=e.model,o=JSON.stringify(a(r,\"qHyperCubeDef.qMeasures\"),Fe)!==JSON.stringify(a(n,\"qHyperCubeDef.qMeasures\"),Fe)||JSON.stringify(a(r,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Fe)!==JSON.stringify(a(n,\"qHyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures\"),Fe);return o?function(e){var r=e.model,n=e.oldProperties,t=e.newProperties,o=r.layout;return o&&!o.qHasSoftPatches&&!o.qExtendsId&&a(o,\"qMeta.privileges\",[]).indexOf(\"update\")>-1?r.setProperties(t):P(r,n,t)}({model:t,oldProperties:r,newProperties:n}).then((function(){return o})):Promise.resolve(o)}function Ne(e){var r=e.modifiers,n=e.properties,t=e.layout;return Array.isArray(r)&&r.some((function(e){return\"object\"===pe(e)&&!e.disabled&&fe[e.type]&&fe[e.type].needDimension({modifier:e,properties:n,layout:t})}))}function Ve(e){var r=ge(e),n=[],t=[],o=!1;return r.forEach((function(r){var t=he(r);if(Se({modifiers:t,properties:e})){var i=Ie(r);i&&n.push(i),o=o||Ne({modifiers:t,properties:e})}})),a(e,\"qHyperCubeDef.qDimensions\",[]).forEach((function(e){var r=e.qLibraryId;r&&t.push(r)})),{measureLibraryIds:n,dimensionLibraryIds:t}}function we(e){var r=e.model,n=e.libraryIds;return!e.masterItem&&n&&(n.measureLibraryIds.length||n.dimensionLibraryIds.length)?(me[r.id].masterItemSubscriber=me[r.id].masterItemSubscriber||function(e){var r=e.model,n=e.callback,t={},o={},i={},s={dimension:[\"qDim.qFieldDefs\"],measure:[\"qMeasure.qDef\",\"qMeasure.qLabel\",\"qMeasure.qLabelExpression\",\"qMeasure.coloring\",\"qMeasure.qNumFormat\",\"qMeasure.isCustomFormatted\"]};function u(e){var r={},n=a(e,\"qInfo.qType\");return n&&s[n]&&s[n].forEach((function(n){r[n]=a(e,n)})),JSON.stringify(r)}function l(e){var r=e.qInfo.qId;if(t[r]){var o=u(e);t[r].properties!==o&&(t[r].properties=o,\"function\"==typeof n&&t[r].enabled&&n(e)),t[r].enabled=!0}}function c(e,n){return r.app[n](e).then((function(r){t[e]={listener:r.layoutSubscribe(l),enabled:!1,properties:u(r.layout)}}))}return{subscribe:function(e){var n=e.measureLibraryIds,a=e.dimensionLibraryIds,s=[];return function(e){var r=e.dimensionLibraryIds;o={},e.measureLibraryIds.forEach((function(e){o[e]=!0})),i={},r.forEach((function(e){i[e]=!0}))}({measureLibraryIds:n,dimensionLibraryIds:a}),Object.keys(t).forEach((function(e){o[e]||i[e]||(t[e].listener.dispose(),delete t[e])})),r.app&&(Object.keys(o).forEach((function(e){o[e]&&!t[e]&&s.push(c(e,\"getMeasure\"))})),Object.keys(i).forEach((function(e){i[e]&&!t[e]&&s.push(c(e,\"getDimension\"))}))),Promise.all(s)},unsubscribe:function(){Object.keys(t).forEach((function(e){t[e].listener.dispose()})),t={}}}}({model:r,callback:function(e){return de({model:r,masterItem:e}).then((function(){return r.app.clearUndoBuffer()}))}}),me[r.id].masterItemSubscriber.subscribe(n)):Promise.resolve()}}])},function(e,r,n){\"use strict\";function t(e){var r=function e(r){var n,t=r;return t>9?(n=65+t-10)>90&&(n+=6):t=\"\".concat(t).charCodeAt(0),[48,111,79,105,73,108].indexOf(n)>-1?e(t+1):String.fromCharCode(n)}(e%62),n=Math.floor(e/62);return n>0?t(n)+r:r}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.r(r);var i={getValue:function(e,r,n){if(null==e||null==r)return n;for(var t=r.split(\".\"),o=e,i=0;i<t.length;++i){var a=t[i];if(\"\"!==a){if(void 0===o[a]||null===o[a])return n;o=o[a]}}return o},setValue:function(e,r,n){if(null!=e&&null!=r){for(var t=r.split(\".\"),o=t[t.length-1],i=e,a=0;a<t.length-1;++a){var s=t[a];void 0!==i[s]&&null!==i[s]||(i[s]=Number.isNaN(+t[a+1])?{}:[]),i=i[s]}void 0!==n?i[o]=n:delete i[o]}},isEmpty:function(e){return 0===Object.keys(e).length&&e.constructor===Object},isAtomicValue:function(e){return/boolean|number|string/.test(o(e))},generateId:function(){return t(Math.round(99e11*Math.random()+1e11)).replace(/\\W/g,\"\")}};function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return s(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function c(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return t;return-1}return-1}var p={isOrderedSubset:function(e,r){if(!(e&&r&&e.length&&r.length))return!1;var n=e.indexOf(r[0]);if(-1!==n){for(var t=0;t<r.length;t++){var o=e.indexOf(r[t]);if(n>o)return!1;n=o}return!0}return!1},indexAdded:function(e,r){var n;for(n=0;n<e.length;++n)e[n]>=0&&e[n]>=r&&++e[n];e.push(r)},indexRemoved:function(e,r){var n,t=0;for(n=0;n<e.length;++n)e[n]>r?--e[n]:e[n]===r&&(t=n);return e.splice(t,1),t},findItemByPropertyValue:function(e,r,n){if(e){for(var t=0;t<e.length;t++)if(e[t][r]===n)return e[t];return null}return null},findIndexByPropertyValue:c};var f=n(1),m=n.n(f);var d={addDimensions:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.dimensions).push.apply(r,a(t.qDimensions));var s,u=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qDimensions\");u&&(s=o.excludedDimensions).push.apply(s,a(u))},addMeasures:function(e){var r,n=e.exportFormat,t=e.qHyperCubeDef,o=n.data[0];(r=o.measures).push.apply(r,u(t.qMeasures));var a,s=i.getValue(t,\"qLayoutExclude.qHyperCubeDef.qMeasures\");s&&(a=o.excludedMeasures).push.apply(a,u(s))},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.qHyperCubeDef,t=r.data[0];n.qInterColumnSortOrder||(n.qInterColumnSortOrder=[]),t.interColumnSortOrder=n.qInterColumnSortOrder.concat();var o=i.getValue(n,\"qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder\");o&&p.isOrderedSubset(o,t.interColumnSortOrder)&&(t.interColumnSortOrder=o.concat())},copyProperties:function(e){var r=e.exportFormat,n=e.properties;Object.keys(n).forEach((function(e){r.properties[e]=n[e]}))},updateLayoutExclude:function(e){var r=e.exportFormat,n=e.properties;n.qLayoutExclude||(n.qLayoutExclude={}),n.qLayoutExclude.disabled&&(Object.keys(n.qLayoutExclude.disabled).forEach((function(e){r.properties.hasOwnProperty(e)||(r.properties[e]=n.qLayoutExclude.disabled[e])})),delete n.qLayoutExclude.disabled),n.qLayoutExclude.changed&&(!function(e){Object.keys(e.qLayoutExclude.changed).forEach((function(r){e.qLayoutExclude.changed[r].to===i.getValue(e,r)&&i.setValue(e,r,e.qLayoutExclude.changed[r].from)}))}(n),delete n.qLayoutExclude.changed),n.qLayoutExclude.quarantine&&!i.isEmpty(n.qLayoutExclude.quarantine)||delete n.qLayoutExclude},storeMeasuresModifiers:function(e){e.forEach((function(e){m.a.cleanUpMeasure(e),e.qDef.modifiers&&(e.store={modifiers:e.qDef.modifiers},delete e.qDef.modifiers)}))}};function y(e,r,n){var t,o,a=i.getValue(e,r);if(!i.isAtomicValue(a))try{if((o=(o=(t=JSON.stringify(a)).match(/:\\{/g))?o.length:0)>2)return;a=JSON.parse(t)}catch(e){return}i.getValue(e,\"qLayoutExclude.quarantine\")||i.setValue(e,\"qLayoutExclude.quarantine\",{});var s=i.getValue(e,\"qLayoutExclude.quarantine\");s[n]||(s[n]={}),s[n][r]=a}var q=n(0),b=n.n(q);function D(e,r){var n=b()(!0,{},r,e);return i.getValue(n,\"qOtherTotalSpec.qOtherCounted\")||i.setValue(n,\"qOtherTotalSpec.qOtherCounted\",{qv:\"10\"}),i.getValue(n,\"qOtherTotalSpec.qOtherLimit\")||i.setValue(n,\"qOtherTotalSpec.qOtherLimit\",{qv:\"0\"}),n.hasOwnProperty(\"othersLabel\")||(n.othersLabel=\"Others\"),n}function v(e,r){return b()(!0,{},r,e)}function g(e,r,n){return\"function\"==typeof e?e(r):Number.isNaN(+e)?n:e}var h=Math.pow(2,53)-1;function x(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return E(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function A(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,r){if(!e)return;if(\"string\"==typeof e)return C(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,r)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var I={importCommonProperties:function(e,r,n){var t=\"masterobject\"===i.getValue(r,\"properties.qInfo.qType\")?\"masterobject\":i.getValue(n,\"qInfo.qType\");i.setValue(e,\"qInfo.qType\",t),e.visualization=n.visualization},copyPropertyIfExist:function(e,r,n){r.hasOwnProperty(e)&&(n[e]=r[e])},copyPropertyOrSetDefault:function(e,r,n,t){r.hasOwnProperty(e)?n[e]=r[e]:n[e]=t},getDefaultDimension:function(){return{qDef:{autoSort:!0,cId:\"\",othersLabel:\"Others\"},qLibraryId:\"\",qNullSuppression:!1,qOtherLabel:\"Others\",qOtherTotalSpec:{qOtherLimitMode:\"OTHER_GE_LIMIT\",qOtherMode:\"OTHER_OFF\",qOtherSortMode:\"OTHER_SORT_DESCENDING\",qSuppressOther:!1}}},getDefaultMeasure:function(){return{qDef:{autoSort:!0,cId:\"\",numFormatFromTemplate:!0},qLibraryId:\"\",qTrendLines:[]}},addDimensions:function(e){var r,n=e.exportFormat,t=e.maxDimensions,o=e.minDimensions,i=e.newHyperCubeDef,a=e.defaultDimension,s=n.data[0];for(r=0;r<s.dimensions.length;++r){var u=D(s.dimensions[r],a);i.qDimensions.length<t?i.qDimensions.push(u):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(u)}for(r=0;r<s.excludedDimensions.length;++r){var l=D(s.excludedDimensions[r],a);i.qDimensions.length<o?i.qDimensions.push(l):i.qLayoutExclude.qHyperCubeDef.qDimensions.push(l)}},addMeasures:function(e){var r,n=e.exportFormat,t=e.maxMeasures,o=e.minMeasures,i=e.newHyperCubeDef,a=e.defaultMeasure,s=n.data[0];for(r=0;r<s.measures.length;++r){var u=v(s.measures[r],a);i.qMeasures.length<t?i.qMeasures.push(u):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(u)}for(r=0;r<s.excludedMeasures.length;++r){var l=v(s.excludedMeasures[r],a);i.qMeasures.length<o?i.qMeasures.push(l):i.qLayoutExclude.qHyperCubeDef.qMeasures.push(l)}},getMaxMinDimensionMeasure:function(e){var r=e.exportFormat,n=e.dataDefinition,t=void 0===n?{}:n,o=r.data[0],i=t.dimensions||{max:0},a=t.measures||{max:0},s=g(a.max,o.dimensions.length,h),u=g(a.min,o.dimensions.length,0);return{maxDimensions:g(i.max,s,h),minDimensions:g(i.min,u,0),maxMeasures:s,minMeasures:u}},setInterColumnSortOrder:function(e){var r=e.exportFormat,n=e.newHyperCubeDef,t=r.data[0],o=n.qDimensions.length+n.qMeasures.length;n.qInterColumnSortOrder=t.interColumnSortOrder.concat();var i=n.qInterColumnSortOrder.length;if(i!==o)for(n.qLayoutExclude&&(n.qLayoutExclude.qHyperCubeDef.qInterColumnSortOrder=t.interColumnSortOrder.concat());i!==o;)i<o?(p.indexAdded(n.qInterColumnSortOrder,i),++i):(--i,p.indexRemoved(n.qInterColumnSortOrder,i))},createNewProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.hypercubePath,o={qLayoutExclude:{disabled:{},quarantine:{}}};return Object.keys(r.properties).forEach((function(e){\"qLayoutExclude\"===e?r.properties[e].quarantine&&(o.qLayoutExclude.quarantine=b()(!0,{},r.properties[e].quarantine)):\"qHyperCubeDef\"===e&&t?i.setValue(o,\"\".concat(t,\".qHyperCubeDef\"),r.properties.qHyperCubeDef):n.hasOwnProperty(e)||-1!==[\"qMetaDef\",\"descriptionExpression\",\"labelExpression\"].indexOf(e)||function(e,r){return\"components\"===r&&Array.isArray(e[r])&&e[r].some((function(e){return\"general\"===e.key}))}(r.properties,e)?o[e]=r.properties[e]:o.qLayoutExclude.disabled[e]=r.properties[e]})),null===(o=b()(!0,{},n,o)).components&&(o.components=[]),o},shouldInitLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=r.data[0];return a.dimensions.length>n&&n>0||a.measures.length>o&&o>0||a.excludedDimensions.length>0&&a.dimensions.length+a.excludedDimensions.length>t||a.excludedMeasures.length>0&&a.measures.length+a.excludedMeasures.length>i||!o&&a.measures.length>0||!n&&a.dimensions.length>0},initLayoutExclude:function(e){var r=e.exportFormat,n=e.maxDimensions,t=e.minDimensions,o=e.maxMeasures,i=e.minMeasures,a=e.newHyperCubeDef,s=r.data[0];a.qLayoutExclude||(a.qLayoutExclude={}),a.qLayoutExclude.qHyperCubeDef||(a.qLayoutExclude.qHyperCubeDef={}),(s.dimensions.length>n&&n>0||s.excludedDimensions&&s.excludedDimensions.length&&s.dimensions.length+s.excludedDimensions.length>t)&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[])),(s.measures.length>o&&o>0||s.excludedMeasures&&s.excludedMeasures.length&&s.measures.length+s.excludedMeasures.length>i)&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!o&&s.measures.length&&(a.qLayoutExclude.qHyperCubeDef.qMeasures||(a.qLayoutExclude.qHyperCubeDef.qMeasures=[])),!n&&s.dimensions.length&&(a.qLayoutExclude.qHyperCubeDef.qDimensions||(a.qLayoutExclude.qHyperCubeDef.qDimensions=[]))},updateDimensionsOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.dimensions&&\"function\"==typeof n.dimensions.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=x(o.qDimensions);o.qDimensions=[],a.forEach((function(e){o.qDimensions.push(e),n.dimensions.added(e,r)}))}},updateMeasuresOnAdded:function(e){var r=e.newProperties,n=e.dataDefinition,t=e.hypercubePath;if(n.measures&&\"function\"==typeof n.measures.added){var o=i.getValue(r,t||\"\").qHyperCubeDef,a=A(o.qMeasures);o.qMeasures=[],a.forEach((function(e){o.qMeasures.push(e),n.measures.added(e,r)}))}},restoreMeasuresModifiers:function(e){var r=e.measures,n=e.modifierTypes;r&&n&&m.a.isSupportedModifiers(n)&&r.forEach((function(e){e.store&&e.store.modifiers&&(e.qDef.modifiers=e.store.modifiers),delete e.store}))}};function M(e,r){var n=i.getValue(e,\"qLayoutExclude.quarantine\",{})[r];return!!n&&(Object.keys(n).forEach((function(r){i.setValue(e,r,n[r])})),delete e.qLayoutExclude.quarantine[r],!0)}var S={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r={data:[],properties:{}},n=0;n<e;++n)r.data.push({dimensions:[],measures:[],excludedDimensions:[],excludedMeasures:[],interColumnSortOrder:[]});return r}(),a=r.qProperty,s=i.getValue(a,n||\"\"),u=s.qHyperCubeDef;return u.qInterColumnSortOrder||(u.qInterColumnSortOrder=[]),d.addDimensions({exportFormat:o,qHyperCubeDef:u}),d.addMeasures({exportFormat:o,qHyperCubeDef:u}),d.setInterColumnSortOrder({exportFormat:o,qHyperCubeDef:u}),delete u.qLayoutExclude,d.copyProperties({exportFormat:o,properties:a}),n&&(o.properties.qHyperCubeDef=u,delete s.qHyperCubeDef),d.updateLayoutExclude({exportFormat:o,properties:a}),t||d.storeMeasuresModifiers(o.properties.qHyperCubeDef.qMeasures),Array.isArray(o.properties.filters)&&(y(o.properties,\"filters\",\"storedFilters\"),delete o.properties.filters),o.properties.qHyperCubeDef.qContextSetExpression&&(y(o.properties,\"qHyperCubeDef.qContextSetExpression\",\"storedFilters\"),o.properties.qHyperCubeDef.qContextSetExpression=\"\"),o.properties.qHyperCubeDef.qDynamicScript&&o.properties.qHyperCubeDef.qDynamicScript.length&&(y(o.properties,\"qHyperCubeDef.qDynamicScript\",\"dynamicScript\"),o.properties.qHyperCubeDef.qDynamicScript=[]),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=void 0===n?{}:n,o=e.dataDefinition,a=void 0===o?{}:o,s=e.defaultPropertyValues,u=void 0===s?{}:s,l=e.hypercubePath,c=e.extension,p=e.supportedFilters,f=void 0===p||p,m=e.isHCModifierSupported,d=void 0===m||m,y={qChildren:[]},q=I.createNewProperties({exportFormat:r,initialProperties:t,hypercubePath:l}),b=i.getValue(t,l||\"\").qHyperCubeDef,D=i.getValue(q,l||\"\").qHyperCubeDef,v=I.getMaxMinDimensionMeasure({exportFormat:r,dataDefinition:a}),g=v.maxDimensions,h=v.minDimensions,x=v.maxMeasures,E=v.minMeasures,A=u.defaultDimension,C=void 0===A?I.getDefaultDimension():A,S=u.defaultMeasure,L=void 0===S?I.getDefaultMeasure():S;D.qDimensions.length=0,D.qMeasures.length=0,I.shouldInitLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E})&&I.initLayoutExclude({exportFormat:r,maxDimensions:g,minDimensions:h,maxMeasures:x,minMeasures:E,newHyperCubeDef:D}),I.addDimensions({exportFormat:r,maxDimensions:g,minDimensions:h,newHyperCubeDef:D,defaultDimension:C}),I.addMeasures({exportFormat:r,maxMeasures:x,minMeasures:E,newHyperCubeDef:D,defaultMeasure:L}),I.updateDimensionsOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.updateMeasuresOnAdded({newProperties:q,dataDefinition:a,hypercubePath:l}),I.setInterColumnSortOrder({exportFormat:r,newHyperCubeDef:D}),I.copyPropertyIfExist(\"qMaxStackedCells\",b,D),I.copyPropertyIfExist(\"qNoOfLeftDims\",b,D),I.copyPropertyOrSetDefault(\"qInitialDataFetch\",b,D,[{qTop:0,qLeft:0,qWidth:0,qHeight:0}]),I.copyPropertyOrSetDefault(\"qMode\",b,D,\"S\"),I.copyPropertyOrSetDefault(\"qReductionMode\",b,D,\"N\"),I.copyPropertyOrSetDefault(\"qSortbyYValue\",b,D),I.copyPropertyOrSetDefault(\"qIndentMode\",b,D),I.copyPropertyOrSetDefault(\"qShowTotalsAbove\",b,D),I.importCommonProperties(q,r,t),y.qProperty=q;var O=i.getValue(c||{},\"support.modifiers\");return I.restoreMeasuresModifiers({measures:D.qMeasures,modifierTypes:O}),f&&M(y.qProperty,\"storedFilters\"),\"S\"===D.qMode&&d&&M(y.qProperty,\"dynamicScript\"),y}},L={cellBackgroundColor:!0,cellForegroundColor:!0,colorByAlternative:!0,colorByExpression:!0,tooltip:!0,urlLabel:!0,url:!0};function O(e,r,n,t){r=r||[];var o=c(e,t,n),i=c(r,t,n);if(-1!==o&&-1===i){var a=e.splice(o,1);r.push(a[0])}return r}function F(e,r){return e.length!==r}var P={create:function(e,r){if(!e||!L[e])throw new Error(\"Attribute Expressions Util: ID required\");var n={};return r&&Object.keys(r).forEach((function(e){n[e]=r[e]})),n.id=e,n.qAttribute=!0,n},moveByIdFromGroup:function(e,r,n,t,o){n=n||\"qAttributeExpressions\",o=o||\"id\";for(var i=0;i<e.length;i++){var a=e[i][n],s=r.length;if(O(a,r,t,o),F(r,s))return r}return r},IDMAP:{CELL_BACKGROUND_COLOR:\"cellBackgroundColor\",CELL_FOREGROUND_COLOR:\"cellForegroundColor\",COLOR_BY_ALTERNATIVE:\"colorByAlternative\",COLOR_BY_EXPRESSION:\"colorByExpression\",TOOLTIP:\"tooltip\",CELL_LINK_LABEL:\"urlLabel\",CELL_LINK_URL:\"url\"}};var N={getNumDimensions:function(e){return i.getValue(e,\"qHyperCubeDef.qDimensions.length\",0)},getNumMeasures:function(e){return i.getValue(e,\"qHyperCubeDef.qMeasures.length\",0)},wrapFieldName:function(e){return e.split(\" \").length>1&&\"=\"!==e[0]&&\"[\"!==e[0]?\"[\".concat(e,\"]\"):e},getItemLabel:function(e){return e.label||e.name}},V={colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>0&&N.getNumMeasures(e)<=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>0},expression:function(e){return N.getNumMeasures(e)>=1}}},w={colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},T={scatterplot:w,\"sn-scatter-plot\":w,piechart:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumMeasures(e)>=1}}},linechart:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)<=1},expression:function(e){return N.getNumMeasures(e)>=1}}},map:{colorModeOptions:{primary:function(){return!0},dimension:function(e){return N.getNumDimensions(e)>=1},multiColor:function(e){return N.getNumMeasures(e)>1},measure:function(e){return N.getNumDimensions(e)>=1},expression:function(e){return N.getNumDimensions(e)>=1}}},distributionplot:{colorModeOptions:{primary:function(){return!0},dimension:function(){return!0},multiColor:function(){return!1},measure:function(){return!0},expression:function(e){return N.getNumDimensions(e)>=1}}}};function H(e,r,n){if(Array.isArray(e[r])){var t=p.findIndexByPropertyValue(e[r],\"id\",n);t>=0&&e[r].splice(t,1)}else e[r]=[]}function j(e,r){var n=P.IDMAP.COLOR_BY_ALTERNATIVE;e.forEach((function(e){H(e,\"qAttributeDimensions\",n),H(e,\"qAttributeExpressions\",n)})),r.forEach((function(e){H(e,\"qAttributeDimensions\",n),H(e,\"qAttributeExpressions\",n)}))}function _(e,r){if(r){var n=\"=\"===r.charAt(0);e.color.altLabel=n?{qStringExpression:{qExpr:r.substr(1)}}:r}}function R(e){var r=e.properties,n=e.isDimension,t=e.dimensions,o=e.excludedDimensions,a=e.measures,s=e.label;j(t,o);var u=t[t.length-1];if(u){var l=n?i.getValue(r,\"color.byDimDef\"):i.getValue(r,\"color.byMeasureDef\"),c=i.getValue(r,\"color.formatting.qNumFormat\"),f=i.getValue(r,\"color.formatting.isCustomFormatted\");if(l){var m=P.create(P.IDMAP.COLOR_BY_ALTERNATIVE);switch(l.type){case\"expression\":!function(e){var r=e.attributeExpression,n=e.label,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;r.label=n||t.label,o?r.qDef=t.key:(r.qExpression=t.key,i&&(r.qNumFormat=i,r.isCustomFormatted=a)),r.matchMeasure=t.activeMeasureIndex,r.label&&\"=\"===r.label.charAt(0)&&(r.labelExpRef=\"color.altLabel\")}({attributeExpression:m,label:s,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f});break;case\"libraryItem\":!function(e){var r=e.attributeExpression,n=e.measures,t=e.item,o=e.isDimension,i=e.qNumFormat,a=e.isCustomFormatted;o||(r.matchMeasure=p.findIndexByPropertyValue(n,\"qLibraryId\",t.key),i&&(r.qNumFormat=i,r.isCustomFormatted=a)),void 0!==t.expression?r.qExpression=t.expression:r.qLibraryId=t.key,r.colorMapRef=t.key}({attributeExpression:m,measures:a,item:l,isDimension:n,qNumFormat:c,isCustomFormatted:f})}n?(m.qSortBy={qSortByAscii:1},u.qAttributeDimensions.push(m)):u.qAttributeExpressions.push(m)}}}function B(e,r,n,t){var o,i,a,s={};switch(e){case\"dimension\":n.qLibraryId?(s.type=\"dimension\",s.name=n.qLibraryId,s.id=n.qLibraryId):(s.type=\"field\",r?(s.name=n.label||n.qDef,s.id=n.qDef):(s.name=n.qDef.qFieldDefs[0],s.label=(a=n.qDef).qLabelExpression?a.qLabelExpression:a.qFieldLabels&&a.qFieldLabels[0]?a.qFieldLabels[0]:a.qFieldDefs[0]));break;case\"measure\":(o=function(e,r){return r?e.qLibraryId:m.a.measureBase.getLibraryId(e)}(n,r))?(s.type=\"measure\",s.name=o,s.id=o,(i=function(e,r){return m.a.hasActiveModifiers({measures:[e]})&&r?e.qDef.qDef:void 0}(n,t))&&(s.expression=i)):(s.type=\"expression\",r?(s.name=n.label||n.qExpression,s.id=n.qExpression):(s.name=n.qDef.qDef,s.label=function(e){var r=e.qDef;return r.qLabelExpression?r.qLabelExpression:r.qLabel?r.qLabel:r.qDef}(n)));break;default:throw new Error('columnType should be \"dimension\" or \"measure\"')}return s}var k={useMasterNumberFormat:function(e){e.quarantine={qNumFormat:e.qNumFormat||{},isCustomFormatted:e.isCustomFormatted||!1},e.qNumFormat=null,e.isCustomFormatted=void 0}};function U(e,r,n,t){var o=n?\"expression\":r.type,i=e.color,a=i.mode,s=N.getItemLabel(r);switch(_(e,s||\"\"),o){case\"field\":a=\"byDimension\",i.byDimDef={label:r.label||N.wrapFieldName(r.name),key:N.wrapFieldName(r.name),type:\"expression\",activeDimensionIndex:r.activeDimensionIndex};break;case\"expression\":a=\"byMeasure\",i.byMeasureDef={label:n||s,key:n||r.name,type:\"expression\",activeMeasureIndex:r.activeMeasureIndex};break;case\"dimension\":a=\"byDimension\",i.byDimDef={label:r.name,key:r.id,type:\"libraryItem\",activeDimensionIndex:r.activeDimensionIndex};break;case\"measure\":a=\"byMeasure\",i.byMeasureDef={label:r.name,key:r.id,expression:r.expression,type:\"libraryItem\",activeMeasureIndex:r.activeMeasureIndex},i.formatting&&k.useMasterNumberFormat(i.formatting)}t||(i.auto=!1,i.mode=a)}function G(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=n[function(e,r,n){var t=i.getValue(r,\"visualization\"),o=n.split(\".\"),a=Number(o[1]),s=i.getValue(r,\"layers.\".concat(a,\".type\"));return 2===e.length&&\"map\"===t&&\"point\"===s}(n,e,r)?0:n.length-1],o=P.IDMAP.COLOR_BY_ALTERNATIVE,a=p.findItemByPropertyValue(t.qAttributeDimensions,\"id\",o);return U(e,B(\"dimension\",!!a,a||t)),!!a}function W(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byDimDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeDimensionIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"color.byDimDef\");t.activeDimensionIndex=Math.min(t.activeDimensionIndex,n.length-1);var o=B(\"dimension\",!1,n[t.activeDimensionIndex]);o.activeDimensionIndex=t.activeDimensionIndex,U(e,o)}(e,r);else if(function(e){return!e||!e.key}(a)&&G(e,r))return;R({properties:e,isDimension:!0,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byDimDef.label\")})}function $(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]),a=i.getValue(e,\"color.byMeasureDef\");if(a&&_(e,a.label),function(e){return!!(e&&e.activeMeasureIndex>-1)}(a))!function(e,r){var n=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),t=i.getValue(e,\"color.byMeasureDef\");if(t.activeMeasureIndex=Math.min(t.activeMeasureIndex,n.length-1),t.activeMeasureIndex>-1){var o=B(\"measure\",!1,n[t.activeMeasureIndex],!0);o.activeMeasureIndex=t.activeMeasureIndex,U(e,o)}}(e,r);else if(function(e,r){return(!e||!e.key)&&r.length>0}(a,t)&&function(e,r){var n=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),t=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),o=n[n.length-1],a=P.IDMAP.COLOR_BY_ALTERNATIVE,s=p.findItemByPropertyValue(o.qAttributeExpressions,\"id\",a);return U(e,B(\"measure\",!!s,s||t[0])),!!s}(e,r))return;R({properties:e,isDimension:!1,dimensions:n,excludedDimensions:o,measures:t,label:i.getValue(e,\"color.byMeasureDef.label\")})}var z={changeProperty:function(e,r,n){i.setValue(e,r,n),i.isAtomicValue(n)&&function(e,r,n){var t=e.qLayoutExclude;t&&(t.changed||(t.changed={}),t.changed[r]={from:i.getValue(e,r),to:n})}(e,r,n)},getCanColorBy:function(e,r){var n={primary:!0};if(e){var t=(T[r]||V).colorModeOptions||V.colorModeOptions;n.byDimension=t.dimension(e),n.byMeasure=t.measure(e),n.byMultiple=t.multiColor(e),n.byExpression=t.expression(e)}return n},shouldUpdateColorBy:function(e){var r=e.canColorBy,n=e.autoColor,t=e.colorMode,o=e.dimensions;return!(r[t]&&!n&&(\"byDimension\"!==t&&\"byMeasure\"!==t||!o.length))},updateColorBy:function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"color.auto\"),o=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),a=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),s=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);t?j(o,s):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions;return!r&&\"byDimension\"===n&&t.length>0}({auto:t,colorMode:n,dimensions:o})?W(e,r):function(e){var r=e.auto,n=e.colorMode,t=e.dimensions,o=e.measures,a=e.properties,s=i.getValue(a,\"visualization\");return!(r||\"byMeasure\"!==n||!t.length||\"map\"!==s&&!o.length)}({auto:t,colorMode:n,dimensions:o,measures:a,properties:e})?$(e,r):function(e,r){var n=i.getValue(e,\"color.mode\"),t=i.getValue(e,\"\".concat(r,\"qDimensions\"),[]),o=i.getValue(e,\"\".concat(r,\"qMeasures\"),[]),a=i.getValue(e,\"\".concat(r,\"qLayoutExclude.qHyperCubeDef.qDimensions\"),[]);\"byMultiple\"===n&&o.length<2&&i.setValue(e,\"color.mode\",\"primary\"),j(t,a)}(e,r)},deleteTotalMode:function(e){e.forEach((function(e){e.qOtherTotalSpec&&\"qTotalMode\"in e.qOtherTotalSpec&&delete e.qOtherTotalSpec.qTotalMode}))},shouldAddColorByExpression:function(e){var r=e.shouldUpdateColorBy,n=e.properties,t=i.getValue(n,\"qHyperCubeDef.qMeasures\",[]),o=i.getValue(n,\"color.mode\",\"\");return!r&&\"byExpression\"===o&&t.length>0},addColorByExpression:function(e){var r=i.getValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",[]),n=i.getValue(e,\"color.colorExpression\",\"\");r.splice(0,0,{qExpression:n,id:\"colorByExpression\"}),i.setValue(e,\"qHyperCubeDef.qMeasures.0.qAttributeExpressions\",r)},switchToAutoColor:function(e){i.setValue(e,\"color.mode\",\"primary\"),i.setValue(e,\"color.auto\",!0)},shouldSwitchToColorPersistent:function(e){var r=i.getValue(e,\"qHyperCubeDef.qDimensions\",[]),n=i.getValue(e,\"color.persistent\",!1);return r.length>1&&!n}};var Y={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=S.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),i=o.data[0],a=i.dimensions.concat(i.excludedDimensions),s=i.measures.concat(i.excludedMeasures),u=P.IDMAP,l=u.COLOR_BY_ALTERNATIVE,c=u.COLOR_BY_EXPRESSION;return P.moveByIdFromGroup(a,[],\"qAttributeDimensions\",l),P.moveByIdFromGroup(a,[],\"qAttributeExpressions\",l),P.moveByIdFromGroup(s,[],\"qAttributeExpressions\",c),o},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,a=e.hypercubePath,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=S.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:a,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty,f=i.getValue(p,\"visualization\"),m=i.getValue(p,\"qHyperCubeDef.qDimensions\",[]),d=i.getValue(p,\"color.mode\",\"\"),y=i.getValue(p,\"color.auto\",\"\"),q=z.getCanColorBy(p,f),b=z.shouldUpdateColorBy({canColorBy:q,autoColor:y,colorMode:d,dimensions:m});return q[d]?z.shouldAddColorByExpression({shouldUpdateColorBy:b,properties:p})&&z.addColorByExpression(p):z.switchToAutoColor(p),b&&z.updateColorBy(p,\"qHyperCubeDef.\"),z.shouldSwitchToColorPersistent(p)&&z.changeProperty(p,\"color.persistent\",!0),z.deleteTotalMode(m),c}};var J=[\"bar\",\"marker\",\"line\"];var K={handleAutoMinMax:function(e){var r=e.initialProperties,n=e.properties;r.measureAxis&&void 0===r.measureAxis.autoMinMax?M(n,\"unsupportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis):M(n,\"supportedAutoMinMax\")||b()(n.measureAxis,r.measureAxis)},handleMeasuresAxis:function(e){var r,n=e.exportFormat,t=e.initialProperties,o=e.properties,i=e.measureType,a=o.qHyperCubeDef,s=o.measureAxis;if(function(e){var r=e.exportFormat,n=e.initialProperties;return!(!r.properties.measureAxes||n.measureAxes||!n.measureAxis||void 0===n.measureAxis.autoMinMax)}({exportFormat:n,initialProperties:t})){var u=function(e){var r=[];return e.qMeasures.length>0&&e.qMeasures.forEach((function(e){if(e.qDef.series){var n=e.qDef.series,t=n.type,o=n.axis;r[o]||(r[o]={axis:o,type:{line:0,marker:0,bar:0,total:0}}),J.includes(t)&&r[o].type[t]++,r[o].type.total++}})),r}(a);u.length?(i&&(r=u.filter((function(e){return e.type[i]>0})).sort((function(e,r){return r.type[i]-e.type[i]}))),r&&r.length||(r=u.sort((function(e,r){return r.type.total-e.type.total}))),r&&r[0]&&b()(s,n.properties.measureAxes[r[0].axis])):b()(s,n.properties.measureAxes[0])}},setInterColumnSortOrder:function(e){if(e.qDimensions.length>1){var r=e.qInterColumnSortOrder.indexOf(0);if(0!==r){var n=e.qInterColumnSortOrder[0];e.qInterColumnSortOrder[0]=0,e.qInterColumnSortOrder[r]=n}}}};var X={exportProperties:function(e){var r=e.propertyTree,n=e.hypercubePath,t=e.viewDataMode,o=e.supportedAutoMinMax,i=void 0===o||o,a=Y.exportProperties({propertyTree:r,hypercubePath:n,viewDataMode:t}),s=a.properties;return i?(y(s,\"measureAxis.min\",\"supportedAutoMinMax\"),y(s,\"measureAxis.max\",\"supportedAutoMinMax\")):(y(s,\"measureAxis.min\",\"unsupportedAutoMinMax\"),y(s,\"measureAxis.max\",\"unsupportedAutoMinMax\")),a},importProperties:function(e){var r=e.exportFormat,n=e.initialProperties,t=e.dataDefinition,o=e.defaultPropertyValues,i=e.hypercubePath,a=e.measureType,s=e.extension,u=e.supportedFilters,l=e.isHCModifierSupported,c=Y.importProperties({exportFormat:r,initialProperties:n,dataDefinition:t,defaultPropertyValues:o,hypercubePath:i,extension:s,supportedFilters:u,isHCModifierSupported:l}),p=c.qProperty;return K.handleAutoMinMax({initialProperties:n,properties:p}),K.handleMeasuresAxis({exportFormat:r,initialProperties:n,properties:p,measureType:a}),K.setInterColumnSortOrder(p.qHyperCubeDef),c}};function Q(e,r,n){return\"qLayoutExclude.quarantine.\".concat(e,\".\").concat(r,\".\").concat(n)}function Z(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,a);if(void 0!==s){var u=i.getValue(o,\"qDef.cId\");u||(u=i.generateId(),i.setValue(o,\"qDef.cId\",u));var l=Q(n,t,u);i.setValue(r,l,s),i.setValue(o,a,void 0)}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}function ee(e){var r=e.properties,n=e.arrayPath,t=e.quarantineName,o=e.arrayName,a=e.itemPath;i.getValue(r,n,[]).forEach((function(e){return function(e){var r=e.properties,n=e.quarantineName,t=e.arrayName,o=e.item,a=e.itemPath,s=i.getValue(o,\"qDef.cId\");if(s){var u=Q(n,t,s),l=i.getValue(r,u);void 0!==l&&(i.setValue(o,a,l),i.setValue(r,u,void 0))}}({properties:r,quarantineName:t,arrayName:o,item:e,itemPath:a})}))}var re={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalColoring\",arrayName:\"measures\",itemPath:\"qDef.conditionalColoring\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",itemPath:\"qDef.conditionalColoring\",arrayName:\"measures\",quarantineName:\"conditionalColoring\"})}};var ne={quarantine:function(e){Z({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),Z({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})},unquarantine:function(e){ee({properties:e,arrayPath:\"qHyperCubeDef.qMeasures\",quarantineName:\"conditionalShowHide\",arrayName:\"measures\",itemPath:\"qCalcCondition\"}),ee({properties:e,arrayPath:\"qHyperCubeDef.qDimensions\",quarantineName:\"conditionalShowHide\",arrayName:\"dimensions\",itemPath:\"qCalcCondition\"})}};r.default={hypercube:S,colorChart:Y,axisChart:X,quarantineProperty:y,unquarantineProperty:M,quarantineArrayProp:Z,unquarantineArrayProp:ee,conditionalColoring:re,conditionalShow:ne}}])}));","function onChangeCalcCond(data) {\n const baseCube = data?.qHyperCubeDef;\n const generatedCube = data?.qUndoExclude?.box?.qHyperCubeDef;\n if (baseCube && generatedCube) {\n generatedCube.qCalcCond = baseCube.qCalcCond;\n generatedCube.qCalcCondition = baseCube.qCalcCondition;\n }\n}\n\nexport default {\n onChangeCalcCond,\n};\n","import { getValue } from 'qlik-chart-modules';\nimport isInteger from '@qlik/common/extra/is-integer';\nimport histogramUtils from './histogram-utils';\nimport propsLogic from './histogram-properties-logic';\n\nconst maxCountMode = 'maxCount';\nconst sizeMode = 'size';\n\nfunction inAdvancedMode(data) {\n return !(data.bins && data.bins.auto);\n}\n\nfunction showBinCount(data) {\n return inAdvancedMode(data) && data.bins.binMode === maxCountMode;\n}\n\nexport default function propertyDefinition(env) {\n const { translator } = env;\n\n const measureAxis = {\n uses: 'axis.picasso.measureAxis',\n items: {\n label: {\n type: 'string',\n expression: 'optional',\n expressionType: 'StringExpression',\n ref: 'measureAxis.label',\n defaultValue: '',\n translation: 'Common.Label',\n placeholderTranslation: 'Visualization.Histogram.MeasureAxisLabel',\n },\n },\n };\n\n const dimensionAxis = {\n uses: 'axis.picasso.dimensionAxis',\n items: {\n othersGroup: {\n items: {\n label: {\n show: false, // SUI-2470\n },\n },\n },\n },\n };\n\n const theme = env.anything.sense.theme;\n const defaultColor = () => {\n const { primary } = theme.getDataColorSpecials();\n const palette = theme.getDataColorPickerPalettes()[0].colors;\n const index = palette.indexOf(primary);\n return { index: index === -1 ? Math.min(6, palette.length - 1) : index };\n };\n\n const colors = {\n translation: 'properties.colors',\n type: 'items',\n items: {\n colors: {\n classification: {\n section: 'color',\n tags: ['simple'],\n },\n type: 'items',\n items: {\n barColor: {\n ref: 'color.bar.paletteColor',\n translation: 'properties.histogram.barColor',\n type: 'object',\n component: 'color-picker',\n dualOutput: true,\n defaultValue: defaultColor,\n },\n },\n },\n },\n };\n\n const presentation = {\n type: 'items',\n translation: 'properties.presentation',\n items: {\n gridLines: {\n type: 'items',\n snapshot: {\n tid: 'property-gridLines',\n },\n items: {\n showGridLines: {\n ref: 'gridlines.auto',\n type: 'boolean',\n translation: 'properties.gridLine.spacing',\n component: 'switch',\n defaultValue: true,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'Common.Custom',\n },\n ],\n },\n gridSpacing: {\n ref: 'gridlines.spacing',\n type: 'number',\n component: 'dropdown',\n defaultValue: 2,\n options: [\n {\n value: 0,\n translation: 'properties.gridLine.noLines',\n },\n {\n value: 2,\n translation: 'properties.gridLine.medium',\n },\n {\n value: 3,\n translation: 'properties.gridLine.narrow',\n },\n ],\n show(data) {\n return data.gridlines && !data.gridlines.auto;\n },\n },\n },\n },\n showLabels: {\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'properties.dataPoints.labelmode',\n component: 'switch',\n defaultValue: false,\n options: [\n {\n value: true,\n translation: 'Common.Auto',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n snapshot: {\n tid: 'property-dataPoints',\n },\n },\n },\n };\n\n const simpleLabels = {\n items: {\n labels: {\n items: {\n header: {\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n pointLabels: {\n component: 'checkbox',\n ref: 'dataPoint.showLabels',\n type: 'boolean',\n translation: 'Simple.Label.Value',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n },\n dimensionTitle: {\n component: 'checkbox',\n ref: 'dimensionAxis.show',\n type: 'string',\n translation: 'Simple.Label.XAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.dimensionAxis.show === 'labels' || data.dimensionAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.dimensionAxis.show = value ? 'labels' : 'all';\n },\n },\n },\n measureTitle: {\n component: 'checkbox',\n ref: 'measureAxis.show',\n type: 'string',\n translation: 'Simple.Label.YAxis.Hide',\n defaultValue: 'all',\n show(props) {\n return props.qHyperCubeDef.qDimensions?.length;\n },\n convertFunctions: {\n get(getter, def, args, data) {\n return data.measureAxis.show === 'labels' || data.measureAxis.show === 'none';\n },\n set(value, setter, def, args, data) {\n data.measureAxis.show = value ? 'labels' : 'all';\n },\n },\n },\n },\n },\n },\n };\n\n const settings = {\n uses: 'settings',\n items: {\n simpleLabels,\n presentation,\n colors,\n measureAxis,\n dimensionAxis,\n },\n };\n\n const addons = {\n type: 'items',\n component: 'expandable-items',\n translation: 'properties.addons',\n items: {\n dataHandling: {\n uses: 'dataHandling',\n items: {\n calcCond: {\n uses: 'calcCond',\n change: propsLogic.onChangeCalcCond,\n },\n },\n },\n refLines: {\n uses: 'reflines',\n items: {\n colorBackground: {\n show: false,\n },\n },\n },\n },\n };\n\n const dimensions = {\n translation: 'Common.Fields',\n alternativeTranslation: 'properties.alternative.fields',\n items: {\n dimensionLimits: {\n show: false,\n items: {\n otherMode: {\n readOnly: false,\n },\n otherSortMode: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherCounted: {\n show(itemData /* , handler */) {\n return getValue(itemData, 'qOtherTotalSpec.qOtherMode') === 'OTHER_COUNTED';\n },\n },\n otherLimitMode: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n otherLimit: {\n show(itemData /* , handler */) {\n const limitMode = getValue(itemData, 'qOtherTotalSpec.qOtherMode');\n return limitMode === 'OTHER_ABS_LIMITED' || limitMode === 'OTHER_REL_LIMITED';\n },\n },\n calculatedAgainstMessage: {\n show: true,\n label() {\n const measureName = translator.get('properties.histogram.staticMeasureName');\n return translator.get('Properties.DimensionLimits.CalculatedAgainst', measureName);\n },\n },\n },\n },\n others: {\n show: false,\n items: {\n suppressOther: {\n defaultValue: true,\n },\n },\n },\n },\n };\n\n const data = {\n uses: 'data',\n items: {\n dimensions,\n },\n };\n\n const customBinMode = {\n ref: 'bins.binMode',\n type: 'string',\n component: 'dropdown',\n options: [\n {\n value: maxCountMode,\n translation: 'Visualization.Histogram.Binning.NumberOfBinsOption',\n },\n {\n value: sizeMode,\n translation: 'Visualization.Histogram.Binning.BarWidthOption',\n },\n ],\n defaultValue: maxCountMode,\n show(data) {\n return inAdvancedMode(data);\n },\n };\n\n const bins = {\n translation: 'Visualization.Histogram.Bins',\n type: 'items',\n component: 'items',\n items: {\n auto: {\n ref: 'bins.auto',\n translation: 'Visualization.Histogram.Binning',\n component: 'switch',\n type: 'boolean',\n defaultValue: true,\n undefinedValue: false,\n options: [\n {\n value: true,\n translation: 'Visualization.Histogram.Binning.Auto',\n },\n {\n value: false,\n translation: 'Visualization.Histogram.Binning.Custom',\n },\n ],\n },\n autoMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.AutoDescription',\n show(data /* , handler, args */) {\n return !inAdvancedMode(data);\n },\n },\n\n mode: customBinMode,\n\n binCount: {\n ref: 'bins.binCount',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n translation: 'Visualization.Histogram.Binning.BinCount',\n defaultValue: '',\n convertFunctions: {\n get(getter, definition, args) {\n const binCount = args.properties.bins.binCount;\n\n if (histogramUtils.isEmpty(binCount)) {\n return histogramUtils.getDerivedBinCount(args.layout);\n }\n\n return getter(null) || '';\n },\n set(value, setter, definition) {\n setter(definition.type, value, undefined);\n },\n },\n show: showBinCount,\n },\n binMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountRounding',\n show(data /* , handler, args */) {\n const binCount = getValue(data, 'bins.binCount');\n const isExpression = typeof binCount === 'object';\n\n return (\n showBinCount(data) &&\n !histogramUtils.isEmpty(binCount) &&\n !isExpression &&\n !isInteger(binCount) &&\n binCount > 0\n );\n },\n },\n minBinMessage: {\n component: 'text',\n translation: 'Visualization.Histogram.Binning.BinCountMin',\n show(data) {\n const binCount = getValue(data, 'bins.binCount');\n\n return !!(showBinCount(data) && !histogramUtils.isEmpty(binCount) && binCount <= 0);\n },\n },\n binSize: {\n ref: 'bins.binSize',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n defaultValue: 10,\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.BinSize',\n },\n\n offset: {\n ref: 'bins.offset',\n type: 'number',\n expression: 'optional',\n expressionType: 'ValueExpression',\n show(data) {\n return inAdvancedMode(data) && data.bins.binMode === sizeMode;\n },\n translation: 'Visualization.Histogram.Binning.Offset',\n },\n\n distinct: {\n ref: 'bins.countDistinct',\n type: 'boolean',\n defaultValue: false,\n component: 'checkbox',\n translation: 'Visualization.Histogram.CountDistinct',\n },\n },\n };\n\n return {\n type: 'items',\n component: 'accordion',\n items: {\n data,\n bins,\n addons,\n settings,\n },\n };\n}\n","export default {\n type: 'items',\n component: 'accordion',\n items: {\n data: {\n uses: 'data',\n items: {\n dimensions: {\n translation: 'Common.Fields',\n },\n },\n },\n },\n};\n","/**\n * Implementation details\n */\n\nfunction getExportRawDataOptions(menu, cell, exportDialog) {\n menu.addItem({\n translation: 'contextMenu.export',\n tid: 'export',\n select() {\n exportDialog.show(cell.model, '/qUndoExclude/box/qHyperCubeDef');\n },\n });\n\n return Promise.resolve();\n}\n\nexport default {\n getExportRawDataOptions,\n};\n","import conversion from 'qlik-object-conversion';\nimport pp from './histogram-properties';\nimport exploreProperties from './histogram-explore-properties';\nimport histogramExport from './histogram-export';\nimport data from './histogram-data';\n\nexport default function ext(env) {\n if (!env.anything?.sense) {\n return undefined;\n }\n\n return {\n definition: pp(env),\n softDefinition: exploreProperties,\n support: {\n cssScaling: false,\n snapshot: true,\n export: true,\n exportData: true,\n sharing: true,\n viewData: true,\n },\n importProperties: (exportFormat, initialProperties, extension, hypercubePath) => {\n const dataDefinition = data(env);\n extension.mapProperties();\n const defaultPropertyValues = {\n defaultDimension: extension.getDefaultDimensionProperties(),\n defaultMeasure: extension.getDefaultMeasureProperties(),\n };\n return conversion.hypercube.importProperties({\n exportFormat,\n initialProperties,\n dataDefinition,\n defaultPropertyValues,\n hypercubePath,\n });\n },\n exportProperties(propertyTree, hyperCubePath, viewDataMode) {\n return conversion.hypercube.exportProperties({ propertyTree, hyperCubePath, viewDataMode });\n },\n requireNumericDimension: true,\n exportTableProperties(propertyTree) {\n // the hypercube that will be used for \"building\" the table is under `qUndoExclude.box.qHyperCubeDef`\n const hypercubePath = 'qUndoExclude.box';\n return conversion.hypercube.exportProperties({ propertyTree, hypercubePath });\n },\n getExportRawDataOptions: histogramExport.getExportRawDataOptions,\n };\n}\n","import {\n useConstraints,\n useEffect,\n useElement,\n useModel,\n usePromise,\n useRenderState,\n useSelections,\n useState,\n useStaleLayout,\n} from '@nebula.js/stardust';\nimport $ from 'jquery';\nimport locale from '@qlik/common/locale';\nimport picassoSetup from '@qlik/common/picasso/picasso-setup';\nimport useLasso from '@qlik/common/nebula/use-lasso';\nimport useResize from '@qlik/common/nebula/resize';\nimport useEnvironment from '@qlik/common/nebula/use-environment';\nimport setupSnapshot from '@qlik/common/nebula/snapshot';\n\nimport properties from './object-properties';\nimport data from './histogram-data';\nimport ChartView from './histogram-view';\nimport BackednAPi from './backend-api';\nimport ext from './ext';\n\nexport default function supernova(env) {\n locale(env.translator);\n const picasso = picassoSetup();\n const dataDefinition = data(env);\n\n return {\n qae: {\n properties,\n data: {\n targets: [dataDefinition],\n },\n },\n ext: ext(env),\n component() {\n const constraints = useConstraints();\n const element = useElement();\n const environment = useEnvironment();\n const lasso = useLasso();\n const model = useModel();\n const selections = useSelections();\n const layout = useStaleLayout();\n const renderState = useRenderState();\n\n const [instance, setInstance] = useState();\n\n useEffect(() => {\n const $element = $(element);\n const backendApi = new BackednAPi(model);\n const selectionsApi = selections;\n const view = new ChartView({\n $element,\n backendApi,\n environment,\n lasso,\n picasso,\n selectionsApi,\n renderState,\n });\n\n setInstance(view);\n\n return () => {\n view.destroy();\n };\n }, []);\n\n const [, error] = usePromise(async () => {\n if (!instance) {\n return;\n }\n instance.updateEnvironment(environment);\n instance.updateConstraints(constraints);\n\n // TODO: confim selection if triggered from engine (another websocket to the same session (browser tab))\n\n await instance.updateData(layout);\n await instance.paint();\n }, [layout, instance, environment]);\n if (error) {\n throw error;\n }\n\n useResize(instance);\n setupSnapshot(instance);\n },\n };\n}\n","import all from './all.json';\n\nexport default function autoRegister(translator) {\n if (translator && translator.get && translator.add) {\n const t = 'Object.Disclaimer.LimitedData';\n const g = translator.get(t);\n // if translated string is different from its id\n // assume translations already exists for current locale\n if (g !== t) {\n return;\n }\n\n Object.keys(all).forEach((key) => {\n translator.add(all[key]);\n });\n }\n}\n","import picassojs from 'picasso.js';\nimport PicassoQ from 'picasso-plugin-q';\nimport PicassoHammer from 'picasso-plugin-hammer';\nimport Hammer from 'hammerjs';\nimport eventArea from './plugins/event-area';\nimport disclaimer from './disclaimer/disclaimer-component.jsx';\n\nexport default function setup() {\n const picasso = picassojs();\n // default to use canvas renderer\n picasso.renderer.prio(['canvas']);\n\n // TODO: investigate picasso warnings\n // if (DebugFlags.DEVELOPER) {\n // picasso.logger.level(picassojs.logger.LOG_LEVEL.WARN);\n // }\n\n picasso.use(PicassoQ);\n picasso.use(PicassoHammer(Hammer));\n picasso.use(eventArea);\n picasso.component('disclaimer', disclaimer);\n return picasso;\n}\n","import { useApp, useAppLayout, useTranslator, useOptions, useMemo, useTheme, useDeviceType } from '@nebula.js/stardust';\n\nexport default function useEnvironment() {\n const app = useApp();\n const appLayout = useAppLayout();\n const deviceType = useDeviceType();\n const options = useOptions();\n const theme = useTheme();\n const translator = useTranslator();\n\n const environment = useMemo(\n () => ({\n app,\n appLayout,\n deviceType,\n options,\n theme,\n translator,\n }),\n [app, appLayout, options.direction, options.freeResize, translator.language(), theme.name(), deviceType]\n );\n\n return environment;\n}\n","import { useAction, useConstraints, useEffect, useLayout, useState } from '@nebula.js/stardust';\nimport lassoIcon from './lasso-icon';\n\nexport default function useSelect() {\n const constraints = useConstraints();\n const [enabled, setEnabled] = useState(false);\n const [active, setActive] = useState(false);\n const isInSelections = !!useLayout().qSelectionInfo.qInSelections;\n const [lasso] = useState(() => ({\n toggle() {\n setActive((a) => !a);\n },\n }));\n\n useEffect(() => {\n if (!constraints) {\n return;\n }\n\n setEnabled(!constraints.select && !constraints.active);\n }, [constraints]);\n\n useAction(\n () => ({\n key: 'lasso',\n label: 'Lasso',\n icon: lassoIcon,\n hidden: !enabled || !isInSelections,\n active,\n action() {\n setActive((a) => !a);\n },\n }),\n [isInSelections, active, enabled]\n );\n\n lasso.enabled = () => enabled;\n lasso.active = () => active;\n return lasso;\n}\n","import { useConstraints, useOptions, usePromise, useRect } from '@nebula.js/stardust';\n\nexport default function useResize(chartInstance) {\n const rect = useRect();\n const options = useOptions();\n const constraints = useConstraints();\n\n const [, error] = usePromise(async () => {\n if (!chartInstance) {\n return;\n }\n chartInstance.updateConstraints(constraints);\n chartInstance.options = options;\n await chartInstance.resize();\n }, [rect.width, rect.height]);\n\n if (error) {\n throw error;\n }\n}\n"],"names":["init","Picasso","component","mounted","element","classList","add","style","pointerEvents","zIndex","render","disclaimer","renderer","disableTriggers","preferredSize","h","settings","label","rtl","layout","dock","this","dir","modifiedLabel","spanStyle","overflow","whiteSpace","textOverflow","rect","display","justifyContent","alignItems","color","fontStyle","fontSize","width","height","transform","transformOrigin","textAlign","getStyle","ref","alignToRef","title","lassoIcon","shapes","type","attrs","d","BINNING_DEFAULTS","AUTO","BIN_COUNT","BIN_SIZE","LABEL","OFFSET","COUNT_DISTINCT","BIN_MODE","Object","freeze","properties","version","qHyperCubeDef","qDimensions","qMeasures","qMode","qAlwaysFullyExpanded","qSuppressZero","qSuppressMissing","bins","auto","binCount","binSize","offset","countDistinct","binMode","bar","paletteColor","index","dataPoint","showLabels","dimensionAxis","show","measureAxis","autoMinMax","max","min","minMax","spacing","gridlines","refLine","refLines","sorting","autoSort","showTitles","subtitle","footnote","data","env","translator","path","dimensions","description","get","measures","C","e","t","n","prototype","constructor","D","create","r","S","I","O","A","E","N","P","RegExp","T","L","j","F","V","R","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","H","rgb","formatHex","z","formatRgb","B","trim","toLowerCase","exec","length","parseInt","_","W","Y","J","hasOwnProperty","NaN","U","g","b","opacity","$","X","G","isNaN","Math","round","toString","Z","Q","s","l","o","i","a","u","ee","copy","assign","displayable","hex","formatHsl","arguments","brighter","pow","darker","te","PI","ne","re","oe","ie","ae","ue","ve","he","fe","le","ce","se","de","c","atan2","sqrt","cos","sin","st","split","ft","Number","Mt","TypeError","kt","enumerable","configurable","writable","defineProperty","key","Ct","Dt","value","Dn","Sn","exports","f","p","search","v","substring","reverse","join","m","y","x","charAt","match","toFixed","lastIndexOf","indexOf","Cn","In","replace","On","3","6","9","12","15","18","21","24","-3","-6","-9","-12","-15","-18","-21","-24","An","En","Nn","Pn","Tn","Ln","jn","Fn","Vn","Rn","toUpperCase","slice","zn","Bn","pattern","abbreviate","concat","substr","pop","test","prefix","postfix","maxPrecision","percentage","numericPattern","numericRegex","groupTemp","decTemp","temp","localeInfo","thousandDelimiter","decimalDelimiter","patternSeparator","abbreviations","qNumericalAbbreviation","forEach","prepare","subtype","formatValue","_prepared","positive","isFunctional","negative","zero","floor","String","toExponential","Hn","keys","map","sort","abs","q","w","toPrecision","ceil","log","Kn","Xn","Jn","Qn","Zn","er","tr","qCalendarStrings","qLongDayNames","qDayNames","qLongMonthNames","qMonthNames","locale_days","locale_days_abbr","locale_months","locale_months_abbr","qTimeFmt","qDateFmt","qTimestampFmt","Date","getUTCHours","getUTCDay","year","getUTCFullYear","month","getUTCMonth","day","date","getUTCDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","getTime","getDay","nr","Y+|y+","YY","YYY","def","M+","M","MM","MMM","W+|w+","WW","WWW","D+|d+","h+|H+","m+","s+|S+","f+|F+","t{1,2}|T{1,2}","call","push","fnTest","Class","extend","className","proto","_super","name","fn","tmp","ret","apply","Error","ctor","Function","idGen","getChar","charCode","val","charCodeAt","fromCharCode","base62","chr","id","random","generateId","getAxisDock","direction","isRtl","getYAxisDock","getXAxisDock","yDockNearFar","axisDockUtil","getOppositeAxisDock","rangesOfLRgExp","rangesOfRRgExp","rangesOfALRgExp","isLtrChar","isRtlChar","rtlUtils","lrm","rlm","detectTextDirection","refLineUtil","lineSettings","options","_options$style","defaultSettings","line","stroke","theme","getColorPickerColor","strokeDasharray","lineType","lineLabelSettings","chartID","labelColor","labelFontSize","labelFontFamily","align","vAlign","text","fill","fontFamily","maxWidthPx","isVisible","undefined","refLineExpr","getRefLineTitle","valueString","showValue","showLabel","RtlUtil","constants","SHOW_AXIS_LABELS_OPTIONS","SHOW_TITLE_OPTIONS","HORIZONTAL","VERTICAL","LAYOUTSETTINGS","lasso","displayOrder","rangeDim","rangeMeasure","rangeMinor","scrollBar","minimumLayoutMode","prioOrder","measureAxisTitle","dimensionAxisTitle","gridLines","refLinesLabels","DEFAULT_CHART_ORIENTATION","DimensionMeasureChart","chartBuilder","opts","measureAxisProperties","dimensionAxisProperties","chartOrientation","orientation","CONSTANTS","isChartHorizontal","measureDirection","dimensionDirection","includeMeasureAxisComponent","includes","includeMeasureAxisTitleComponent","measureTitleText","includeDimensionAxisComponent","includeDimensionAxis","includeDimensionAxisTitleComponent","dimensionTitleText","includeGridlines","includeRefLines","some","interactionActions","measureAxisSettings","scale","forceBounds","showBounds","measureAxisOptions","getMeasureAxisOptions","addComponent","addMeasureAxisComponent","measureTitleSettings","getMeasureAxisTitleOptions","addMeasureAxisTitleComponent","measureScaleSettings","measureScaleOptions","source","measureSource","ticks","distance","addScale","addMeasureScale","dimensionAxisSettings","dimensionAxisOptions","getDimensionAxisOptions","addDimensionAxisComponent","dimensionAxisTitleSettings","dimensionAxisTitleOptions","getDimensionAxisTitleOptions","addDimensionAxisTitleComponent","dimensionScaleOptions","dimensionSource","dimensionScaleSettings","addDimensionScale","gridlinesOptions","gridlinesSettings","minorTicks","addGridlinesComponent","hasNavigation","getSettings","scroll","dimension","viewSize","scrollSettings","scrollbarOptions","isHorizontal","scrollBarSettings","addInteractionActions","isEnabledFn","targetIsScrollbar","manager","startPoint","center","deltaX","deltaY","chart","componentsFromPoint","enable","events","tap","emit","panstart","pan","panend","pancancel","getScrollActions","isNavigationEnabledFn","addScrollbarComponent","axisDock","refLinesSettings","oob","lines","refLinesLabelsSettings","require","measureText","formatter","scales","measure","labelWidths","formattedValue","minimumText","wanted","required","maxLabelWidth","labelPadding","expressionValue","lineOptions","addRefLineComponent","enableLasso","selectionsEnabled","lassoOptions","brushKey","brushComponents","brushData","addLassoComponent","enableDimRange","rangeDimSettings","rangeDimOptions","brushAxis","brushArea","brushScale","addRangeDimComponent","dimRange","enableMeasureRange","rangeMeasureSettings","rangeMeasureOptions","multiple","addRangeMeasureComponent","measureRange","enableAreaRange","rangeMinorSettings","chartInstance","addRangeAreaComponent","areaRange","brushActions","addInteraction","gestures","addInteractionComponent","actions","invert","count","range","domain","trackBy","axis","axisLineStroke","titleFontSize","titleFill","labelsFill","labelsFontSize","titleFontFamily","labelsFontFamily","brush","trigger","consume","strokeWidth","labels","tiltAngle","maxEdgeBleed","maxSize","mode","measureScale","fields","expand","field","scaleSettings","dimensionScale","extract","props","qText","datum","xAxis","yAxis","xAxisTitle","yAxisTitle","rangeUtil","getBublesAlign","isAlignStart","getDock","dockTargets","dockT","layoutModes","SPARK","XSMALL","SMALL","MEDIUM","FULL","LayoutModes","getLabel","context","end","dataset","getLayoutModeKeys","layoutModeKeys","modeKey","directions","left","right","up","down","createComponent","minor","boxMarker","pointMarker","backgroundColor","scrollbar","components","comp","contexts","target","fillActive","bubbles","isStartBorder","binStart","binEnd","action","rangeArea","chartHeight","chartWidth","itemFill","itemFontSize","anchor","size","vertical","navigation","button","class","lui-fade-button","content","state","item","lineHeight","wordBreak","margin","top","bottom","shape","showTitle","categoricalLegend","tickFill","tickFontSize","tickFontFamily","getAlignValue","word","major","tick","sequentialLegend","gridLine","interaction","oobColor","oobBackgroundColor","padding","eventArea","sources","selector","strategy","parseFloat","placements","position","justify","ChartBuilder","dockLayout","interactions","getComponent","filter","addPreset","ChartPresets","validateComponentKeys","msg","ALIGNMENT","CENTER","BOTTOM","DisclaimersConfig","DISCLAIMERS","alignment","default","util","getNoDataExistAttribute","qHyperCube","qSize","qcy","qcx","getLimitedDataAttribute","maxNbrOfDimensions","result","stackedDataPages","explicitLimitedData","qDataPages","paging","qMatrix","qStackedDataPages","qData","qSubNodes","qDimensionInfo","node","qDown","qArea","qHeight","getNegativeOrZeroValuesAttribute","supportNegative","qMeasureInfo","qMin","getOnlyNegativeOrZeroValuesAttribute","every","qMax","getOnlyNanDataAttribute","explicitOnlyNanData","getDataRangeIncludingZeroAttribute","supportRangeOverZero","measureInfo","len","explicitMinOn","explicitMaxOn","MAX_VALUE","hasDataRangeIncludingZero","applyAttributes","dataAttributes","config","NoDataExist","RequireNumericDimension","explicitRequireNumericDimension","LimitedData","NegativeOrZeroValues","OnlyNegativeOrZeroValues","OnlyNanData","DataRangeIncludingZero","Helper","disclaimersConfig","supportedDisclaimers","isValid","list","Disclaimer","environment","clear","isValidAndSupported","isAnyValidDisclaimer","self","getMessage","str","ERRORS","SET","DISPLAY","_applyDefaultSupport","supported","getComponentSettings","_this$environment","_this$environment$opt","vizAttributes","helper","DisclaimerComponentHelper","message","set","attributes","AttributesUtil","ChartView","picasso","$element","backendApi","selectionsApi","_selectionsApi","_on","_disclaimer","_dataPaths","picassoElement","dataAreaElem","updateEnvironment","setDataPaths","dataPaths","getData","hyperCube","dataPagesPath","page","qTop","qLeft","qWidth","maxHeight","then","pages","hasValidData","paint","_disclaimerComponent$","getDisclaimerAttributes","disclaimerComponent","isSuppressingDisc","chartSettings","createChartSettings","errorMsg","console","error","updateChart","_painted","Promise","resolve","resize","addSnapshotChartSettings","freeResize","snapshotData","logicalSize","preserveAspectRatio","updateData","_destroyed","reject","permissions","isPartialData","_this$environment$app","_this$environment$app2","appLayout","qLocaleInfo","getValue","colorService","update","partialData","setAttribute","destroy","off","getViewState","isLassoDisabled","setSnapshotData","snapshotLayout","chartData","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copyIsArray","clone","deep","getFieldAccessor","deps","cache","origin","fieldIdx","attrIdx","attrDimIdx","wrappedFields","attrDims","instance","attrExps","row","qAttrDims","qValues","qAttrExps","datumExtract","propCfg","cell","_ref","cellToValue","_ref2","mainCell","prop","rowIdx","sourceKey","targetProp","propCell","propCellFn","qRow","cfgs","dataItems","cube","raw","_typeof","normalizeConfig","main","_util$normalizeConfig","propsArr","track","trackType","tracker","trackedItems","items","k","fieldValues","fieldLabels","cfg","itemData","_toConsumableArray","collect","sum","children","node_count","eachAfter","node_each","callback","current","next","node_eachBefore","nodes","node_eachAfter","node_sum","node_sort","compare","eachBefore","node_path","start","ancestor","leastCommonAncestor","parent","splice","aNodes","ancestors","bNodes","node_ancestors","node_descendants","each","node_leaves","leaves","node_links","root","links","hierarchy","child","childs","Node","valued","defaultChildren","depth","computeHeight","node_copy","copyData","descendants","keyPrefix","preroot","ambiguous","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","nodeByKey","subpath","container","carr","flattenTree","steps","arrIndexAtTargetDepth","treeAccessor","sourceDepth","targetDepth","findField","query","allFields","DIM_RX","M_RX","ATTR_EXPR_RX","ATTR_DIM_RX","getColumnOrder","qColumnOrder","getDimensionColumnOrder","ii","getFieldDepth","isFieldDimension","pseudoMeasureIndex","measureIdx","remainder","treeOrder","qEffectiveInterColumnSortOrder","columnOrder","fieldDepth","sourceDepthObject","targetDepthObject","valueFn","attrFn","nodeFn","_data$qAttrDims","_data$qAttrExps","doIt","_ref3","pCfg","coll","collStr","_loop","cells","accessor","valueAccessor","attrAccessor","reduce","reduceLabel","getHierarchy","rootPath","childNodes","picker","tree","getHierarchyForSMode","matrix","order","__root","__id","isNew","_cell$qElemNumber","qElemNumber","qElemNo","_objectSpread","__parent","attachPropsAccessors","_ref4","itemDepthObject","accessors","augment","propDefs","idx","replicaDescendants","isTree","_util$normalizeConfig2","_getFieldAccessor","mapped","module","escapeRegExp","SIprefixes","radix","oct","dec","bin","rom","functional","prec","formatRadix","fradix","decimal","formatRoman","nThousands","numeral","formatFunctional","escape","flags","justStr","createRegExp","thousand","getAbbreviations","listSeparator","abbreviation","abbreviationTuple","preparePattern","parts","lastPart","regex","matchPrecisionResult","splitPattern","NumberFormatter","_classCallCheck","prep","exponent","absValue","num","decimalPartPattern","abbr","sciValue","original","lowerAbbreviation","suggestedAbbrExponent","abbrArray","upperAbbreviation","wholePart","wholePartPattern","nDecimals","nZeroes","decimalPart","numberFormatFactory","_len","args","_key","memoize","func","cacher","_opts$size","multipleArguments","_opts$multipleArgumen","toKey","_opts$toKey","arg","counter","fifo","has","qType","qformat","memoized","bind","format","TYPES","INTEGER","NUMBER","FIXED_TO","MONEY","DATE","TIME","DATE_TIME","INTERVAL","DAYS","DAYS_ABBR","MONTHS","MONTHS_ABBR","SECONDS_PER_DAY","pad","parseDate","twelveFormat","getRemainder","parseIntervalDays","days","ms","parseInterval","units","someT","getMasks","inst","DateFormatter","qtype","_patternMap","info","_defineProperty","parsedDate","hasTwelveFlag","masks","masksArr","mask","dateTimeRegex","submask","dateFormatFactory","MS_PER_DAY","QlikTimeToDate","locale","li","nqt","createFromMetaInfo","meta","qNumFormat","timeFormat","qFmt","qThousandSep","qDecimalSep","isAuto","qIsAutoFormat","qThou","qDec","numberFormat","qField","values","fieldExtractor","sourceField","qValue","labelFn","qFallbackTitle","tags","qTags","createFields","parentKey","fieldKey","qNum","_cache$wrappedFields","_cache$wrappedFields2","_cache$allFields","_ref$config","virtualFields","extractionConfig","extractor","hierarchyConfig","_cache","qNodesOnDim","TExtractor","augmentTree","qTreeDataPages","SExtractor","dimAcc","measAcc","traverse","from","ff","override","LAYOUT_TO_PROP","HC_RX","TD_RX","SHORTEN_HC","SHORTEN_TD","extractFieldFromId","dimensionIdx","pathToCube","shortenizer","shortenPath","attrCol","hc","dim","qAttrExprInfo","meas","_slicedToArray","qBrush","_opts$orMode","byCells","primarySource","selections","methods","isActive","hasValues","brushes","ranges","multiRangeSelectTreeDataValues","qMeasureIx","qDimensionIx","qRange","qMinInclEq","qMaxInclEq","rangeSelectHyperCubeValues","selectHyperCubeContinuousRange","qDimIx","noOfLeftDims","qNoOfLeftDims","dimInterColSortIdx","selectPivotCells","validValues","qCol","selectHyperCubeCells","cols","params","method","orMode","initialize","qBrushHelper","selectionUtils","brushInterceptors","DIM_VALUE_NULL","DIM_VALUE_TOTAL","brushOnlyOne","activeBrushes","toggleOff","filterValues","lockedFields","lockedItems","brushItems","splitIndex","datasetName","fieldName","qLocked","itemsAreLocked","DEFAULT_OPTIONS","startOnEmptySelection","active","inactive","Selections","selectPaths","selectionContexts","selectionsApiRestoreHelper","propertiesToRestore","on","paths","added","removed","begin","PicassoQ","select","toggleValues","filterResult","itms","Actions","lastShift","shiftToggle","keyCode","shiftKey","toggle","confirmOrCancelSelection","event","cancel","confirm","register","listeners","sleep","deregister","removeListener","dependentComponents","setUp","tearDown","setUpBrush","selectionTrigger","ctrlKey","isSingleSelect","globalPropagation","selectionConsumer","createContext","fieldsLocked","dimFields","dataPath","areAllFieldsLocked","getFieldsLocked","intercept","setUpStart","setUpDone","removeInterceptor","pauseEngineCalls","resumeEngineCalls","run","document","addEventListener","onDeactivated","removeEventListener","unbindDeactivated","onActivated","unbindActivated","isOn","lassoState","allFieldsLocked","NoSelections","warn","SelectionHandler","TooltipActions","componentKey","tooltipKey","hasOpen","closeTooltip","isOpen","getAffectedShapes","openTooltip","toggleInterceptor","check","TooltipAction","formatting","formatMeasureValue","measureContent","isCustomFormatted","createContent","tooltipInfo","uniqueShapes","numberInExcess","numItems","localContent","rows","labelData","refPaths","isNullValue","currentNode","header","headerResolver","measureRows","measureRow","rowData","rowResolver","colorByData","getColorByDimData","unshift","rowCount","extractContent","renderSettings","_tooltipInfo$colorSer","_tooltipInfo$colorSer2","_shape$attrs","colorData","colorSettings","fieldType","ids","mapping","elemNoObj","othersIndex","getOthersIndex","appendTooltipContainer","querySelector","createElement","body","appendChild","tooltip","beforeMount","beforeUpdate","destroyed","elm","parentElement","childElementCount","removeChild","destroyTooltipContainer","appendTo","placement","arrow","border-spacing","background","empty-cells","max-width","word-break","word-wrap","overflow-wrap","hyphens","getDirection","labelTextAlign","headerStyle","fontWeight","colSpan","valueContent","symbolStyle","background-color","symbol","labelStyle","valueStyle","moreText","moreStyle","Tooltips","chartType","tooltipContexts","registerContext","treatAsDesktop","deRegContext","mouseLeave","attrDimPath","filterShapes","deviceType","createTooltip","uniques","filterDuplicateShapes","TooltipHandler","hash","generateHash","hashData","hashFromString","JSON","stringify","updateHash","qUndoExclude","hashCode","hashBuilder","getDefaultHashDataForHyperCube","hyperCubeDef","app","dfds","qLibraryId","libraryId","getMeasure","getProperties","qMeasure","qDef","getMeasureDataFromLibraryItem","all","getMeasureExpressions","measureExpressions","drillLevel","getDrillIndices","dimensionExpressions","getDimensionExpressions","dimensionInfo","qGroupFieldDefs","getDimensions","qGroupPos","JSONPatch","originalExtend","isObject","isUndef","isSpecialProperty","getParent","numPart","part","generate","newData","basePath","patches","generateValue","oldVal","tmpPath","op","newA","oldA","tmpIdx","findIndex","qInfo","qId","patchArray","patch","newValues","oldParent","createPatch","updateObject","SoftPropertyHandler","model","_model","setModel","saveSoftProperties","prevEffectiveProperties","effectiveProperties","qOp","qPath","applyPatches","[object Object]","propertiesPromise","effectivePromise","getEffectiveProperties","effective","qExtendsId","setProperties","clearSoftPatches","hardPropertiesChecker","canModifyHardProperties","qHasSoftPatches","qMeta","privileges","Save","saveDerivedProperties","prevProperties","InputValidator","validate","generateDerivedProperties","DerivedProperties","_generationInProgress","isDerivedUpToDate","Hash","updateDerivedProperties","layoutIsUpdated","addDefaultHyperCubeHash","HashBuilder","ExpressionWrapper","wrapExpression","expression","ExpressionReplacer","replaceExpressionTokens","tokenMappings","tokenIdentifiers","identifiers","tokenExpression","tokenString","returnExpression","string","isGlobal","isGrouped","escapedString","regexpString","ExpressionGenerator","generateExpression","template","mappings","explicitMappings","wrap","variations","variation","variationExpressions","assembleVariation","regExp","stringArray","HyperCubeGenerator","generateHyperCubeDef","knownMappings","dimensionIndices","measureIndices","returnPromise","spliceIdentifiedMatches","getMappingRegExp","getExpressionFromDimension","getExpressionFromMeasure","getKnownMappings","allMappings","generatedHyperCubeDef","dimensionTemplate","qFieldDefs","measureTemplate","getAllHyperCubeExpressions","async","getExpressionFromLibraryItem","drillIndex","qDim","matches","isNumeric","isFinite","isInteger","histogramUtils","getBinSize","getDerivedBinSize","getDerivedBinOffset","getDerivedBinCount","getBinOffset","isAutoBin","isCountDistinct","getBinMode","isEmpty","LOG10","NICE_NUMBERS1","NICE_NUMBERS2","LOOP_CONTROL_NUMBERS","getGoodNumber","niceNumbers","roundedFraction","magnitude","fraction","calculateNumEmptyBins","nbrOfBins","newMin","newMax","binSizeCalculator","calculateBinSize","validateInput","niceBinSize","delta","loop","rawBinSize","numEmptyBins","getBinCount","histogramMappings","getMappingValues","binOffset","binInfo","distinct","dimInfo","getBinInfo","getMappings","BinSize","Label","Offset","Distinct","cubesGenerator","generateHyperCubes","mappingValues","expressionsPromise","HyperCubeDefGenerator","boxCubeDefPromise","expressions","boxCubeDef","binCountExpr","qValueExpression","qExpr","Dim[0]","setValue","qSortByNumeric","onComponentChecker","isOnComponentForRange","targets","selectionGesture","isOnComponentForLasso","gesturesParams","lassoGesture","isOnComponentForNavBtn","legendBrushKey","navBtnGesture","callLassoGesture","gesturesFns","Hammer","DIRECTION_ALL","threshold","lassoing","isSelectionEnabled","hitComp","handlers","selectionHandler","recognizeWith","scrollHandler","lassostart","switchTo","lassoBrushKey","clientX","pointers","clientY","doEmit","lassomove","lassoend","lassocancel","measureRangeGesture","callMeasureRangeGesture","activeRangeBrush","dimRangeBrushKey","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","rangeSelStatus","isOpenMea","measureSelecting","gesture","measureRangeBrushKey","requireFailure","measurerangestart","measurerangemove","measurerangeend","measurerangecancel","getAxisOrientation","areaRangeGesture","callAreaRangeGesture","isOpenDim","minoring","arearangestart","areaBrushKey","arearangemove","arearangeend","arearangecancel","dimensionRangeGesture","callDimensionRangeGesture","dimAxis","majoring","majorrangestart","majorrangemove","majorrangeend","majorrangecancel","dragGesture","callDragGesture","hasSelections","dragPoint","dragging","isNavigationEnabled","getBrushConfig","dragstart","change","getItemSize","getScrollApi","move","dragmove","dragend","dragcancel","callNavBtnGesture","navBtnTap","btn","attr","getAttribute","DependentInteractions$1","clearKey","activeChart","newType","cont","onScrollUpdate","rangeClearTap","getMaxGlyphCountForDimAxis","qApprMaxGlyphCount","DimensionAxis","createSettings","maxGlyphCount","DimensionScale","isAutoMode","colorStruct","transparent","rgba","hexShort","hsl","hsla","Color","lcs","h_","rgb_","colorString","_invalid","_r","_g","_b","_a","CSSColors","_spaces","isInvalid","setAlpha","getAlpha","toRGB","toRGBA","toHex","toHSL","luma","toHSLA","toHSV","hsvComp","toHSVComponents","toNumber","isDark","getLuminance","_lumi","shiftLuminance","chsla","isEqual","blend","c2","createShiftedColor","lumi","greenMultiplier","hsla_string","ch","c1","r1","g1","b1","getBlend","isCSSColor","getBestContrast","cl","cd","lum","getContrast","color1","color2","l1","l2","useDarkLabel","areaColor","bgIsDark","chartUtils","TRANSPARENT_BLACK","TRANSPARENT_WHITE","LIGHT_GREY","DARK_GREY","BLACK","WHITE","getInverse","colorObj","getContrastingGrey","getContrastingTransparent","BoxMarker","chartView","basicSelectionSettings","dimensionSelectionSettings","measureSelectionSettings","tooltipSettings","boxFillColor","brushTrigger","brushConsume","_tooltipHandler","box","chartStyleUtils","Infinity","minWidthPx","minWidth","whiskers","elemNo","ChartSettings","dimTitle","_selectionHandler","lockedDim","retrieveRangeSelStatus","dimInfos","getLockedDim","_dependentActions","DependentInteractions","include","boxMarkerSettings","binLabelSettings","rangeSelSettings","HistogramView","namespace","renderState","__do_not_use_findShapes","findShapes","_derivedProperties","updateConstraints","constraints","passive","selection","onlyNanData","qIsNull","isOnlyNanData","binMappings","binProperties","getHashData","restore","updateCache","pending","undoExclude","BackednAPi","setCacheOptions","maxStackedValues","getHyperCubeData","window","Symbol","toStringTag","__esModule","updated","previous","dimensionList","qName","qDerivedFieldData","qDerivedFieldLists","fieldList","fullAccumulation","fullRange","crossAllDimensions","modifier","dimensionAndFieldList","funcComp","valueComp","showExcludedValues","isFullRange","getNumDimensions","getExpressionWithExcludedComp","treatMissingAsNull","getRowNoComp","getNumStepComp","getAboveCompPrefix","getAboveCompSuffix","getAboveComp","getFunctionPrefix","getFunctionSuffix","getRangeComp","getAggrComp","getExcludedComp","needDimension","primaryDimension","accumulationDimension","getDimComp","qSortCriterias","qSortByExpression","qSortByAscii","simplifyExpression","extractInputExpression","outputExpression","initModifier","isApplicable","minDimensions","maxDimensions","getExpressionWithMarkers","canExtract","getDimDefWithWrapper","getFieldWithWrapper","iterator","disabled","translationKey","numDimensions","enableTotalsFunction","propertyPanelDef","translation","refFn","primaryDimensionTooltip","schemaIgnore","defaultValue","qGroupFallbackTitles","crossAllDimensionsTooltip","rangeFull","rangeCustom","rangeSteps","ext","support","modifiers","nullSuppression","showNull","inverted","CURRENT_SELECTION","SELECT_FIELD_VALUE","DISREGARD_SELECTION","ONE_DIMENSION","ALL_DIMENSIOANS","DISREGARD_ALL_DIMENSIONS","K","dimensionalScopeOneDimension","tooltipTranslation","dimensionalScopeOneDimensionTooltip","dimensionalScopeAllDimensions","dimensionalScopeAllDimensionsTooltip","dimensionalScopeDisregardAllDimensions","dimensionalScopeDisregardAllDimensionsTooltip","selectionScope","selectionScopeCurrentSelection","selectionScopeSpecificValue","selectionScopeTotal","dimensionalScope","updateModifier","modifierSelectionScope","modifierSelectionScopeTooltip","dropdownOnly","getFieldList","modifierDimensionalScope","modifierDimensionalScopeTooltip","supportTooltip","getDisregardSelectionComp","getFieldSelectionComp","getTotalComp","getSelectedDimComp","getExpression","getExpressionRef","getLibraryIdRef","getLibraryId","getLabelRef","getLabelExpressionRef","initBase","restoreBase","base","pe","accumulation","movingAverage","difference","normalization","me","applyModifiers","ye","cleanUpMeasure","qe","masterItemSubscriber","unsubscribe","hasActiveModifiers","be","getActiveModifier","De","isSupportedModifiers","isApplicableSupportedModifiers","modifierTypes","measureBase","limitedSorting","Se","Ne","ifEnableTotalsFunction","isSnapshot","masterItem","isFirstTime","lastReloadTime","Me","Ee","Ve","Le","Oe","libraryIds","ge","Ce","oldProperties","runUpdateIfChange","libraryItemsProps","we","Pe","newProperties","qLabel","qLabelExpression","quarantine","coloring","qAggrFunc","Ae","xe","Ie","getDimensionList","measureLibraryIds","dimensionLibraryIds","getDimension","Fe","enabled","listener","layoutSubscribe","subscribe","dispose","clearUndoBuffer","isAtomicValue","isOrderedSubset","indexAdded","indexRemoved","findItemByPropertyValue","findIndexByPropertyValue","addDimensions","exportFormat","excludedDimensions","addMeasures","excludedMeasures","setInterColumnSortOrder","qInterColumnSortOrder","interColumnSortOrder","copyProperties","updateLayoutExclude","qLayoutExclude","changed","to","storeMeasuresModifiers","store","parse","qv","othersLabel","importCommonProperties","visualization","copyPropertyIfExist","copyPropertyOrSetDefault","getDefaultDimension","cId","qNullSuppression","qOtherLabel","qOtherTotalSpec","qOtherLimitMode","qOtherMode","qOtherSortMode","qSuppressOther","getDefaultMeasure","numFormatFromTemplate","qTrendLines","newHyperCubeDef","defaultDimension","maxMeasures","minMeasures","defaultMeasure","getMaxMinDimensionMeasure","dataDefinition","createNewProperties","initialProperties","hypercubePath","shouldInitLayoutExclude","initLayoutExclude","updateDimensionsOnAdded","updateMeasuresOnAdded","restoreMeasuresModifiers","exportProperties","propertyTree","viewDataMode","qProperty","filters","qContextSetExpression","qDynamicScript","importProperties","defaultPropertyValues","extension","supportedFilters","isHCModifierSupported","qChildren","cellBackgroundColor","cellForegroundColor","colorByAlternative","colorByExpression","urlLabel","url","qAttribute","moveByIdFromGroup","IDMAP","CELL_BACKGROUND_COLOR","CELL_FOREGROUND_COLOR","COLOR_BY_ALTERNATIVE","COLOR_BY_EXPRESSION","TOOLTIP","CELL_LINK_LABEL","CELL_LINK_URL","getNumMeasures","wrapFieldName","getItemLabel","colorModeOptions","primary","multiColor","scatterplot","sn-scatter-plot","piechart","linechart","distributionplot","altLabel","qStringExpression","isDimension","attributeExpression","qExpression","matchMeasure","activeMeasureIndex","labelExpRef","colorMapRef","qSortBy","qAttributeDimensions","qAttributeExpressions","qFieldLabels","useMasterNumberFormat","byDimDef","activeDimensionIndex","byMeasureDef","changeProperty","getCanColorBy","byDimension","byMeasure","byMultiple","byExpression","shouldUpdateColorBy","canColorBy","autoColor","colorMode","updateColorBy","deleteTotalMode","qTotalMode","shouldAddColorByExpression","addColorByExpression","switchToAutoColor","shouldSwitchToColorPersistent","handleAutoMinMax","handleMeasuresAxis","measureType","measureAxes","series","marker","total","supportedAutoMinMax","arrayPath","quarantineName","arrayName","itemPath","unquarantine","hypercube","colorChart","axisChart","quarantineProperty","unquarantineProperty","quarantineArrayProp","unquarantineArrayProp","conditionalColoring","conditionalShow","propsLogic","onChangeCalcCond","_data$qUndoExclude","_data$qUndoExclude$bo","baseCube","generatedCube","qCalcCond","qCalcCondition","inAdvancedMode","showBinCount","propertyDefinition","anything","sense","presentation","snapshot","tid","showGridLines","gridSpacing","simpleLabels","_props$qHyperCubeDef$","pointLabels","_props$qHyperCubeDef$2","dimensionTitle","_props$qHyperCubeDef$3","convertFunctions","getter","setter","measureTitle","_props$qHyperCubeDef$4","uses","alternativeTranslation","dimensionLimits","otherMode","readOnly","otherSortMode","otherCounted","otherLimitMode","limitMode","otherLimit","calculatedAgainstMessage","measureName","others","suppressOther","undefinedValue","autoMessage","expressionType","definition","binMessage","isExpression","minBinMessage","addons","dataHandling","calcCond","colorBackground","colors","classification","section","barColor","dualOutput","getDataColorSpecials","palette","getDataColorPickerPalettes","placeholderTranslation","othersGroup","exploreProperties","histogramExport","getExportRawDataOptions","menu","exportDialog","addItem","_env$anything","pp","softDefinition","cssScaling","export","exportData","sharing","viewData","mapProperties","getDefaultDimensionProperties","getDefaultMeasureProperties","conversion","hyperCubePath","requireNumericDimension","exportTableProperties","supernova","picassojs","prio","use","PicassoHammer","picassoSetup","qae","useConstraints","useElement","useApp","useAppLayout","useDeviceType","useOptions","useTheme","useTranslator","useMemo","language","useEnvironment","setEnabled","useState","setActive","isInSelections","useLayout","qSelectionInfo","qInSelections","useEffect","useAction","icon","hidden","useLasso","useModel","useSelections","useStaleLayout","useRenderState","setInstance","view","usePromise","useRect","useResize","onTakeSnapshot","useImperativeHandle"],"mappings":";;;;;;2+gBAAe,SAASA,EAAKC,GAE3BA,EAAQC,UAAU,aAAc,CAC9BC,QAAQC,GACNA,EAAQC,UAAUC,IAAI,cACtBF,EAAQG,MAAMC,cAAgB,OAC9BJ,EAAQG,MAAME,OAAS,GAEzBC,OAAM,IACU,KCoCpB,IAAeC,EAAA,CACbC,SAAU,MACVC,iBAAiB,EACjBC,cAAe,WACb,OAAO,IAETJ,OAAOK,GACL,MACEC,UAAUC,MAAEA,EAAFC,IAASA,GACnBC,QAAQC,KAAEA,IACRC,KAAKL,SACHM,EAAgB,QAATF,GAA2B,WAATA,IAAsBF,EAAc,MAAR,MAGrDK,EAAyB,WAATH,EAAoBH,EAAS,KAAIA,EAEjDO,EAAqB,WAATJ,EAAoB,CAAEK,SAAU,SAAUC,WAAY,SAAUC,aAAc,YAAe,GAE/G,OACEZ,EAAA,MAAA,CAAKR,MA9DX,SAAkBa,EAAMQ,GACtB,MAAMrB,EAAQ,CACZC,cAAe,OACfqB,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,MAAO,UACPC,UAAW,SACXC,SAAU,QAGZ,OAAQd,GACN,IAAK,OACHb,EAAM4B,MAAWP,EAAKQ,OAAP,KACf7B,EAAM8B,UAAa,6BAA4BT,EAAKQ,eACpD7B,EAAM+B,gBAAkB,WACxB,MAEF,IAAK,QACH/B,EAAM4B,MAAWP,EAAKQ,OAAP,KACf7B,EAAM8B,UAAa,+BAA8BT,EAAKO,WACtD5B,EAAM+B,gBAAkB,WACxB,MAEF,IAAK,SACH/B,EAAM4B,MAAWP,EAAKO,MAAP,KACf5B,EAAM6B,OAAYR,EAAKQ,OAAP,KAChB7B,EAAMyB,MAAQ,UACdzB,EAAM0B,UAAY,SAClB1B,EAAM2B,SAAW,QACjB3B,EAAMgC,UAAY,SAClB,MAEF,QACA,IAAK,MACL,IAAK,SACHhC,EAAMuB,eAAiB,aACvBvB,EAAMwB,WAAa,aAGvB,OAAOxB,EAeSiC,CAASpB,EAAMC,KAAKO,MAObN,IAAKA,GACtBP,EAAA,OAAA,CAAM0B,IAAKpB,KAAKqB,WAAYnC,MAAOiB,EAAWmB,MAAOpB,GAClDA,MClEX,MAAMqB,EAAY,CAChBC,OAAQ,CACN,CACEC,KAAM,OACNC,MAAO,CACLC,EAAG,0pECHX,MCFMC,EAAmB,CACvBC,MAAM,EACNC,UAAW,GACXC,SAAU,GACVC,MAAO,IACPC,OAAQ,EACRC,gBAAgB,EAChBC,SAAU,YAGZC,OAAOC,OAAOT,GCqBd,MAAMU,EAAa,CAMjBC,QAAS,SAMTC,cAAe,CACbC,YAAa,GACbC,UAAW,GACXC,MAAO,IACPC,sBAAsB,EACtBC,eAAe,EACfC,kBAAkB,GAMpBC,KAAM,CAMJC,KAAMpB,EAAiBC,KAMvBoB,SAAU,GAMVC,QAAStB,EAAiBG,SAM1BoB,OAAQvB,EAAiBK,OAMzBmB,cAAexB,EAAiBM,eAMhCmB,QAASzB,EAAiBO,UAM5BxB,MAAO,CAIL2C,IAAK,CAMHC,aAAc,CACZC,MAAO,EACP7C,MAAO,aAQb8C,UAAW,CAMTC,YAAY,GAMdC,cAAe,CAMb5D,KAAM,OAMNH,MAAO,OAKPgE,KAAM,OAMRC,YAAa,CAMXC,YAAY,EAMZ/D,KAAM,OAMNH,MAAO,GAOPmE,IAAK,GAOLC,IAAK,EAMLC,OAAQ,MAMRL,KAAM,MAMNM,QAAS,GAMXC,UAAW,CAMTnB,MAAM,EAMNkB,QAAS,GAMXE,QAAS,CAKPC,SAAU,IAMZC,QAAS,CAMPC,UAAU,GAOZC,YAAY,EAMZC,SAAU,GAMVnD,MAAO,GAMPoD,SAAU,IC5QG,SAASC,EAAKC,GAC3B,MAAMC,WAAEA,GAAeD,EAavB,MAAO,CACLE,KAAM,iBACNC,WAbiB,CACjBf,IAAK,EACLD,IAAK,EACLiB,YAAW,IACFH,EAAWI,IAAI,oCAUxBC,SAPe,CACflB,IAAK,EACLD,IAAK,ICN47K,SAASoB,EAAEC,EAAEC,EAAEC,GAAGF,EAAEG,UAAUF,EAAEE,UAAUD,EAAEA,EAAEE,YAAYJ,EAAE,SAASK,EAAEL,EAAEC,GAAG,IAAIC,EAAElD,OAAOsD,OAAON,EAAEG,WAAW,IAAI,IAAII,KAAKN,EAAEC,EAAEK,GAAGN,EAAEM,GAAG,OAAOL,EAAE,SAASM,KAAK,IAAIC,EAAE,EAAE,GAAGC,EAAE,sBAAsBC,EAAE,gDAAgDC,EAAE,iDAAiDC,EAAE,qBAAqBC,EAAE,IAAIC,OAAO,UAAU,CAACL,EAAEA,EAAEA,GAAG,QAAQM,EAAE,IAAID,OAAO,UAAU,CAACH,EAAEA,EAAEA,GAAG,QAAQK,EAAE,IAAIF,OAAO,WAAW,CAACL,EAAEA,EAAEA,EAAEC,GAAG,QAAQO,EAAE,IAAIH,OAAO,WAAW,CAACH,EAAEA,EAAEA,EAAED,GAAG,QAAQQ,EAAE,IAAIJ,OAAO,UAAU,CAACJ,EAAEC,EAAEA,GAAG,QAAQQ,EAAE,IAAIL,OAAO,WAAW,CAACJ,EAAEC,EAAEA,EAAED,GAAG,QAAQU,EAAE,CAACC,UAAU,SAASC,aAAa,SAASC,KAAK,MAAMC,WAAW,QAAQC,MAAM,SAASC,MAAM,SAASC,OAAO,SAASC,MAAM,EAAEC,eAAe,SAASC,KAAK,IAAIC,WAAW,QAAQC,MAAM,SAASC,UAAU,SAASC,UAAU,QAAQC,WAAW,QAAQC,UAAU,SAASC,MAAM,SAASC,eAAe,QAAQC,SAAS,SAASC,QAAQ,SAASC,KAAK,MAAMC,SAAS,IAAIC,SAAS,MAAMC,cAAc,SAASC,SAAS,SAASC,UAAU,MAAMC,SAAS,SAASC,UAAU,SAASC,YAAY,QAAQC,eAAe,QAAQC,WAAW,SAASC,WAAW,SAASC,QAAQ,QAAQC,WAAW,SAASC,aAAa,QAAQC,cAAc,QAAQC,cAAc,QAAQC,cAAc,QAAQC,cAAc,MAAMC,WAAW,QAAQC,SAAS,SAASC,YAAY,MAAMC,QAAQ,QAAQC,QAAQ,QAAQC,WAAW,QAAQC,UAAU,SAASC,YAAY,SAASC,YAAY,QAAQC,QAAQ,SAASC,UAAU,SAASC,WAAW,SAASC,KAAK,SAASC,UAAU,SAASC,KAAK,QAAQC,MAAM,MAAMC,YAAY,SAASC,KAAK,QAAQC,SAAS,SAASC,QAAQ,SAASC,UAAU,SAASC,OAAO,QAAQC,MAAM,SAASC,MAAM,SAASC,SAAS,SAASC,cAAc,SAASC,UAAU,QAAQC,aAAa,SAASC,UAAU,SAASC,WAAW,SAASC,UAAU,SAASC,qBAAqB,SAASC,UAAU,SAASC,WAAW,QAAQC,UAAU,SAASC,UAAU,SAASC,YAAY,SAASC,cAAc,QAAQC,aAAa,QAAQC,eAAe,QAAQC,eAAe,QAAQC,eAAe,SAASC,YAAY,SAASC,KAAK,MAAMC,UAAU,QAAQC,MAAM,SAASC,QAAQ,SAASC,OAAO,QAAQC,iBAAiB,QAAQC,WAAW,IAAIC,aAAa,SAASC,aAAa,QAAQC,eAAe,QAAQC,gBAAgB,QAAQC,kBAAkB,MAAMC,gBAAgB,QAAQC,gBAAgB,SAASC,aAAa,QAAQC,UAAU,SAASC,UAAU,SAASC,SAAS,SAASC,YAAY,SAASC,KAAK,IAAIC,QAAQ,SAASC,MAAM,QAAQC,UAAU,QAAQC,OAAO,SAASC,UAAU,SAASC,OAAO,SAASC,cAAc,SAASC,UAAU,SAASC,cAAc,SAASC,cAAc,SAASC,WAAW,SAASC,UAAU,SAASC,KAAK,SAASC,KAAK,SAASC,KAAK,SAASC,WAAW,SAASC,OAAO,QAAQC,cAAc,QAAQC,IAAI,SAASC,UAAU,SAASC,UAAU,QAAQC,YAAY,QAAQC,OAAO,SAASC,WAAW,SAASC,SAAS,QAAQC,SAAS,SAASC,OAAO,SAASC,OAAO,SAASC,QAAQ,QAAQC,UAAU,QAAQC,UAAU,QAAQC,UAAU,QAAQC,KAAK,SAASC,YAAY,MAAMC,UAAU,QAAQC,IAAI,SAASC,KAAK,MAAMC,QAAQ,SAASC,OAAO,SAASC,UAAU,QAAQC,OAAO,SAASC,MAAM,SAASC,MAAM,SAASC,WAAW,SAASC,OAAO,SAASC,YAAY,UAAU,SAASC,IAAI,OAAO9P,KAAK+P,MAAMC,YAAY,SAASC,IAAI,OAAOjQ,KAAK+P,MAAMG,YAAY,SAASC,EAAE/K,GAAG,IAAIC,EAAEC,EAAE,OAAOF,GAAGA,EAAE,IAAIgL,OAAOC,eAAehL,EAAEY,EAAEqK,KAAKlL,KAAKE,EAAED,EAAE,GAAGkL,OAAOlL,EAAEmL,SAASnL,EAAE,GAAG,IAAI,IAAIC,EAAEmL,EAAEpL,GAAG,IAAIC,EAAE,IAAIoL,GAAErL,GAAG,EAAE,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAG,IAAIA,GAAG,GAAGA,IAAI,EAAE,GAAGA,EAAE,GAAG,IAAIC,EAAEqL,EAAEtL,GAAG,GAAG,IAAIA,GAAG,GAAG,IAAIA,GAAG,EAAE,KAAK,IAAIA,GAAG,KAAK,IAAIC,EAAEqL,EAAEtL,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAG,IAAIA,IAAI,GAAGA,IAAI,EAAE,GAAGA,GAAG,KAAK,OAAOA,EAAEa,EAAEoK,KAAKlL,IAAI,IAAIsL,GAAErL,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAEe,EAAEkK,KAAKlL,IAAI,IAAIsL,GAAE,IAAIrL,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAEgB,EAAEiK,KAAKlL,IAAIuL,EAAEtL,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAKA,EAAEiB,EAAEgK,KAAKlL,IAAIuL,EAAE,IAAItL,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,KAAKA,EAAEkB,EAAE+J,KAAKlL,IAAIwL,GAAEvL,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAEmB,EAAE8J,KAAKlL,IAAIwL,GAAEvL,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIA,EAAE,IAAIoB,EAAEoK,eAAezL,GAAGqL,EAAEhK,EAAErB,IAAI,gBAAgBA,EAAE,IAAIsL,GAAEI,IAAIA,IAAIA,IAAI,GAAG,KAAK,SAASL,EAAErL,GAAG,OAAO,IAAIsL,GAAEtL,GAAG,GAAG,IAAIA,GAAG,EAAE,IAAI,IAAIA,EAAE,GAAG,SAASuL,EAAEvL,EAAEC,EAAEC,EAAEK,GAAG,OAAOA,GAAG,IAAIP,EAAEC,EAAEC,EAAEwL,KAAK,IAAIJ,GAAEtL,EAAEC,EAAEC,EAAEK,GAAG,SAASoL,GAAE3L,GAAG,OAAOA,aAAaQ,IAAIR,EAAE+K,EAAE/K,IAAIA,EAAE,IAAIsL,IAAGtL,EAAEA,EAAE2K,OAAOpK,EAAEP,EAAE4L,EAAE5L,EAAE6L,EAAE7L,EAAE8L,SAAS,IAAIR,GAAgF,SAASA,GAAEtL,EAAEC,EAAEC,EAAEK,GAAG3F,KAAK2F,GAAGP,EAAEpF,KAAKgR,GAAG3L,EAAErF,KAAKiR,GAAG3L,EAAEtF,KAAKkR,SAASvL,EAAE,SAASwL,KAAI,MAAM,IAAIC,GAAEpR,KAAK2F,GAAGyL,GAAEpR,KAAKgR,GAAGI,GAAEpR,KAAKiR,GAAG,SAASI,KAAI,IAAIjM,EAAEpF,KAAKkR,QAAQ,OAAO,KAAK9L,EAAEkM,MAAMlM,GAAG,EAAEmM,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,EAAEoB,KAAK,OAAO,SAASmM,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,IAAIuN,KAAKC,MAAMxR,KAAK2F,IAAI,IAAI,KAAK4L,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,IAAIuN,KAAKC,MAAMxR,KAAKgR,IAAI,IAAI,KAAKO,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,IAAIuN,KAAKC,MAAMxR,KAAKiR,IAAI,KAAK,IAAI7L,EAAE,IAAI,KAAKA,EAAE,KAAK,SAASgM,GAAEhM,GAAG,QAAQA,EAAEmM,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,IAAIuN,KAAKC,MAAMpM,IAAI,KAAK,GAAG,IAAI,IAAIA,EAAEqM,SAAS,IAAI,SAASb,GAAExL,EAAEC,EAAEC,EAAEK,GAAG,OAAOA,GAAG,EAAEP,EAAEC,EAAEC,EAAEwL,IAAIxL,GAAG,GAAGA,GAAG,EAAEF,EAAEC,EAAEyL,IAAIzL,GAAG,IAAID,EAAE0L,KAAK,IAAIY,GAAEtM,EAAEC,EAAEC,EAAEK,GAAG,SAASgM,GAAEvM,GAAG,GAAGA,aAAasM,GAAE,OAAO,IAAIA,GAAEtM,EAAE1F,EAAE0F,EAAEwM,EAAExM,EAAEyM,EAAEzM,EAAE8L,SAAS,GAAG9L,aAAaQ,IAAIR,EAAE+K,EAAE/K,KAAKA,EAAE,OAAO,IAAIsM,GAAE,GAAGtM,aAAasM,GAAE,OAAOtM,EAAE,IAAIC,GAAGD,EAAEA,EAAE2K,OAAOpK,EAAE,IAAIL,EAAEF,EAAE4L,EAAE,IAAIrL,EAAEP,EAAE6L,EAAE,IAAIa,EAAEP,KAAKvN,IAAIqB,EAAEC,EAAEK,GAAGoM,EAAER,KAAKxN,IAAIsB,EAAEC,EAAEK,GAAGqM,EAAElB,IAAImB,EAAEF,EAAED,EAAED,GAAGE,EAAED,GAAG,EAAE,OAAOG,GAAGD,EAAE3M,IAAI0M,GAAGzM,EAAEK,GAAGsM,EAAE,GAAG3M,EAAEK,GAAGL,IAAIyM,GAAGpM,EAAEN,GAAG4M,EAAE,GAAG5M,EAAEC,GAAG2M,EAAE,EAAEA,GAAGJ,EAAE,GAAGE,EAAED,EAAE,EAAEC,EAAED,EAAEE,GAAG,IAAIC,EAAEJ,EAAE,GAAGA,EAAE,EAAE,EAAEG,EAAE,IAAIN,GAAEM,EAAEC,EAAEJ,EAAEzM,EAAE8L,SAAS,SAASQ,GAAEtM,EAAEC,EAAEC,EAAEK,GAAG3F,KAAKN,GAAG0F,EAAEpF,KAAK4R,GAAGvM,EAAErF,KAAK6R,GAAGvM,EAAEtF,KAAKkR,SAASvL,EAAE,SAASuM,GAAG9M,EAAEC,EAAEC,GAAG,OAAO,KAAKF,EAAE,GAAGC,GAAGC,EAAED,GAAGD,EAAE,GAAGA,EAAE,IAAIE,EAAEF,EAAE,IAAIC,GAAGC,EAAED,IAAI,IAAID,GAAG,GAAGC,GAAGF,EAAES,EAAEuK,EAAE,CAACgC,KAAK,SAAS/M,GAAG,OAAOhD,OAAOgQ,OAAO,IAAIpS,KAAKwF,YAAYxF,KAAKoF,IAAIiN,YAAY,WAAW,OAAOrS,KAAK+P,MAAMsC,eAAeC,IAAIxC,EAAEE,UAAUF,EAAEyC,UAAU,WAAW,OAAOZ,GAAE3R,MAAMuS,aAAarC,UAAUD,EAAEwB,SAASxB,IAAI9K,EAAEuL,IAAt3C,SAAWtL,EAAEC,EAAEC,EAAEK,GAAG,OAAO,IAAI6M,UAAUjC,OAAOQ,GAAE3L,GAAG,IAAIsL,GAAEtL,EAAEC,EAAEC,EAAE,MAAMK,EAAE,EAAEA,KAA+yCF,EAAEG,EAAE,CAAC6M,SAAS,SAASrN,GAAG,OAAOA,EAAE,MAAMA,EAAES,EAAE0L,KAAKmB,IAAI7M,EAAET,GAAG,IAAIsL,GAAE1Q,KAAK2F,EAAEP,EAAEpF,KAAKgR,EAAE5L,EAAEpF,KAAKiR,EAAE7L,EAAEpF,KAAKkR,UAAUyB,OAAO,SAASvN,GAAG,OAAOA,EAAE,MAAMA,EAAE,GAAGmM,KAAKmB,IAAI,GAAGtN,GAAG,IAAIsL,GAAE1Q,KAAK2F,EAAEP,EAAEpF,KAAKgR,EAAE5L,EAAEpF,KAAKiR,EAAE7L,EAAEpF,KAAKkR,UAAUnB,IAAI,WAAW,OAAO/P,MAAMqS,YAAY,WAAW,OAAO,IAAIrS,KAAK2F,GAAG3F,KAAK2F,EAAE,QAAQ,IAAI3F,KAAKgR,GAAGhR,KAAKgR,EAAE,QAAQ,IAAIhR,KAAKiR,GAAGjR,KAAKiR,EAAE,OAAO,GAAGjR,KAAKkR,SAASlR,KAAKkR,SAAS,GAAGoB,IAAInB,GAAEnB,UAAUmB,GAAEjB,UAAUmB,GAAEI,SAASJ,MAAKlM,EAAEuM,IAAG,SAAStM,EAAEC,EAAEC,EAAEK,GAAG,OAAO,IAAI6M,UAAUjC,OAAOoB,GAAEvM,GAAG,IAAIsM,GAAEtM,EAAEC,EAAEC,EAAE,MAAMK,EAAE,EAAEA,KAAKF,EAAEG,EAAE,CAAC6M,SAAS,SAASrN,GAAG,OAAOA,EAAE,MAAMA,EAAES,EAAE0L,KAAKmB,IAAI7M,EAAET,GAAG,IAAIsM,GAAE1R,KAAKN,EAAEM,KAAK4R,EAAE5R,KAAK6R,EAAEzM,EAAEpF,KAAKkR,UAAUyB,OAAO,SAASvN,GAAG,OAAOA,EAAE,MAAMA,EAAE,GAAGmM,KAAKmB,IAAI,GAAGtN,GAAG,IAAIsM,GAAE1R,KAAKN,EAAEM,KAAK4R,EAAE5R,KAAK6R,EAAEzM,EAAEpF,KAAKkR,UAAUnB,IAAI,WAAW,IAAI3K,EAAEpF,KAAKN,EAAE,IAAI,KAAKM,KAAKN,EAAE,GAAG2F,EAAEiM,MAAMlM,IAAIkM,MAAMtR,KAAK4R,GAAG,EAAE5R,KAAK4R,EAAEtM,EAAEtF,KAAK6R,EAAElM,EAAEL,GAAGA,EAAE,GAAGA,EAAE,EAAEA,GAAGD,EAAEyM,EAAE,EAAExM,EAAEK,EAAE,OAAO,IAAI+K,GAAEwB,GAAG9M,GAAG,IAAIA,EAAE,IAAIA,EAAE,IAAI0M,EAAEnM,GAAGuM,GAAG9M,EAAE0M,EAAEnM,GAAGuM,GAAG9M,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI0M,EAAEnM,GAAG3F,KAAKkR,UAAUmB,YAAY,WAAW,OAAO,GAAGrS,KAAK4R,GAAG5R,KAAK4R,GAAG,GAAGN,MAAMtR,KAAK4R,KAAK,GAAG5R,KAAK6R,GAAG7R,KAAK6R,GAAG,GAAG,GAAG7R,KAAKkR,SAASlR,KAAKkR,SAAS,GAAGqB,UAAU,WAAW,IAAInN,EAAEpF,KAAKkR,QAAQ,OAAO,KAAK9L,EAAEkM,MAAMlM,GAAG,EAAEmM,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,EAAEoB,KAAK,OAAO,UAAUpF,KAAKN,GAAG,GAAG,KAAK,KAAKM,KAAK4R,GAAG,GAAG,MAAM,KAAK5R,KAAK6R,GAAG,GAAG,KAAK,IAAIzM,EAAE,IAAI,KAAKA,EAAE,SAAS,IAAIwN,GAAGrB,KAAKsB,GAAG,IAAIC,GAAG,IAAIvB,KAAKsB,GAAGE,GAAG,EAAE,GAAGC,GAAG,EAAE,GAAGC,GAAG,EAAED,GAAGA,GAAG,SAASE,GAAG9N,GAAG,GAAGA,aAAa+N,GAAG,OAAO,IAAIA,GAAG/N,EAAEyM,EAAEzM,EAAE4M,EAAE5M,EAAE6L,EAAE7L,EAAE8L,SAAS,GAAG9L,aAAagO,GAAG,OAAOC,GAAGjO,GAAGA,aAAasL,KAAItL,EAAE2L,GAAE3L,IAAI,IAAIC,EAAEC,EAAEK,EAAE2N,GAAGlO,EAAEO,GAAGmM,EAAEwB,GAAGlO,EAAE4L,GAAGe,EAAEuB,GAAGlO,EAAE6L,GAAGe,EAAEuB,IAAI,SAAS5N,EAAE,SAASmM,EAAE,SAASC,GAAG,GAAG,OAAOpM,IAAImM,GAAGA,IAAIC,EAAE1M,EAAEC,EAAE0M,GAAG3M,EAAEkO,IAAI,SAAS5N,EAAE,SAASmM,EAAE,SAASC,GAAG,QAAQzM,EAAEiO,IAAI,SAAS5N,EAAE,SAASmM,EAAE,SAASC,GAAG,SAAS,IAAIoB,GAAG,IAAInB,EAAE,GAAG,KAAK3M,EAAE2M,GAAG,KAAKA,EAAE1M,GAAGF,EAAE8L,SAAS,SAASiC,GAAG/N,EAAEC,EAAEC,EAAEK,GAAG3F,KAAK6R,GAAGzM,EAAEpF,KAAKgS,GAAG3M,EAAErF,KAAKiR,GAAG3L,EAAEtF,KAAKkR,SAASvL,EAAE,SAAS4N,GAAGnO,GAAG,OAAOA,EAAE,oBAAoBmM,KAAKmB,IAAItN,EAAE,EAAE,GAAGA,EAAE6N,GAAGF,GAAG,SAASS,GAAGpO,GAAG,OAAOA,EAAE4N,GAAG5N,EAAEA,EAAEA,EAAE6N,IAAI7N,EAAE2N,IAAI,SAASU,GAAGrO,GAAG,OAAO,KAAKA,GAAG,SAAS,MAAMA,EAAE,MAAMmM,KAAKmB,IAAItN,EAAE,EAAE,KAAK,MAAM,SAASkO,GAAGlO,GAAG,OAAOA,GAAG,MAAM,OAAOA,EAAE,MAAMmM,KAAKmB,KAAKtN,EAAE,MAAM,MAAM,KAAK,SAASsO,GAAGtO,GAAG,GAAGA,aAAagO,GAAG,OAAO,IAAIA,GAAGhO,EAAE1F,EAAE0F,EAAEuO,EAAEvO,EAAEyM,EAAEzM,EAAE8L,SAAS,GAAG9L,aAAa+N,KAAK/N,EAAE8N,GAAG9N,IAAI,IAAIA,EAAE4M,GAAG,IAAI5M,EAAE6L,EAAE,OAAO,IAAImC,GAAGtC,IAAI,EAAE1L,EAAEyM,GAAGzM,EAAEyM,EAAE,IAAI,EAAEf,IAAI1L,EAAEyM,EAAEzM,EAAE8L,SAAS,IAAI7L,EAAEkM,KAAKqC,MAAMxO,EAAE6L,EAAE7L,EAAE4M,GAAGc,GAAG,OAAO,IAAIM,GAAG/N,EAAE,EAAEA,EAAE,IAAIA,EAAEkM,KAAKsC,KAAKzO,EAAE4M,EAAE5M,EAAE4M,EAAE5M,EAAE6L,EAAE7L,EAAE6L,GAAG7L,EAAEyM,EAAEzM,EAAE8L,SAA0F,SAASkC,GAAGhO,EAAEC,EAAEC,EAAEK,GAAG3F,KAAKN,GAAG0F,EAAEpF,KAAK2T,GAAGtO,EAAErF,KAAK6R,GAAGvM,EAAEtF,KAAKkR,SAASvL,EAAE,SAAS0N,GAAGjO,GAAG,GAAGkM,MAAMlM,EAAE1F,GAAG,OAAO,IAAIyT,GAAG/N,EAAEyM,EAAE,EAAE,EAAEzM,EAAE8L,SAAS,IAAI7L,EAAED,EAAE1F,EAAEkT,GAAG,OAAO,IAAIO,GAAG/N,EAAEyM,EAAEN,KAAKuC,IAAIzO,GAAGD,EAAEuO,EAAEpC,KAAKwC,IAAI1O,GAAGD,EAAEuO,EAAEvO,EAAE8L,SAA0gpC,SAAS8C,GAAG5O,EAAEC,EAAEC,GAAG,QAAG,IAASF,QAAG,IAASC,EAAE,OAAOC,EAAE,IAAI,IAAIK,EAAEN,EAAE4O,MAAM,KAAKnC,EAAE1M,EAAE2M,EAAE,EAAEA,EAAEpM,EAAE4K,SAASwB,EAAE,CAAC,IAAIC,EAAErM,EAAEoM,GAAG,QAAG,IAASD,EAAEE,GAAG,OAAO1M,EAAEwM,EAAEA,EAAEE,GAAG,OAAOF,EAAE,SAASoC,GAAG9O,EAAEC,EAAEC,GAAG,QAAG,IAASF,QAAG,IAASC,EAAE,CAAC,IAAI,IAAIM,EAAEN,EAAE4O,MAAM,KAAKnC,EAAEnM,EAAEA,EAAE4K,OAAO,GAAGwB,EAAE3M,EAAE4M,EAAE,EAAEA,EAAErM,EAAE4K,OAAO,IAAIyB,EAAE,CAAC,IAAIC,EAAEtM,EAAEqM,QAAG,IAASD,EAAEE,KAAKF,EAAEE,GAAGkC,OAAO7C,OAAO3L,EAAEqM,EAAE,IAAI,GAAG,IAAID,EAAEA,EAAEE,QAAG,IAAS3M,EAAEyM,EAAED,GAAGxM,SAASyM,EAAED,IAA+uK,SAASsC,GAAGhP,EAAEC,GAAG,KAAKD,aAAaC,GAAG,MAAM,IAAIgP,UAAU,qCAAqC,SAASC,GAAGlP,EAAEC,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEkL,OAAOjL,IAAI,CAAC,IAAIK,EAAEN,EAAEC,GAAGK,EAAE4O,WAAW5O,EAAE4O,aAAY,EAAG5O,EAAE6O,cAAa,EAAG,UAAU7O,IAAIA,EAAE8O,UAAS,GAAIrS,OAAOsS,eAAetP,EAAEO,EAAEgP,IAAIhP,IAAI,SAASiP,GAAGxP,EAAEC,EAAEC,GAAG,OAAOD,GAAGiP,GAAGlP,EAAEG,UAAUF,GAAGC,GAAGgP,GAAGlP,EAAEE,GAAGF,EAAE,SAASyP,GAAGzP,EAAEC,EAAEC,GAAG,OAAOD,KAAKD,EAAEhD,OAAOsS,eAAetP,EAAEC,EAAE,CAACyP,MAAMxP,EAAEiP,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKrP,EAAEC,GAAGC,EAAEF,EAAjs0CD,EAAEgO,IAAI,SAAS/N,EAAEC,EAAEC,EAAEK,GAAG,OAAO,IAAI6M,UAAUjC,OAAO2C,GAAG9N,GAAG,IAAI+N,GAAG/N,EAAEC,EAAEC,EAAE,MAAMK,EAAE,EAAEA,KAAKF,EAAEG,EAAE,CAAC6M,SAAS,SAASrN,GAAG,OAAO,IAAI+N,GAAGnT,KAAK6R,EAAE,IAAI,MAAMzM,EAAE,EAAEA,GAAGpF,KAAKgS,EAAEhS,KAAKiR,EAAEjR,KAAKkR,UAAUyB,OAAO,SAASvN,GAAG,OAAO,IAAI+N,GAAGnT,KAAK6R,EAAE,IAAI,MAAMzM,EAAE,EAAEA,GAAGpF,KAAKgS,EAAEhS,KAAKiR,EAAEjR,KAAKkR,UAAUnB,IAAI,WAAW,IAAI3K,GAAGpF,KAAK6R,EAAE,IAAI,IAAIxM,EAAEiM,MAAMtR,KAAKgS,GAAG5M,EAAEA,EAAEpF,KAAKgS,EAAE,IAAI1M,EAAEgM,MAAMtR,KAAKiR,GAAG7L,EAAEA,EAAEpF,KAAKiR,EAAE,IAAI,OAAO,IAAIP,GAAE+C,GAAG,WAAWpO,EAAE,OAAOmO,GAAGnO,IAAI,WAAWD,EAAE,EAAEoO,GAAGpO,IAAI,UAAUE,EAAE,OAAOkO,GAAGlO,KAAKmO,IAAI,SAASpO,EAAE,UAAUD,EAAE,QAAQE,GAAGmO,GAAG,SAASpO,EAAE,SAASD,EAAE,UAAUE,GAAGtF,KAAKkR,aAAa/L,EAAEiO,IAAppC,SAAYhO,EAAEC,EAAEC,EAAEK,GAAG,OAAO,IAAI6M,UAAUjC,OAAOmD,GAAGtO,GAAG,IAAIgO,GAAGhO,EAAEC,EAAEC,EAAE,MAAMK,EAAE,EAAEA,KAA4kCF,EAAEG,EAAE,CAAC6M,SAAS,SAASrN,GAAG,OAAO,IAAIgO,GAAGpT,KAAKN,EAAEM,KAAK2T,EAAE3T,KAAK6R,EAAE,IAAI,MAAMzM,EAAE,EAAEA,GAAGpF,KAAKkR,UAAUyB,OAAO,SAASvN,GAAG,OAAO,IAAIgO,GAAGpT,KAAKN,EAAEM,KAAK2T,EAAE3T,KAAK6R,EAAE,IAAI,MAAMzM,EAAE,EAAEA,GAAGpF,KAAKkR,UAAUnB,IAAI,WAAW,OAAOsD,GAAGrT,MAAM+P,UAAo7yD,IAAOgF,GAAGC,IAAO,SAAS5P;;AAE79vEA,EAAE6P,QAAQ,SAAS7P,EAAEC,GAAG,IAAID,GAAGkM,OAAOjM,GAAG,OAAOA,EAAE,IAAIC,EAAEK,EAAEmM,EAAEC,EAAEC,EAAEC,EAAEJ,EAAE8B,EAAE/B,EAAEsD,EAAEvT,EAAEyD,EAAEmL,OAAO4E,EAAE/P,EAAEgQ,OAAO,cAAcC,EAAEF,EAAE,EAAE/P,EAAEkQ,UAAU,EAAEH,GAAG,GAAGzV,EAAE0F,EAAE6O,MAAM,IAAIsB,UAAUC,KAAK,IAAIC,EAAE/V,EAAE0V,OAAO,cAAcM,EAAE/T,EAAE8T,EAAEzE,EAAE5L,EAAEkQ,UAAUI,EAAEA,EAAE,GAAGzE,EAAEyE,GAAG,MAAM1E,GAAG,MAAMA,EAAE,EAAE,GAAG2E,EAAEF,EAAE,EAAErQ,EAAEkQ,UAAUrE,EAAEtP,GAAG,GAAG,GAAG2D,GAAGD,EAAE,OAAOD,EAAEA,EAAEkQ,UAAUH,EAAElE,IAAI2E,OAAO,IAAIvQ,GAAGA,GAAG,EAAEA,GAAGA,EAAE,EAAEyM,GAAGnM,EAAEP,EAAEyQ,MAAM,iBAAiBlQ,EAAEA,EAAE4K,OAAO,IAAI,IAAIwB,EAAEpM,GAAGA,EAAE,IAAIA,EAAE,IAAI,IAAIP,EAAEA,EAAE6O,MAAMnC,GAAGzM,IAAIA,EAAEA,EAAEyQ,QAAQ1Q,EAAE,IAAIA,EAAE,GAAGmL,SAAS,GAAG0B,EAAE7M,EAAE,IAAIA,EAAE,GAAG2Q,YAAY,QAAQpC,EAAEtO,EAAE4O,MAAM,MAAM,IAAIN,EAAE,IAAIA,EAAE,GAAGpD,QAAQ0B,KAAK5M,IAAIA,GAAGyQ,QAAQ7D,EAAE,IAAIL,EAAExM,EAAE,GAAG6O,MAAMlC,GAAG3M,EAAE,GAAGwM,EAAE4D,KAAK,KAAKxD,EAAE5M,EAAE,IAAIA,EAAE,GAAG4Q,QAAQ,OAAO,EAAE,KAAKrC,EAAE,GAAGpD,OAAOnL,EAAE,GAAGmL,OAAOyB,GAAG2B,EAAE,GAAG,IAAIA,EAAE,QAAQ,IAAIA,EAAE,KAAKA,EAAE,GAAG,IAAI,IAAItO,EAAEA,EAAE4O,MAAM,MAAM,GAAGN,EAAE,GAAG9B,EAAED,EAAE,IAAIA,EAAEA,EAAErB,OAAO,GAAGA,OAAO,CAAC,IAAI7Q,EAAE,GAAGgW,GAAGR,EAAE7P,EAAE,IAAIkL,OAAOsB,EAAElQ,EAAEuT,EAAE3E,OAAOU,EAAE,EAAEA,EAAEtP,EAAEsP,IAAIvR,GAAGwV,EAAEU,OAAO3E,MAAMA,EAAEyE,EAAE,GAAG7D,IAAIZ,EAAEtP,EAAEkQ,IAAInS,GAAGqS,GAAG1M,EAAE,GAAG3F,EAAE,OAAO2F,EAAE,GAAGD,EAAE,IAAIC,EAAE,GAAGyM,EAAEzM,EAAE,GAAG,GAAG,OAAOM,EAAEN,EAAEmQ,KAAK,MAAM,KAAK7P,IAAIL,GAAE,GAAI+P,GAAG/P,EAAE,IAAI,IAAIK,EAAEgQ,GAAIM,CAAGlB,GAAG,CAACE,QAAQ,KAAgBF,GAAGE,SAAS,SAASiB,GAAG9Q,GAAG,OAAOA,EAAE+Q,QAAQ,wBAAwB,QAAQ,IAAIC,GAAG,CAACC,EAAE,IAAIC,EAAE,IAAIC,EAAE,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,KAAK,IAAIC,KAAK,IAAIC,KAAK,IAAIC,MAAM,IAAIC,MAAM,IAAIC,MAAM,IAAIC,MAAM,IAAIC,MAAM,KAAKC,GAAG,KAAKC,GAAG,gCAAgCC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,0EAA0EC,GAAG,OAAO,SAASC,GAAG1S,EAAEC,EAAEC,EAAEK,GAAG,OAAOP,EAAEA,EAAEqM,SAASpM,GAAGC,EAAE,KAAKA,EAAE,GAAGyS,gBAAgB3S,EAAEA,EAAE2S,eAAe3S,EAAEmL,OAAOnL,EAAE4Q,QAAQ,KAAK,KAAK5Q,EAAEA,EAAE4S,MAAM,EAAE5S,EAAE4Q,QAAQ,KAAK,KAAK5Q,EAAE+Q,QAAQ,IAAIxQ,GAAG,KAAyoB,SAASsS,GAAG7S,EAAEC,EAAEC,GAAG,IAAIK,EAAEuQ,GAAG9Q,GAAG,OAAOE,EAAEK,EAAE,IAAIQ,OAAOR,GAAG,GAAGN,GAAG,SAAS6S,GAAG9S,EAAEC,EAAEC,GAAG,IAAIK,EAAEmM,EAAEC,EAAEC,EAAEC,EAAEJ,EAAE8B,EAAE/B,EAAEsD,EAAEvT,EAAEwT,EAAEE,EAAEjQ,EAAE+S,QAAQ9C,EAAEW,QAAQ,MAAM,IAAIX,EAAEA,EAAEc,QAAQ,IAAI,IAAI/Q,EAAEgT,YAAW,GAAIzW,EAAE0D,GAAG8P,EAAE7P,KAAK6P,EAAEe,GAAGf,IAAIxT,IAAIA,EAAEuU,GAAGvU,IAAIuT,EAAE,IAAI/O,OAAO,WAAWkS,OAAO1W,EAAE,cAAc0W,OAAOlD,EAAE,YAAYnD,GAAGD,GAAGA,EAAEsD,EAAEQ,MAAMX,IAAInD,EAAE,GAAG,IAAIsD,EAAEiD,OAAO,EAAEjD,EAAEW,QAAQjE,IAAIsD,EAAEpD,EAAEF,EAAEsD,EAAEC,UAAUD,EAAEW,QAAQjE,GAAGA,EAAExB,QAAQ,GAAGwB,IAAIA,EAAEsD,EAAE,IAAI,cAAchQ,GAAGA,IAAIC,IAAIwM,GAAGnM,EAAEoM,EAAEkC,MAAM3O,IAAIiT,MAAMxG,EAAEpM,EAAE6P,KAAK,IAAIlQ,EAAEwM,EAAEzM,EAAE,IAAIwM,EAAExM,EAAEA,EAAE,IAAImT,KAAKlT,GAAG,IAAI,IAAIuM,IAAIE,EAAEA,EAAEoE,QAAQ8B,GAAGpG,EAAE,KAAKxM,IAAIsO,EAAErO,EAAEA,EAAE,IAAIqO,IAAI5B,EAAEA,EAAEoE,QAAQ8B,GAAGtE,EAAE,KAAKrO,IAAIsM,GAAGA,EAAEG,EAAE8D,MAAM,OAAOjE,EAAErB,OAAO,EAAE,IAAI7Q,EAAE+V,EAAEJ,EAAEpB,MAAMN,GAAG8B,EAAE,KAAK/V,EAAE+V,EAAE,GAAGI,MAAMgC,KAAKzS,EAAEqT,OAAOzG,GAAG,GAAG5M,EAAEsT,QAAQzG,GAAG,GAAG7M,EAAE+S,QAAQ9C,EAAEjQ,EAAEuT,aAAajZ,EAAEA,EAAE6Q,OAAO,EAAEnL,EAAEwT,WAAWvB,GAAGmB,KAAKnD,GAAGjQ,EAAEyT,eAAe9G,GAAG,GAAG3M,EAAE0T,aAAa,IAAI3S,OAAO,GAAGkS,OAAOJ,GAAG5S,EAAE,MAAK,GAAI,KAAKgT,OAAOJ,GAAG3S,EAAE,MAAK,IAAK,KAAKF,EAAE2T,UAAUlH,EAAEzM,EAAE4T,QAAQrF,EAAEvO,EAAEC,EAAEA,EAAED,EAAEzD,EAAE2D,EAAEF,EAAE6T,KAAKrH,cAAoB,SAASxM,EAAEC,EAAEC,EAAEK,EAAEmM,EAAEC,GAAGqC,GAAGpU,KAAKoF,GAAGpF,KAAKkZ,WAAW7T,EAAErF,KAAKmY,QAAQ7S,EAAEtF,KAAKmZ,kBAAkBxT,GAAG,IAAI3F,KAAKoZ,iBAAiBtH,GAAG,IAAI9R,KAAKyB,KAAKsQ,GAAG,UAAU/R,KAAKqZ,iBAAiB,IAAIrZ,KAAKsZ,cAAc,SAASlU,EAAEC,GAAG,IAAID,IAAIA,EAAEmU,uBAAuB,OAAOnD,GAAG,IAAI9Q,EAAE,GAAG,OAAOF,EAAEmU,uBAAuBtF,MAAM5O,GAAGmU,SAAS,SAASpU,GAAG,IAAIC,EAAED,EAAE6O,MAAM,KAAK,IAAI5O,EAAEkL,SAASjL,EAAED,EAAE,IAAIA,EAAE,OAAOC,EAAnL,CAAsLD,EAAErF,KAAKqZ,kBAAkBrZ,KAAKyZ,UAAiB7E,GAAGxP,EAAE,CAAC,CAACuP,IAAI,QAAQG,MAAM,WAAW,IAAIzP,EAAE,IAAID,EAAEpF,KAAKkZ,WAAWlZ,KAAKmY,QAAQnY,KAAKmZ,kBAAkBnZ,KAAKoZ,iBAAiBpZ,KAAKyB,MAAM,OAAO4D,EAAEqU,QAAQ1Z,KAAK0Z,QAAQrU,IAAI,CAACsP,IAAI,SAASG,MAAM,SAAS1P,EAAEC,EAAEC,EAAEK,GAAG,OAAO3F,KAAKyZ,QAAQpU,EAAEC,EAAEK,GAAG3F,KAAK2Z,YAAYvU,KAAK,CAACuP,IAAI,UAAUG,MAAM,SAAS1P,EAAEC,EAAEC,GAAG,IAAIK,OAAE,IAASP,IAAIA,EAAEpF,KAAKmY,cAAS,IAAS9S,IAAIA,EAAErF,KAAKmZ,wBAAmB,IAAS7T,IAAIA,EAAEtF,KAAKoZ,kBAAkBhU,GAAGpF,KAAK4Z,UAAU,CAACC,SAAS,CAAClY,EAAE2D,EAAED,EAAEA,EAAE+S,YAAW,EAAG0B,cAAa,EAAGrB,OAAO,GAAGC,QAAQ,IAAIqB,SAAS,CAACpY,EAAE2D,EAAED,EAAEA,EAAE+S,YAAW,EAAG0B,cAAa,EAAGrB,OAAO,GAAGC,QAAQ,IAAIsB,KAAK,CAACrY,EAAE2D,EAAED,EAAEA,EAAE+S,YAAW,EAAG0B,cAAa,EAAGrB,OAAO,GAAGC,QAAQ,KAAK/S,EAAE3F,KAAK4Z,UAAUxU,EAAEA,EAAE6O,MAAMjU,KAAKqZ,kBAAkB1T,EAAEkU,SAAS1B,QAAQ/S,EAAE,GAAGO,EAAEoU,SAAS5B,QAAQ/S,EAAE,GAAGO,EAAEqU,KAAK7B,QAAQ/S,EAAE,GAAGwS,GAAGY,KAAKpT,EAAE,MAAMO,EAAEkU,SAASC,cAAa,GAAI1U,EAAE,GAAGwS,GAAGY,KAAKpT,EAAE,MAAMO,EAAEoU,SAASD,cAAa,GAAInU,EAAEoU,UAAS,EAAG3U,EAAE,GAAGwS,GAAGY,KAAKpT,EAAE,MAAMO,EAAEqU,KAAKF,cAAa,GAAInU,EAAEqU,MAAK,EAAGrU,EAAEkU,SAASC,cAAc5B,GAAGvS,EAAEkU,SAASxU,EAAEC,GAAGK,EAAEoU,WAAWpU,EAAEoU,SAASD,cAAc5B,GAAGvS,EAAEoU,SAAS1U,EAAEC,GAAGK,EAAEqU,OAAOrU,EAAEqU,KAAKF,cAAc5B,GAAGvS,EAAEqU,KAAK3U,EAAEC,IAAItF,KAAK4Z,UAAU,CAACzB,SAAQ,KAAM,CAACxD,IAAI,cAAcG,MAAM,SAAS1P,GAAG,IAAIC,EAAEC,EAAEK,EAAEmM,EAAEC,EAAEC,EAAEC,EAAEJ,EAAE8B,EAAE/B,EAAE5R,KAAK4Z,UAAU1E,EAAE,GAAGvT,EAAE,GAAGwT,EAAE/P,EAAE,GAAGkM,MAAMlM,GAAG,MAAM,GAAGiT,OAAOlD,GAAG,GAAG/P,GAAGA,GAAE,IAAKwM,EAAEuG,QAAQ,OAAO/S,EAAEqM,WAAW,GAAG,IAAIrM,GAAGwM,EAAEoI,KAAK,OAAOpI,EAAEA,EAAEoI,MAAM7B,QAAQ,GAAG/S,EAAE,GAAGwM,EAAEmI,UAAUnI,EAAEA,EAAEmI,SAAS3U,GAAGA,GAAGwM,EAAEA,EAAEiI,SAAS9H,EAAEH,EAAEjQ,EAAEqQ,EAAEJ,EAAEvM,EAAEuM,EAAEkI,aAAa1U,EAApwG,SAAYA,EAAEC,EAAEC,GAAG,IAAIK,EAAE,OAAO2R,GAAGkB,KAAKnT,GAAGD,EAAE0S,GAAG1S,EAAE+O,OAAO,QAAQ7D,KAAKjL,GAAG,IAAIA,EAAEC,GAAGiS,GAAGiB,KAAKnT,GAAGD,EAAE0S,GAAG1S,EAAE,EAAEC,EAAEC,GAAGkS,GAAGgB,KAAKnT,GAAGD,EAAE0S,GAAG1S,EAAE,GAAGC,EAAEC,GAAGmS,GAAGe,KAAKnT,GAAGD,EAAE0S,GAAG1S,EAAE,GAAGC,EAAEC,GAAGoS,GAAGc,KAAKnT,GAAGD,EAAE0S,GAAG1S,EAAE,EAAEC,EAAEC,GAAGqS,GAAGa,KAAKnT,KAAKM,EAAE,GAAGP,EAAE,IAAIO,EAAE,IAAIP,GAAGA,GAAG,KAAKA,EAAEmM,KAAK0I,MAAM7U,IAAIA,EAAE,IAAIA,GAAG,KAAKA,EAAE,SAASA,EAAEC,GAAG,IAAI,IAAIC,EAAEK,EAAE,GAAGmM,EAAEqC,OAAO+F,OAAO9U,GAAG4S,OAAO,IAAIjG,GAAG3M,EAAE0M,GAAG,IAAIE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKuD,UAAUtD,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAMsD,UAAUzD,EAAE,GAAG,IAAIxM,EAAE,EAAEA,EAAE0M,EAAEzB,OAAOjL,IAAI,GAAG0M,EAAE1M,IAAIwM,EAAE,CAACnM,GAAGsM,EAAE3M,GAAGwM,GAAGE,EAAE1M,GAAG,MAAM,IAAIA,EAAE,EAAEA,EAAEyM,EAAEzM,IAAIK,EAAE,IAAI0S,OAAO1S,GAAG,OAAON,EAAE,KAAKA,EAAE,GAAG0S,gBAAgBpS,EAAEA,EAAE0K,eAAe1K,EAAvV,CAA0VP,EAAEC,GAAGD,EAAEO,EAAEP,GAAGA,EAAEC,EAAEM,EAAEP,EAAE+U,cAAc,IAAI/U,EAAooFgV,CAAGhV,EAAEwM,EAAEuG,QAAQpG,OAAO,CAAC,GAAGH,EAAEgH,aAAaxT,GAAG,KAAKwM,EAAEwG,WAAW,CAAC,IAAI/C,EAAE3V,EAAE+V,EAAErT,OAAOiY,KAAKra,KAAKsZ,eAAegB,KAAK,SAASlV,GAAG,OAAOoL,SAASpL,EAAE,OAAOmV,MAAM,SAASnV,EAAEC,GAAG,OAAOD,EAAEC,KAAKqQ,EAAED,EAAE,GAAG,IAAIxD,EAAE,EAAE3M,EAAE6O,OAAOA,OAAO/O,GAAG+U,gBAAgBlG,MAAM,KAAK,IAAIyB,GAAGpQ,GAAG2M,EAAEwD,EAAElF,QAAQmF,EAAED,IAAIxD,GAAGA,EAAE,IAAIoD,EAAEI,EAAExD,EAAE,IAAIoD,GAAG/P,EAAE,GAAG+P,EAAE,EAAE3V,EAAE2V,GAAG/P,EAAE,GAAG+P,EAAE,IAAIA,KAAKK,EAAE,GAAGA,EAAEpQ,GAAGsM,EAAE+G,aAAajZ,EAAEgW,EAAEL,GAAG/P,KAAKoQ,EAAE,IAAIpQ,GAAGsM,EAAE+G,gBAAgBjZ,EAAE2V,IAAI3V,IAAIwV,EAAElV,KAAKsZ,cAAc5Z,GAAG0F,GAAGmM,KAAKmB,IAAI,GAAGhT,IAAI,GAAGiG,EAAE4L,KAAKiJ,IAAIpV,GAAGC,EAAEuM,EAAEqH,KAAKtF,GAAG9B,EAAED,EAAEiH,gBAAgB5E,MAAMlC,GAAG,GAAG,MAAM/R,KAAKyB,OAAO2D,EAAEmM,KAAKC,MAAMpM,IAAI0M,EAAE1M,EAAEuO,GAAG,MAAM9B,EAAEmG,OAAO,GAAG,GAAG,GAAGrS,GAAG,MAAMA,EAAE,GAAGA,GAAG,MAAMP,EAAEO,EAAEA,EAAEwU,cAAc,IAAIhE,QAAQ,aAAa,IAAI,QAAQ,CAAC,IAAInF,EAAEmD,OAAO/O,EAAE0Q,QAAQvE,KAAKvN,IAAI,GAAG2P,EAAEA,EAAEpD,OAAO,IAAI0D,MAAM,KAAK,IAAIhD,EAAEY,EAAEoC,MAAMlC,GAAG,GAAG,GAAG3M,EAAE4P,GAAG/D,GAAGc,EAAEf,IAAI,IAAI2C,EAAE,CAAC,IAAIgC,EAAEpE,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,GAAG2P,EAAEpD,SAASkK,EAAE9G,EAAEwC,QAAQ,MAAM,IAAI5F,OAAOmK,GAAG,MAAM1a,KAAKyB,KAAK,EAAEkE,EAAE,GAAGmQ,QAAQH,GAAGqC,MAAM,GAAG7B,QAAQ,MAAM,IAAI,IAAIlE,EAAEyI,EAAEnK,OAAO0B,EAAEwI,EAAExI,IAAIyI,GAAG,IAAIA,IAAItV,GAAG2M,EAAE2I,QAAQ,IAAI1J,IAAIc,EAAE,QAAQ,GAAGnM,GAAG4L,KAAKmB,IAAI,GAAGrN,IAAIM,EAAE,GAAGA,EAAE,KAAK,IAAIP,EAAEA,EAAE,IAAIO,EAAE,MAAMA,GAAG,MAAMP,GAAGA,EAAE0M,EAAEqI,cAAc5I,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,GAAGqB,IAAI,IAAI8Q,QAAQ,aAAa,IAAIxU,EAAE,KAAKyD,EAAEA,EAAEuV,YAAYpJ,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,GAAGqB,MAAM2Q,QAAQ,MAAM,IAAI5Q,GAAGA,EAAEA,EAAE+Q,QAAQ/Q,EAAE4Q,QAAQ,KAAK,EAAE,MAAM,aAAa,KAAKG,QAAQ,IAAIpE,QAAQ,CAAC,IAAIF,GAAGE,EAAE1M,EAAEkM,KAAKxN,IAAI,EAAEwN,KAAKvN,IAAI,GAAGqB,EAAEkM,KAAKqJ,KAAKrJ,KAAKsJ,IAAIlV,GAAG4L,KAAKsJ,IAAI,OAAO5I,EAAE,EAAEA,EAAE5M,EAAE4M,IAAIJ,GAAG,IAAIzM,EAAE4P,GAAGnD,EAAEzM,GAAGA,EAAEA,EAAE+Q,QAAQvE,EAAEkH,cAAc,SAAS1T,GAAG,OAAOA,IAAI4M,EAAEJ,EAAEmH,UAAU3T,IAAI2M,EAAEH,EAAEoH,QAAQ,MAAMlH,EAAE,IAAI,KAAK0G,KAAKpT,KAAKA,EAAE,IAAIiT,OAAOjT,IAAI,OAAOwM,EAAE6G,OAAOrT,EAAEzD,EAAEuT,EAAEtD,EAAE8G,WAAW,CAAC,CAAC/D,IAAI,qBAAqBG,MAAM,WAAW,MAAM,CAAC2E,QAAQ,aAAaE,YAAY,SAASvU,GAAG,MAAM,GAAGiT,OAAOjT,YAAwjC0V,IAA8BC,GAAG,CAAC,SAAS,UAAU,YAAY,WAAW,SAAS,WAAW,UAAUC,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAOC,GAAG,CAAC,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAU,WAAW,YAAYC,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,SAASC,GAAG/V,EAAEC,GAAG,IAAI,IAAIC,EAAEF,EAAEmL,OAAOjL,EAAED,EAAEC,IAAIF,EAAE,IAAIiT,OAAOjT,GAAG,OAAOA,EAAE,SAASgW,GAAGhW,GAAG,IAAIC,EAAED,EAAEqM,WAAWwC,MAAM,KAAK,OAAO5O,EAAE,GAAGA,EAAE8O,OAAO,KAAKkE,OAAOhT,EAAE,KAAK,cAAwlB,SAASD,EAAEC,EAAEC,EAAEK,GAAGyO,GAAGpU,KAAKoF,GAAG,IAAI0M,EAAEC,EAAE1M,GAAG,GAAI0M,EAAEsJ,mBAAmBtJ,EAAEsJ,iBAAiB,CAACC,cAAcP,GAAGQ,UAAUP,GAAGQ,gBAAgBP,GAAGQ,YAAYP,KAAKlb,KAAKkZ,WAAWnH,EAAE/R,KAAK0b,YAAY3J,EAAEsJ,iBAAiBC,cAActD,QAAQhY,KAAK2b,iBAAiB5J,EAAEsJ,iBAAiBE,UAAUvD,QAAQhY,KAAK4b,cAAc7J,EAAEsJ,iBAAiBG,gBAAgBxD,QAAQhY,KAAK6b,mBAAmB9J,EAAEsJ,iBAAiBI,YAAYzD,QAAQ1S,IAAKA,GAAGuP,GAAG/C,EAAE,GAAz+C,IAA++CC,EAAE+J,UAAU,YAAYjH,GAAG/C,EAAjhD,IAAshDC,EAAEgK,UAAU,cAAclH,GAAG/C,EAAriD,KAA0iDC,EAAEiK,eAAe,uBAAuBlK,GAAGnM,IAAI3F,KAAKmY,QAAQ7S,EAASsP,GAAGxP,EAAE,CAAC,CAACuP,IAAI,QAAQG,MAAM,WAAW,IAAIzP,EAAE,IAAID,EAAEpF,KAAKkZ,WAAWlZ,KAAKmY,SAAS,OAAO9S,EAAEqU,QAAQ1Z,KAAK0Z,QAAQrU,IAAI,CAACsP,IAAI,SAASG,MAAM,SAAS1P,EAAEC,GAAGA,IAAIA,EAAErF,KAAKmY,QAAQnY,KAAKmY,QAAQ,uBAAuB9S,EAAEA,EAAE8Q,QAAQ,cAAc,IAAI,IAAI7Q,EAAEK,EAAEmM,EAAEC,EAAEC,EAAEC,EAAE,OAAOuG,KAAKnT,GAAGD,aAAa6W,MAAMnK,EAAEG,EAAEF,GAAGpM,EAAEP,GAAG8W,cAAgCpK,KAAKC,GAAG,MAAMA,EAAE,MAAlCC,EAAErM,EAAEwW,YAAY,GAAyB,IAAInK,EAAE,GAAG1M,EAAE,CAAC8W,KAAKzW,EAAE0W,iBAAiBC,MAAM3W,EAAE4W,cAAcC,IAAIxK,EAAEyK,KAAK9W,EAAE+W,aAAahd,EAAEqS,EAAE0D,EAAE9P,EAAEgX,gBAAgB/K,EAAEjM,EAAEiX,gBAAgB1H,EAAEvP,EAAEkX,qBAAqBxX,EAAEM,EAAEuW,eAAe,GAAG,KAAK,QAAQ9W,EAAE,IAAIA,GAAGA,EAAEC,EAAE,IAAIgT,OAAOhT,IAAIC,EAA/rD,SAAYF,EAAEC,GAAG,IAAIC,EAAEK,EAAE,SAASP,GAAG,IAAIC,EAAED,EAAEE,EAAE,GAAG8V,GAAG/V,GAAGM,EAAE,GAAGyV,GAAG9V,GAAGwM,EAAE,GAAGsJ,GAAGzV,GAAGoM,EAAE,IAAIqJ,GAAGtJ,GAAG,MAAM,CAACnQ,EAAE4P,KAAK0I,MAAM5U,GAAG3F,EAAE6R,KAAK0I,MAAM3U,GAAGmQ,EAAElE,KAAK0I,MAAMtU,GAAGiM,EAAEL,KAAK0I,MAAMnI,GAAGoD,EAAE3D,KAAKC,MAAMO,IAArJ,CAA0J3M,GAAG0M,EAAEnM,EAAEhE,EAAEoQ,EAAEpM,EAAEjG,EAAEsS,EAAErM,EAAE8P,EAAExD,EAAEtM,EAAEiM,EAAEC,EAAElM,EAAEuP,EAAEvB,EAAE,EAAE,UAAU6E,KAAKnT,KAAKC,EAAE,IAAI2W,KAAKA,KAAKa,IAAI,KAAK,GAAG,GAAGvL,KAAK0I,MAAM7U,GAAG,EAAE,EAAEmM,KAAKC,MAAM,OAAOpM,EAAEmM,KAAK0I,MAAM7U,OAAOkM,MAAMhM,EAAEyX,aAAazX,EAAE,OAAO,OAAOkT,KAAKnT,KAAK0M,GAAG,GAAGD,GAAG,OAAO0G,KAAKnT,KAAK2M,GAAG,GAAGD,GAAG,OAAOyG,KAAKnT,KAAK4M,GAAG,GAAGD,GAAG,OAAOwG,KAAKnT,KAAKsO,EAAErO,EAAEA,EAAE0X,SAAS,EAAE,GAAG,IAAIrJ,EAAE,GAAG,IAAI/B,EAAE,GAAG,OAAOtM,IAAIsM,EAAEtM,EAAE4W,eAAe,GAAG,KAAK,MAAM,CAACE,KAAK,EAAEE,MAAM,EAAEE,IAAI7I,EAAE8I,KAAK3K,EAAEpS,EAAEqS,EAAE0D,EAAEzD,EAAEJ,EAAEK,EAAEiD,EAAErD,EAAExM,EAAEuM,GAAgoCqL,CAAG7X,EAAEC,IAAI,IAAIwM,EAAE,SAASzM,EAAEC,GAAG,MAAM,CAAC6X,QAAQ,CAACvM,EAAE,GAAG0H,OAAOlE,OAAO,GAAGkE,OAAOhT,EAAE+W,MAAMpE,OAAO,KAAKmF,GAAGhC,GAAG,GAAG9C,OAAOhT,EAAE+W,MAAMpE,OAAO,GAAG,GAAGoF,IAAIjC,GAAG,GAAG9C,OAAOhT,EAAE+W,MAAMpE,OAAO,GAAG,GAAGqF,IAAI,SAASjY,GAAG,OAAO+V,GAAG,GAAG9C,OAAOhT,EAAE+W,MAAMhX,EAAEmL,UAAU+M,KAAK,CAACC,EAAElY,EAAEiX,MAAM,EAAEkB,GAAGrC,GAAG,GAAG9C,OAAOhT,EAAEiX,MAAM,GAAG,GAAGmB,IAAIrY,EAAEyW,mBAAmBxW,EAAEiX,OAAOe,IAAIjY,EAAEwW,cAAcvW,EAAEiX,QAAQoB,QAAQ,CAAChN,EAAErL,EAAEmX,IAAImB,GAAGxC,GAAG,GAAG9C,OAAOhT,EAAEmX,KAAK,GAAGoB,IAAIxY,EAAEuW,iBAAiBtW,EAAEmX,KAAKa,IAAIjY,EAAEsW,YAAYrW,EAAEmX,MAAMqB,QAAQ,CAACpY,EAAEJ,EAAEoX,KAAKY,IAAI,SAASjY,GAAG,OAAO+V,GAAG,GAAG9C,OAAOhT,EAAEoX,MAAMrX,EAAEmL,UAAUuN,QAAQ,CAACpe,EAAE2F,EAAE3F,EAAE2d,IAAI,SAASjY,GAAG,OAAO+V,GAAG,GAAG9C,OAAOhT,EAAE3F,GAAG0F,EAAEmL,UAAUwN,KAAK,CAACtI,EAAEpQ,EAAEoQ,EAAE4H,IAAI,SAASjY,GAAG,OAAO+V,GAAG,GAAG9C,OAAOhT,EAAEoQ,GAAGrQ,EAAEmL,UAAUyN,QAAQ,CAACpM,EAAEvM,EAAEuM,EAAEyL,IAAI,SAASjY,GAAG,OAAO+V,GAAG,GAAG9C,OAAOhT,EAAEuM,GAAGxM,EAAEmL,UAAU0N,QAAQ,CAACZ,IAAI,SAASjY,GAAG,IAAIE,EAAE,GAAG+S,OAAOhT,EAAE6P,GAAGvP,EAAEP,EAAEmL,OAAOjL,EAAEiL,OAAO,GAAG5K,EAAE,EAAE,IAAI,IAAImM,EAAE,EAAEA,EAAEnM,EAAEmM,IAAIxM,GAAG,SAASK,EAAE,IAAIL,EAAEA,EAAE0S,MAAM,EAAE5S,EAAEmL,SAAS,OAAOjL,IAAI4Y,gBAAgB,CAACb,IAAI,SAASjY,GAAG,IAAIE,EAAED,EAAEA,EAAE,OAAOD,EAAE,GAAG2S,gBAAgB3S,EAAE,KAAKE,EAAEA,EAAEyS,eAAezS,EAAE0S,MAAM,EAAE5S,EAAEmL,WAAt7B,CAAk8BvQ,KAAKsF,GAAGqO,EAAE,GAAG,IAAI,IAAI/B,KAAKC,EAAEzP,OAAOmD,UAAUsL,eAAesN,KAAKtM,EAAED,IAAI+B,EAAEyK,KAAKxM,GAAG,IAAIsD,EAAE,IAAI/O,OAAOwN,EAAE6B,KAAK,KAAK,KAA6T,OAAtTnQ,EAAE8Q,QAAQjB,GAAG,SAAS9P,GAAG,IAAIC,EAAEC,EAAEK,EAAE,IAAIL,KAAKuM,EAAE,GAAGzP,OAAOmD,UAAUsL,eAAesN,KAAKtM,EAAEvM,KAAKD,EAAE,IAAIc,OAAOb,IAAIkT,KAAKpT,GAAG,MAAM,IAAIC,EAAE,MAAM,GAAG,IAAI,IAAIyM,KAAKD,EAAEvM,GAAG,GAAGwM,IAAI1M,GAAG0M,EAAEzB,gBAAgBjL,EAAE,MAAC,KAAUO,EAAEkM,EAAEvM,GAAGwM,MAAMnM,EAAEkM,EAAEvM,GAAGwM,EAAEzB,gBAAgB,MAAM,YAAO,IAAS1K,IAAIA,EAAEkM,EAAEvM,GAAG+X,KAAK,mBAAmB1X,IAAIA,EAAEA,EAAEP,IAAIO,YCKl9V,MAAM0Y,GAAS,MAAM7F,MAAK,SAGtB,aACA,KAyCE8F,GAAQ,aAcdA,GAAMC,OAAS,SAASA,EAAOC,EAAWC,GACxC,MAAMC,EAAS1e,KAAKuF,UAEK,iBAAdiZ,IACTC,EAAQD,EACRA,EAAY,SAKd,MAAMjZ,EAAYnD,OAAOsD,OAAO1F,KAAKuF,WAGrC,IAAK,MAAMoZ,KAAQF,EAEjBlZ,EAAUoZ,GACe,mBAAhBF,EAAME,IAAgD,mBAAjBD,EAAOC,IAAwBN,GAAO7F,KAAKiG,EAAME,IACxF,SAAUA,EAAMC,GACf,OAAO,WACL,MAAMC,EAAM7e,KAAK0e,OAIjB1e,KAAK0e,OAASA,EAAOC,GAIrB,MAAMG,EAAMF,EAAGG,MAAM/e,KAAMwS,WAG3B,OAFAxS,KAAK0e,OAASG,EAEPC,GAbV,CAeEH,EAAMF,EAAME,IACfF,EAAME,GAGd,IAAK,qBAAqBnG,KAAKgG,GAC7B,MAAM,IAAIQ,MAAM,gDAIlB,MAAMC,EAAO,IAAIC,SACd,oBAAmBV,8FADT,GAab,OARAS,EAAK1Z,UAAYA,EAGjB0Z,EAAK1Z,UAAUC,YAAcyZ,EAG7BA,EAAKV,OAASA,EAEPU,GC7HT,MAAME,GAAQ,CACZC,QAAQtK,GAGN,IAEIuK,EAFAC,EAAMxK,EAWV,OARIwK,EAAM,GACRD,EAAW,GAAKC,EAAM,GAClBD,EAAW,KACbA,GAAY,IAGdC,GAAO,GAAEA,GAAMC,WAAW,GAVb,CAAC,GAAI,IAAK,GAAI,IAAK,GAAI,KAYxBvJ,QAAQqJ,IAAa,EAAIrf,KAAKof,QAAQE,EAAM,GAAKpF,OAAOsF,aAAaH,IAErFI,OAAO3K,GACL,MAAM4K,EAAM1f,KAAKof,QAAQtK,EAAQ,IAC3BY,EAAInE,KAAK0I,MAAMnF,EAAQ,IAC7B,OAAOY,EAAI,EAAI1V,KAAKyf,OAAO/J,GAAKgK,EAAMA,GAExCC,KAEE,OADU3f,KAAKyf,OAAOlO,KAAKC,MAAuB,MAAjBD,KAAKqO,SAA2B,OACxDzJ,QAAQ,MAAO,MAIb,SAAS0J,KACtB,OAAOV,GAAMQ,KC9Bf,SAASG,GAAYC,EAAWhgB,EAAMigB,GACpC,MAAqB,MAAdD,EAAoBE,GAAalgB,EAAMigB,GAahD,SAAsBjgB,GACpB,MAAgB,QAATA,EAAiB,MAAQ,SAduBmgB,CAAangB,GAQtE,SAASkgB,GAAalgB,EAAMigB,GAC1B,MAAMG,EAAepgB,GAAQ,OAC7B,OAAQigB,GAA0B,SAAjBG,IAA8BH,GAA0B,QAAjBG,EAA0B,QAAU,OAO9F,IAAeC,GAAA,CACbN,YAAAA,GACAO,oBAhBF,SAA6BN,EAAWhgB,EAAMigB,GAE5C,OAAOF,GAAYC,EADW,QAAThgB,EAAiB,OAAS,MACHigB,IAe5CC,aAAAA,ICnBF,MAOMK,GAAiB,IAAIna,OANzB,slBAOIoa,GAAiB,IAAIpa,OALzB,qCAMIqa,GAAkB,IAAIra,OAJ1B,4CAWF,SAASsa,GAAU9M,GACjB,OAAO2M,GAAe9H,KAAK7E,GAG7B,SAAS+M,GAAU/M,GACjB,OAAO4M,GAAe/H,KAAK7E,IAAM6M,GAAgBhI,KAAK7E,GAmBxD,IAAegN,GAAA,CACbC,IA7BM1G,OAAOsF,aAAa,MA8B1BqB,IA5BU3G,OAAOsF,aAAa,MA6B9BsB,oBAnBF,SAA6BlP,GAC3B,MAAMtM,EAAIsM,EAAIA,EAAErB,OAAS,EACzB,IAAIwB,EACA4B,EACJ,IAAK5B,EAAI,EAAGA,EAAIzM,EAAGyM,IAAK,CAEtB,GADA4B,EAAI/B,EAAEG,GACF0O,GAAU9M,GACZ,MAAO,MAET,GAAI+M,GAAU/M,GACZ,MAAO,MAGX,MAAO,QCqCT,IAAeoN,GAAA,CACbC,aApEF,SAAsBrhB,EAAUshB,GAAS,IAAAC,EACvC,MAIMC,EAAkB,CACtBrM,MAAO,EACPsM,KAAM,CACJC,YAN8B,IAAzBJ,EAAQ1d,aACX0d,EAAQK,MAAMC,oBAAoBN,EAAQ1d,cAC1C,cAKFie,gBAAiBP,MAAAA,GAAF,UAAEA,EAAS/hB,aAAX,IAAAgiB,SAAEA,EAAgBO,WAGrC,OAAOlD,GAAO,EAAM4C,EAAiBxhB,GAAY,KAyDjD+hB,kBAhDF,SAA2B/hB,EAAUshB,GACnC,MAAMU,EAAUV,GAAWA,EAAQU,QACnC,IAAIC,EAAaX,EAAQK,MAAMngB,SAASwgB,EAAS,2BAA4B,SAC7E,MAAME,EAAgBZ,EAAQK,MAAMngB,SAASwgB,EAAS,2BAA4B,YAC5EG,EAAkBb,EAAQK,MAAMngB,SAASwgB,EAAS,2BAA4B,cAuBpF,OArBIV,EAAQ1d,aACVqe,EAAaX,EAAQK,MAAMC,oBAAoBN,EAAQ1d,cAC7Cqe,IACVA,EAAa,eAkBRrD,GAAO,EAfU,CACtBzJ,MAAO,EACPsM,KAAM,CACJC,OAAQ,eAEVzhB,MAAO,CACLmiB,MAAO,SACPC,OAAQ,SACRC,KAAM,GACNC,KAAMN,EACNO,WAAYL,EACZjhB,SAAUghB,EACVO,WAAY,MAGqBziB,GAAY,KAsBjD0iB,UAnBiBje,GACjBA,IAA4B,IAAjBA,EAAQR,MAAmC,IAAjBQ,EAAQR,MAA+B,MAAjBQ,EAAQR,WAAwC0e,IAAxBle,EAAQme,YAmB3FC,gBAjBF,UAAyBpe,QAAEA,EAAFxE,MAAWA,EAAX6iB,YAAkBA,IACzC,OAA0B,IAAtBre,EAAQse,WACgB,IAAtBte,EAAQue,UACF,GAAE/iB,KAASgjB,GAAQhC,OAAO6B,KAAeG,GAAQhC,MAEnD,GAAEgC,GAAQhC,OAAO6B,KAAeG,GAAQhC,OAExB,IAAtBxc,EAAQue,UACH/iB,EAEF,KCvET,MAAMijB,GAAY,CAChBC,yBAA0B,CAAC,MAAO,UAClCC,mBAAoB,CAAC,MAAO,SAC5BC,WAAY,aACZC,SAAU,WACVC,eCPa,CACbC,MAAO,CACLC,aAAc,KAEhBC,SAAU,CACRD,aAAc,KAEhBE,aAAc,CACZF,aAAc,KAEhBG,WAAY,CACVH,aAAc,KAIhBI,UAAW,CACTC,kBAAmB,QACnBC,WAAY,EACZN,aAAc,KAGhB/e,SAAU,CACRof,kBAAmB,QACnBC,UAAW,GACXN,cAAe,IAIjBO,iBAAkB,CAChBF,kBAAmB,SACnBC,UAAW,GACXN,aAAc,IAEhBQ,mBAAoB,CAClBH,kBAAmB,SACnBC,UAAW,GACXN,aAAc,IAGhBvf,YAAa,CACX4f,kBAAmB,SACnBC,UAAW,GACXN,aAAc,IAEhBzf,cAAe,CACb8f,kBAAmB,SACnBC,UAAW,GACXN,aAAc,IAGhBS,UAAW,CACTJ,kBAAmB,SACnBL,cAAe,KAIjBU,eAAgB,CACdL,kBAAmB,QACnBC,UAAW,GACXN,aAAc,KDjDlBP,GAAUkB,0BAA4BlB,GAAUG,WEDhD,SAASgB,GAAsBC,EAAcC,GAC3C,MAAMjD,EAAUiD,GAAQ,GAElBC,EAAwBlD,EAAQkD,uBAAyB,GACzDC,EAA0BnD,EAAQmD,yBAA2B,GAC7DC,EAAmBpD,EAAQqD,aAAeC,GAAUR,0BACpDS,EAAoBH,IAAqBE,GAAUvB,WACnDyB,EAAmBD,EAAoB,IAAM,IAC7CE,EAAqBF,EAAoB,IAAM,IAC/C1B,EAA2ByB,GAAUzB,yBACrCC,EAAqBwB,GAAUxB,mBAC/B4B,EAA8B7B,EAAyB8B,SAAST,EAAsBvgB,MACtFihB,IACF5D,EAAQ6D,kBAAoB/B,EAAmB6B,SAAST,EAAsBvgB,MAC5EmhB,EACJ9D,EAAQ+D,sBAAwBlC,EAAyB8B,SAASR,EAAwBxgB,MACtFqhB,EACJhE,EAAQ+D,wBACN/D,EAAQiE,oBACVnC,EAAmB6B,SAASR,EAAwBxgB,MAChDuhB,EAAmBlE,EAAQ9c,cAAgB8c,EAAQ9c,UAAUnB,MAAsC,IAA9Bie,EAAQ9c,UAAUD,SAEvFkhB,EAAkBnE,EAAQ5c,UAAY4c,EAAQ5c,SAASghB,MAAMjhB,GAAYA,EAAQR,OAEjF0hB,EAAqB,GAoC3B,GAlCIX,GA2GN,SAAiCV,EAAchD,EAASwD,EAAkBN,GACxE,IAAIoB,EAAsB,CACxBC,MAAO,UACPC,YAAatB,IAA0BA,EAAsBrgB,YAAcqgB,EAAsBuB,YAEnGH,EAAsBhH,EAAOgH,EAAqBhB,GAAUrB,eAAerf,aAE3E,MAAM8hB,EAAqBC,GAAsB3E,EAASwD,GAE1DR,EAAa4B,aAAgBpB,EAAF,QAA2Bc,EAAqBI,GAnHzEG,CAAwB7B,EAAchD,EAASwD,EAAkBN,GAG/DU,GAmHN,SAAsCZ,EAAchD,EAASwD,GAC3D,IAAIsB,EAAuB,CACzB9D,KAAMhB,EAAQ6D,kBAEhBiB,EAAuBxH,EAAOwH,EAAsBxB,GAAUrB,eAAeS,kBAE7E,MAAMgC,EAiTR,SAAoC1E,EAASwD,GAC3C,OAAOmB,GAAsB3E,EAASwD,GAlTXuB,CAA2B/E,EAASwD,GAE/DR,EAAa4B,aAAgBpB,EAAF,cAAiCsB,EAAsBJ,GA1HhFM,CAA6BhC,EAAchD,EAASwD,GA+ExD,SAAyBR,EAAchD,EAASoD,EAAkBF,GAChE,IAAI+B,EAAuBjF,EAAQiF,qBAEnC,MAAMC,EAAsB,CAC1BnG,MAAOiB,EAAQjB,MACfoG,OAAQnF,EAAQoF,cAChB/B,YAAaD,EACbF,sBAAAA,GAGEA,GAAyBA,EAAsBjgB,QAAU,IAC3DgiB,EAAuB3H,GAAO,EAAM2H,GAAwB,GAAI,CAC9DrnB,UAAW,CACTynB,MAAO,CACLC,SA9HgC,IA8HtBpC,EAAsBjgB,aAMxC+f,EAAauC,SAAS,gBAAiBN,EAAsBC,GAhG7DM,CAAgBxC,EAAchD,EAASoD,EAAkBF,GAErDY,GAkIN,SAAmCd,EAAchD,EAASyD,GACxD,IAAIgC,EAAwB,CAC1BlB,MAAO,aAETkB,EAAwBnI,EAAOmI,EAAuBnC,GAAUrB,eAAevf,eAE/E,MAAMgjB,EAAuBC,GAAwB3F,EAASyD,GAE9DnG,GAAO,EAAMmI,EAAuBzF,EAAQyF,uBAAyB,IAErEzC,EAAa4B,aAAgBnB,EAAF,QAA6BgC,EAAuBC,GA3I7EE,CAA0B5C,EAAchD,EAASyD,GAG/CO,GA2IN,SAAwChB,EAAchD,EAASyD,GAC7D,IAAIoC,EAA6B,CAC/B7E,KAAMhB,EAAQiE,oBAEhB4B,EAA6BvI,EAAOuI,EAA4BvC,GAAUrB,eAAeU,oBAEzF,MAAMmD,EA2RR,SAAsC9F,EAASyD,GAC7C,OAAOkC,GAAwB3F,EAASyD,GA5RNsC,CAA6B/F,EAASyD,GAExET,EAAa4B,aAAgBnB,EAAF,cAAmCoC,EAA4BC,GAlJxFE,CAA+BhD,EAAchD,EAASyD,GAGpDzD,EAAQ+D,sBAgHd,SAA2Bf,EAAchD,EAASoD,GAChD,MAAM6C,EAAwB,CAC5BlH,MAAOiB,EAAQjB,MACfoG,OAAQnF,EAAQkG,gBAChB7C,YAAaD,IAAqBE,GAAUvB,WAAauB,GAAUtB,SAAWsB,GAAUvB,YAG1FiB,EAAauC,SAAS,kBAAmBvF,EAAQmG,uBAAwBF,GAtHvEG,CAAkBpD,EAAchD,EAASoD,GAGvCc,GA8IN,SAA+BlB,EAAcqD,EAAkB7C,GAC7D,IAAI8C,EAAoB,CACtBjB,MAAO,CACL1iB,MAAM,GAER4jB,WAAY,CACV5jB,MAAO0jB,EAAiBtkB,OAASskB,EAAiBtkB,MAAqC,IAA7BskB,EAAiBpjB,UAG/EqjB,EAAoBhJ,EAAOgJ,EAAmBhD,GAAUrB,eAAeW,WAEvE0D,EAAkB9C,GAAoB,CAAEe,MAAO,WAE/CvB,EAAa4B,aAAa,YAAa0B,GA1JrCE,CAAsBxD,EAAchD,EAAQ9c,UAAWsgB,GAGrDxD,EAAQyG,eA0Jd,SAA+BzD,EAAcqB,EAAoBrE,EAASuD,GACvDP,EAAa0D,cAErBC,OAAS,CAChBC,UAAW,CACTC,SAAW7G,EAAQ8G,gBAAkB9G,EAAQ8G,eAAeD,UAAa,EACzE/jB,IAAMkd,EAAQ8G,gBAAkB9G,EAAQ8G,eAAehkB,KAAQ,IAInE,MAAMikB,EAAmB,CACvBhI,MAAOiB,EAAQjB,MACf2B,QAASV,EAAQU,QACjBsG,cAAezD,GAGX0D,EAAoB3J,EAAO,GAAIgG,GAAUrB,eAAeM,WAE9DS,EAAa4B,aAAa,YAAaqC,EAAmBF,GAE1DG,GAAsB7C,ECzOxB,SAAoB8C,GAClB,SAASC,EAAkBC,EAASljB,GAClC,IAAKA,IAAMgjB,IACT,OAAO,EAET,MAAMG,EAAa,CACjB5S,EAAGvQ,EAAEojB,OAAO7S,EAAIvQ,EAAEqjB,OAClB/S,EAAGtQ,EAAEojB,OAAO9S,EAAItQ,EAAEsjB,QAGpB,OADmB1oB,KAAK2oB,MAAMC,oBAAoBL,GAChClD,MAAM1R,GAZN,cAYYA,EAAEhU,SAASgV,MAsC3C,MADgB,CAlCJ,CAEVlT,KAAM,MACNwf,QAAS,CACP4H,OAAQR,GAEVS,OAAQ,CACNC,IAAI3jB,GACFpF,KAAK2oB,MAAM9pB,UAvBG,aAuBsBmqB,KAAK,MAAO5jB,MAK1C,CACV3D,KAAM,MACNwf,QAAS,CACP4H,OAAQR,GAEVS,OAAQ,CACNG,SAAS7jB,GACPpF,KAAK2oB,MAAM9pB,UAnCG,aAmCsBmqB,KAAK,WAAY5jB,IAEvD8jB,IAAI9jB,GACFpF,KAAK2oB,MAAM9pB,UAtCG,aAsCsBmqB,KAAK,UAAW5jB,IAEtD+jB,OAAO/jB,GACLpF,KAAK2oB,MAAM9pB,UAzCG,aAyCsBmqB,KAAK,SAAU5jB,IAErDgkB,UAAUhkB,GACRpF,KAAK2oB,MAAM9pB,UA5CG,aA4CsBmqB,KAAK,YAAa5jB,OD+LlBikB,CAAiBpI,EAAQqI,wBA7KjEC,CAAsBtF,EAAcqB,EAAoBrE,EAASuD,GAG/DY,GAkLN,SAA6BnB,EAAchD,EAASwD,EAAkBN,GACpE,MAAMqF,EAAWpJ,GAAaN,YAAY2E,EAAkBN,EAAsBpkB,KAAMkhB,EAAQjB,OAChG,IAAIyJ,EAAmB,CAErB9U,IAAK,WACLzV,MAAO,CACLwqB,IAAK,CACH9lB,MAAM,IAGV+lB,MAAO,CACLhU,EAAG,GACHD,EAAG,KAGP+T,EAAmBlL,EAAOkL,EAAkBlF,GAAUrB,eAAe7e,UAErE,IAAIulB,EAAyB,CAI3BjV,IAAM,mBAAkBkL,KACxBgK,QAAS,CAAC,WAAY,SACtB9pB,KAAMqgB,GAAaC,oBAAoBoE,EAAkBN,EAAsBpkB,KAAMkhB,EAAQjB,OAC7FvgB,gBACE,GAAyB,MAArBglB,EAEF,OAAO,GAIT,MAAMqF,EAAc9pB,KAAKT,SAASuqB,YAC5BC,EAAY/pB,KAAK2oB,MAAMoB,UAAU,CAAEplB,KAAMsf,EAAatkB,SAASqqB,OAAOC,QAAQtlB,OAC9EulB,EAAcN,EAAuBD,MAAMjU,EAAE4E,KAAK8G,IACtD,MAAM+I,GAA0C,IAAzB/I,EAAKxhB,MAAM8iB,UAAuB,IAAGqH,EAAU3I,EAAKtM,UAAY,GACjFmN,EAAQ,GAAEb,EAAKxhB,MAAMqiB,QAAQkI,IAC7BC,EAAchJ,EAAKxhB,MAAMqiB,MAAQkI,EAAkB,KAAIA,EAAmBA,EAChF,MAAO,CACLE,OAAQP,EAAY,CAClB7H,KAAAA,EACAphB,SAAUugB,EAAKvgB,SACfshB,WAAYf,EAAKe,aAChBrhB,MACHwpB,SAAUR,EAAY,CACpB7H,KAAMmI,EACNvpB,SAAUugB,EAAKvgB,SACfshB,WAAYf,EAAKe,aAChBrhB,UAIDypB,EAAgBL,EAAY,GAClC,IAAK,IAAInY,EAAI,EAAGA,EAAImY,EAAY3Z,OAAQwB,IAClCmY,EAAYnY,GAAGsY,OAASE,EAAcF,SACxCE,EAAcF,OAASH,EAAYnY,GAAGsY,QAEpCH,EAAYnY,GAAGuY,SAAWC,EAAcD,WAC1CC,EAAcD,SAAWJ,EAAYnY,GAAGuY,UAG5C,MAAME,EAAe,GACrB,OAAID,EAAcD,SAAWE,EAAe,IACnCD,EAAcD,SAAWE,EAE3BjZ,KAAKvN,IAAIumB,EAAcF,OAASG,EAAc,MAEvDb,MAAO,CACLhU,EAAG,GACHD,EAAG,KAGPkU,EAAyBrL,EAAOqL,EAAwBrF,GAAUrB,eAAeY,gBAEjF7C,EAAQ5c,SAASmV,SAASpV,IACxB,IAAKA,EAAQR,KACX,OAGF,MAAM6mB,EAAkBrmB,EAAQme,aAAene,EAAQme,YAAYzN,MAC7D4V,EAAcnM,GAAO,EAAM,GAAI0C,EAAS,CAC5C1d,aAAca,EAAQb,aACtBrE,MAAOkF,EAAQlF,MACfyiB,QAASsC,EAAahD,QAAQU,UAI1BX,EAAeD,GAAYC,aAC/B,CACEwE,MAAO,UACPvlB,IAAKwkB,EACL3P,MAAO2V,GAETC,GAGFjB,EAAiBE,MAAMlF,GAAkBrG,KAAK4C,GAG9C,MAAMU,EAAoBX,GAAYW,kBACpC,CACE8D,MAAO,UACP1Q,MAAO2V,EACP7qB,MAAO,CACLqiB,MAA4B,IAAtB7d,EAAQue,UAAsBve,EAAQxE,MAAQ,GACpD8iB,WAAiC,IAAtBte,EAAQse,YAGvBgI,GAGuB,MAArBjG,EACF/C,EAAkB9hB,MAAMoiB,OAAsB,SAAbwH,EAAsB,EAAI,EAG3D9H,EAAkB9hB,MAAMmiB,MAAqB,SAAbyH,EAAsB,EAAI,EAG5DI,EAAuBD,MAAMlF,GAAkBrG,KAAKsD,MAGtDuC,EAAa4B,aAAa,WAAY4D,EAAkB,IACxDxF,EAAa4B,aAAa,WAAY+D,EAAwB,IA1S5De,CAAoB1G,EAAchD,EAASwD,EAAkBN,GAG3DlD,EAAQ2J,aAAe3J,EAAQ4J,kBAAmB,EAiTxD,SAA2B5G,EAAchD,GACvC,MAAM6J,EAAe,CACnBC,SAAU9J,EAAQ8J,SAClBC,gBAAiB/J,EAAQ+J,gBACzBC,UAAWhK,EAAQgK,WAGrBhH,EAAa4B,aAAa,QAAStB,GAAUrB,eAAeC,MAAO2H,GAtTjEI,CAAkBjH,EADGhD,EAAQkC,OAAS,IAIxC,GAAIlC,EAAQkK,gBAAkBlK,EAAQ+D,sBAAwB/D,EAAQ4J,kBAAmB,EA8T3F,SAA8B5G,EAAchD,EAASuD,EAAmBzkB,EAAMigB,GAC5E,IAAIoL,EAAmB,CACrBzW,IAAK,YAGPyW,EAAmB7M,EAAO6M,EAAkB7G,GAAUrB,eAAeG,UAErE,MAAMgI,EAAkB,CACtBN,SAAU9J,EAAQ8J,SAClBO,UAAWrK,EAAQqK,UACnBC,UAAWtK,EAAQsK,UACnBC,WAAYvK,EAAQuK,WACpBvD,cAAezD,EACfzkB,KAAAA,EACAigB,MAAAA,GAGFiE,EAAa4B,aAAa,QAASuF,EAAkBC,GA5UnDI,CAAqBxH,EAFGhD,EAAQyK,UAAY,GAEQlH,EADvBoC,GAAwB3F,EAASyD,GAC8B3kB,KAAMkhB,EAAQjB,OAG5G,GAAIiB,EAAQ0K,oBAAsB1K,EAAQ4J,kBAAmB,EA4U/D,SAAkC5G,EAAchD,EAASuD,EAAmBzkB,EAAMigB,GAChF,IAAI4L,EAAuB,CACzBjX,IAAK,gBAGPiX,EAAuBrN,EAAOqN,EAAsBrH,GAAUrB,eAAeI,cAE7E,MAAMuI,EAAsB,CAC1Bd,SAAU9J,EAAQ8J,SAClBO,UAAWrK,EAAQqK,UACnBC,UAAWtK,EAAQsK,UACnBC,WAAYvK,EAAQuK,WACpBM,SAAU7K,EAAQ6K,SAClB7D,aAAczD,EACdzkB,KAAAA,EACAigB,MAAAA,GAGFiE,EAAa4B,aAAa,QAAS+F,EAAsBC,GA3VvDE,CACE9H,EAH0BhD,EAAQ+K,cAAgB,GAKlDxH,EAJyBoB,GAAsB3E,EAASwD,GAKrC1kB,KACnBkhB,EAAQjB,OAIZ,GAAIiB,EAAQgL,iBAAmBhL,EAAQ4J,kBAAmB,EAqV5D,SAA+B5G,EAAchD,EAASuD,EAAmBzkB,EAAMigB,GAC7E,IAAIkM,EAAqB,CACvBvX,IAAK,cAGPuX,EAAqB3N,EAAO2N,EAAoB3H,GAAUrB,eAAeK,YAEzE,MAAMsI,EAAsB,CAC1Bd,SAAU9J,EAAQ8J,SAClBO,UAAWrK,EAAQqK,UACnBL,UAAWhK,EAAQgK,UACnBM,UAAWtK,EAAQsK,UACnBP,gBAAiB/J,EAAQ+J,gBACzBQ,WAAYvK,EAAQuK,WACpBM,SAAU7K,EAAQ6K,SAClB7D,aAAqC,YAAvBhH,EAAQuK,WAA2BhH,GAAqBA,EACtEzkB,KAAAA,EACAigB,MAAAA,EACAmM,cAAelL,EAAQkL,eAGzBlI,EAAa4B,aAAa,aAAcqG,EAAoBL,GAvW1DO,CAAsBnI,EAFChD,EAAQoL,WAAa,GAEQ7H,EADzBoC,GAAwB3F,EAASyD,GAC8B3kB,KAAMkhB,EAAQjB,OAGtGiB,EAAQqL,cACVnE,GAAsB7C,EAAoBrE,EAAQqL,cAGhDhH,EAAmB/U,QAOzB,SAAiC0T,EAAcqB,GACtCrB,EAAasI,eAAe,GAAI,CAAEC,SAAUlH,IAPjDmH,CAAwBxI,EAAcqB,GAU1C,SAAS6C,GAAsB7C,EAAoBoH,GACjDA,EAAQlT,SAASxH,IACfsT,EAAmBlH,KAAKpM,MAsV5B,SAAS4T,GAAsB3E,EAASwD,GACtC,MAAO,CACL1kB,KAAMkhB,EAAQkD,uBAAyBlD,EAAQkD,sBAAsBpkB,KACrEggB,UAAW0E,EACXzE,MAAOiB,EAAQjB,OAQnB,SAAS4G,GAAwB3F,EAASyD,GACxC,MAAO,CACL3kB,KAAMkhB,EAAQmD,yBAA2BnD,EAAQmD,wBAAwBrkB,KACzEggB,UAAW2E,EACX1E,MAAOiB,EAAQjB,OEvdnB,SAASwF,GAAM7lB,EAAUukB,GACvB,MAAMjD,EAAUiD,GAAQ,GAClB+D,GAAgBhH,EAAQqD,aAAuC,eAAxBrD,EAAQqD,YAC/CtE,IAAUiB,EAAQjB,MAElBmB,EAAkB,CACtBxC,KAAMsC,EAAQtC,MAAQ,QACtB9f,UAAW,CACT8tB,OAAQ1E,GAAgBjI,EACxBwH,WAAY,CACVoF,MAAO,GAETC,MAAO5L,EAAQ4L,YAASvK,EACxBwK,OAAQ7L,EAAQ6L,aAAUxK,EAC1ByK,QAAS9L,EAAQ8L,SAAW,OAIhC,OAAOxO,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,ICjBvD,SAASqtB,GAAKrtB,EAAUshB,GACtB,MAAMU,EAAUV,GAAWA,EAAQU,QAC7B5hB,EAAOkhB,GAAWA,EAAQlhB,KAC1BggB,EAAYkB,GAAWA,EAAQlB,UAC/BC,EAAQiB,GAAWA,EAAQjB,MAE3BiN,EAAiBhM,EAAQK,MAAMngB,SAASwgB,EAAS,kBAAmB,SACpEuL,EAAgBjM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,YAC9DwL,EAAYlM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,SAC1DyL,EAAanM,EAAQK,MAAMngB,SAASwgB,EAAS,kBAAmB,SAChE0L,EAAiBpM,EAAQK,MAAMngB,SAASwgB,EAAS,kBAAmB,YACpE2L,EAAkBrM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,cAChE4L,EAAmBtM,EAAQK,MAAMngB,SAASwgB,EAAS,kBAAmB,cAEtER,EAAkB,CACtBxM,IAAK,OACLlT,KAAM,OACN1B,KAAMqgB,GAAaN,YAAYC,EAAWhgB,EAAMigB,GAChDwN,MAAO,CAAEC,QAAS,GAAIC,QAAS,IAC/B/tB,SAAU,CACR2B,MAAO,CACLT,SAAUqsB,EACV/K,WAAYmL,EACZpL,KAAMiL,GAER/L,KAAM,CACJxd,MAAM,EACN+pB,YAAa,EACbtM,OAAQ4L,GAEVW,OAAQ,CACN1L,KAAMkL,EACNvsB,SAAUwsB,EACVlL,WAAYoL,EACZM,UAAW7N,GAAS,GAAK,GACzB8N,aAAc,GACdC,QAAS,IACTC,KAAM,QAER1H,MAAO,CACLjF,OAAQ4L,GAEVzF,WAAY,CACVnG,OAAQ4L,KAId,OAAO1O,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,IC/CvD,SAASsiB,GAAKtiB,EAAUshB,GACtB,MAAMU,EAAUV,GAAWA,EAAQU,QAC7B5hB,EAAOkhB,GAAWA,EAAQlhB,KAC1BggB,EAAYkB,GAAWA,EAAQlB,UAC/BC,EAAQiB,GAAWA,EAAQjB,MAC3BkN,EAAgBjM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,YAC9DwL,EAAYlM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,SAC1D2L,EAAkBrM,EAAQK,MAAMngB,SAASwgB,EAAS,aAAc,cAEhER,EAAkB,CACtBxM,IAAK,OACLlT,KAAM,OACN1B,KAAMqgB,GAAaN,YAAYC,EAAWhgB,EAAMigB,IAAU,SAC1DoD,aAAc,EACdlkB,MAAO,CACL+iB,KAAM,CACJphB,SAAUqsB,EACV/K,WAAYmL,EACZpL,KAAMiL,KAIZ,OAAO5O,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,IFmEvD6lB,GAAMyI,aArEN,SAAsBtuB,EAAUukB,GAE9B,IAAIgK,GADYhK,GAAQ,IACHkC,QAAU,GACT,iBAAX8H,IACTA,EAAS,CAACA,IAGZ,MAAM/M,EAAkB,CACtBxC,KAAM,UACN9f,UAAW,CACTsvB,OAAQ,GACRxpB,KAAM,CACJupB,OAAQA,EAAO5T,KAAKpF,IAAO,CACzBkZ,MAAOlZ,SAMTiP,EAAwBD,GAAQA,EAAKC,sBAEvCA,IAA0BA,EAAsBrgB,aAE9C,CAAC,MAAO,UAAU8gB,SAAST,EAAsBlgB,UACnDkd,EAAgBtiB,UAAUmF,IAAMmgB,EAAsBngB,KAEpD,CAAC,MAAO,UAAU4gB,SAAST,EAAsBlgB,UACnDkd,EAAgBtiB,UAAUkF,IAAMogB,EAAsBpgB,MAI1D,MACMsqB,EAAgB7I,GADEjH,GAAO,EAAM4C,EAAiBxhB,GAAY,IACrBukB,GAO7C,QAN0BvkB,GAAYA,EAASd,gBAAkD,IAA9Bc,EAASd,UAAU8tB,SAE5DzI,GAA6B,aAArBA,EAAKI,cACrC+J,EAAcxvB,UAAU8tB,QAAU0B,EAAcxvB,UAAU8tB,QAGrD0B,GA+BT7I,GAAM8I,eA5BN,SAAwB3uB,EAAUukB,GAChC,MAAM/C,EAAkB,CACtBxC,KAAM,YACN9f,UAAW,CACTkuB,QAAS,KACTtrB,KAAM,OACNkD,KAAM,CACJ4pB,QAAS,CACPH,MAAQlK,GAAQA,EAAKkC,QAAW,GAChCoI,MAAO,CACL5uB,MAAMyV,GACGA,EAAEoZ,OAAS,MAK1B7uB,MAAMyV,GACGA,EAAEqZ,MAAM9uB,MAAMkV,QAO3B,OAAO0Q,GAFmBjH,GAAO,EAAM4C,EAAiBxhB,GAAY,IAEpCukB,ICflC8I,GAAK2B,MArBL,SAAehvB,EAAUshB,GAMvB,OAAO+L,GADezO,GAAO,EAJL,CACtB5J,IAAK,SACL6Q,MAAO,KAE2C7lB,GAAY,IACrCshB,IAgB7B+L,GAAK4B,MAbL,SAAejvB,EAAUshB,GACvB,MAAMlhB,EAAOkhB,GAAWA,EAAQlhB,KAC1BigB,EAAQiB,GAAWA,EAAQjB,MAC3BmB,EAAkB,CACtBxM,IAAK,SACL6Q,MAAO,IACPzlB,KAAMqgB,GAAaH,aAAalgB,EAAMigB,IAGxC,OAAOgN,GADezO,GAAO,EAAM4C,EAAiBxhB,GAAY,IACrCshB,ICxB7BgB,GAAK4M,WAnBL,SAAoBlvB,EAAUshB,GAK5B,OAAOgB,GADoB1D,GAAO,EAHV,CACtB5J,IAAK,gBAEkDhV,GAAY,IACrCshB,IAelCgB,GAAK6M,WAZL,SAAoBnvB,EAAUshB,GAC5B,MAAMlhB,EAAOkhB,GAAWA,EAAQlhB,KAC1BigB,EAAQiB,GAAWA,EAAQjB,MAC3BmB,EAAkB,CACtBxM,IAAK,eACL5U,KAAMqgB,GAAaH,aAAalgB,EAAMigB,IAAU,QAGlD,OAAOiC,GADoB1D,GAAO,EAAM4C,EAAiBxhB,GAAY,IACrCshB,ICrBlC,IAAe8N,GAAA,CACbC,eAxBF,SAAwB/G,EAAcloB,EAAMigB,GAC1C,IAAIiP,EAAgBhH,GAAyB,QAATloB,IAAqBkoB,GAAyB,QAATloB,EAIzE,OAHKkoB,GAAgBjI,IACnBiP,GAAgBA,GAEXA,EAAe,QAAU,OAoBhCC,QAjBF,SAAiB5D,EAAWC,GAC1B,MAAM4D,EAAc,GACpB,IAAIC,EAUJ,OATI9D,GACF6D,EAAY/Q,KAAM,IAAGkN,GAEnBC,GACF4D,EAAY/Q,KAAM,IAAGmN,GAEnB4D,EAAY5e,SACd6e,EAAQD,EAAY3Z,KAAK,MAEpB4Z,IClBT,MAAMC,GAAc,CAClBC,MAAO,CAAExuB,MAAO,EAAGC,OAAQ,GAC3BwuB,OAAQ,CAAEzuB,MAAO,IAAKC,OAAQ,IAC9ByuB,MAAO,CAAE1uB,MAAO,IAAKC,OAAQ,KAC7B0uB,OAAQ,CAAE3uB,MAAO,IAAKC,OAAQ,KAC9B2uB,KAAM,CAAE5uB,MAAO,IAAKC,OAAQ,MAG9B,SAAS4uB,KACP,OAAON,GCTT,SAASO,GAASC,GAChB,MAAMC,EAAMD,EAAQlrB,KAAKmrB,IAEzB,OADkBD,EAAQE,QAAQD,EAAI1J,OAAOzR,KAAKyZ,MAAM0B,EAAI1J,OAAOgI,OAAOrE,WACnEA,CAAU+F,EAAIhb,ODSvB6a,GAAYK,kBAAoB,WAC9B,MAAMC,EAAiB,GACvB,IAAIC,EAEJ,IAAKA,KAAWb,GACdY,EAAe7R,KAAK8R,GAEtB,OAAOD,GEnBT,MAAME,GAAa,CACjBC,KAAM,OACNC,MAAO,QACPC,GAAI,MACJC,KAAM,UCcR,SAASC,GAAgB/uB,EAAM9B,EAAUshB,GACvC,OAAQxf,GAEN,IAAK,QACH,OAAO+jB,GAAM7lB,EAAUshB,GACzB,IAAK,gBACH,OAAOuE,GAAMyI,aAAatuB,EAAUshB,GACtC,IAAK,kBACH,OAAOuE,GAAM8I,eAAe3uB,EAAUshB,GACxC,IAAK,OACH,OAAO+L,GAAKrtB,EAAUshB,GACxB,IAAK,aACH,OC9BN,SAAmBthB,GAUjB,OAAO4e,GAAO,EAAM,GATI,CACtB5J,IAAK,aACLlT,KAAM,aACN9B,SAAU,CACR8wB,MAAO,CAAEjL,MAAO,KAChBlB,YAAa,cAEfkJ,MAAO,CAAEC,QAAS,GAAIC,QAAS,KAEQ/tB,GAAY,IDoB1C+wB,CAAU/wB,GACnB,IAAK,eACH,OEhCN,SAAqBA,GAOnB,OAAO4e,GAAO,EAAM,GANI,CACtB5J,IAAK,eACLlT,KAAM,eACN9B,SAAU,GACV6tB,MAAO,CAAEC,QAAS,GAAIC,QAAS,KAEQ/tB,GAAY,IFyB1CgxB,CAAYhxB,GACrB,IAAK,YACH,OGlCN,SAAmBA,EAAUshB,GAC3B,MAAMjB,EAAQiB,GAAWA,EAAQjB,MAC3B2B,EAAUV,GAAWA,EAAQU,QAC7BsG,EAAehH,GAAWA,EAAQgH,aAClC9G,EAAkB,CACtBxM,IAAK,YACLlT,KAAM,YACNmmB,OAAQ,YACR7nB,KAAMkoB,EAAe,SAAWjI,EAAQ,OAAS,QACjDrgB,SAAU,CACRixB,gBAAiB3P,EAAQK,MAAMngB,SAASwgB,EAAS,GAAI,mBACrDgL,OAAQ3M,GAASiI,IAGrB,OAAO1J,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,IHoB1CkxB,CAAUlxB,EAAUshB,GAC7B,IAAK,OACH,OAAOgB,GAAKtiB,EAAUshB,GACxB,IAAK,QACH,OItCN,SAAethB,EAAUshB,GACvB,MAAM8J,EAAW9J,GAAWA,EAAQ8J,SAC9BC,EAAkB/J,GAAWA,EAAQ+J,gBAAkB/J,EAAQ+J,gBAAkB,GACjFC,EAAYhK,GAAWA,EAAQgK,UAAYhK,EAAQgK,UAAY,CAAC,UAEhE9J,EAAkB,CACtB1f,KAAM,cACNkT,IAAK,QACLyO,aAAc,GACdzjB,SAAU,CACR6tB,MAAO,CACLsD,WAAY,IAEd3N,MAAO,CACLjB,KAAM,mBACNb,OAAQ,sBACRsM,YAAa,EACbzc,QAAS,EACTsQ,gBAAiB,MAEnB+G,WAAY,CACV5iB,EAAG,GACHuc,KAAM,sBACNyL,YAAa,EACbzc,QAAS,KAaf,OARA8Z,EAAgBxR,SAASuX,IACvB5P,EAAgBxhB,SAAS6tB,MAAMsD,WAAW1S,KAAK,CAC7C4S,SAAUjG,EAAW,CAACA,QAAYzI,EAClC3N,IAAKoc,EACLpsB,KAAMsmB,OAIH1M,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,IJC1CwjB,CAAMxjB,EAAUshB,GACzB,IAAK,QACH,OKvCN,SAAethB,EAAUshB,GACvB,MAAM8J,EAAW9J,GAAWA,EAAQ8J,SAC9BO,EAAYrK,GAAWA,EAAQqK,UAC/BC,EAAYtK,GAAWA,EAAQsK,UAC/BC,EAAavK,GAAWA,EAAQuK,WAChCvD,EAAehH,GAAWA,EAAQgH,aAClCloB,EAAOkhB,GAAWA,EAAQlhB,KAC1BigB,EAAQiB,GAAWA,EAAQjB,MAE3BmB,EAAkB,CACtB1f,KAAM,cACNkT,IAAK,QACLyO,aAAc,GACdrjB,KAAMgvB,GAAUG,QAAQ5D,EAAWC,GACnC5rB,SAAU,CACR6tB,MAAOzC,EACP7I,KAAM,mBACNsD,MAAOgG,EACPM,UAAU7K,IAAgC,IAArBA,EAAQ6K,UAAqB7K,EAAQ6K,SAC1D/L,UAAWkI,EAAe,aAAe,WACzCgJ,OAAQ,CACNpyB,UAAWysB,EACXpJ,KAAM,2BACNgP,WAAY,0BAEdC,QAAS,CACPpP,MAAOgN,GAAUC,eAAe/G,EAAcloB,EAAMigB,MAI1D,OAAOzB,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,ILS1CktB,CAAMltB,EAAUshB,GACzB,IAAK,aACH,OMzCN,SAAmBthB,EAAUshB,GAC3B,MAAM8J,EAAW9J,GAAWA,EAAQ8J,SAC9BO,EAAYrK,GAAWA,EAAQqK,UAC/BN,EAAkB/J,GAAWA,EAAQ+J,gBAAkB/J,EAAQ+J,gBAAkB,GACjFC,EAAYhK,GAAWA,EAAQgK,UAAYhK,EAAQgK,UAAY,CAAC,UAChEM,EAAYtK,GAAWA,EAAQsK,UAC/BtD,EAAehH,GAAWA,EAAQgH,aAClCloB,EAAOkhB,GAAWA,EAAQlhB,KAC1BigB,EAAQiB,GAAWA,EAAQjB,MAC3BmM,EAAgBlL,GAAWA,EAAQkL,cACzC,IAAIiF,GAAgB,EAEpB,MAAMjQ,EAAkB,CACtB1f,KAAM,iBACNkT,IAAK,OACLyO,aAAc,GACdrjB,KAAMgvB,GAAUG,QAAQ5D,EAAWC,GACnC5rB,SAAU,CACR6tB,MAAO,CACLsD,WAAY,IAEd/Q,UAAWkI,EAAe,aAAe,WACzCgJ,OAAQ,CACNpyB,UAAWysB,EACXpJ,KAAM,2BACNgP,WAAY,0BAEdC,QAAS,CACPpP,MAAOgN,GAAUC,eAAe/G,EAAcloB,EAAMigB,GACpDpgB,MAAM+E,GACAysB,GACFA,GAAgB,EACYjF,EACzB4D,QAAQprB,EAAK0sB,SAASjL,OAAOzR,KAC7ByZ,MAAMzpB,EAAK0sB,SAASjL,OAAOgI,OAC3BrE,WAHyBoC,CAGbxnB,EAAK0sB,SAASvc,SAG/Bsc,GAAgB,EACUjF,EACvB4D,QAAQprB,EAAK2sB,OAAOlL,OAAOzR,KAC3ByZ,MAAMzpB,EAAK2sB,OAAOlL,OAAOgI,OACzBrE,WAHuBoC,CAGXxnB,EAAK2sB,OAAOxc,SAI/BgX,UAAU7K,IAAgC,IAArBA,EAAQ6K,UAAqB7K,EAAQ6K,WAa9D,OATAd,EAAgBxR,SAASuX,IACvB5P,EAAgBxhB,SAAS6tB,MAAMsD,WAAW1S,KAAK,CAC7C4S,SAAUjG,EAAW,CAACA,QAAYzI,EAClC3N,IAAKoc,EACLpsB,KAAMsmB,EACNsG,OAAQ,WAILhT,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,INlB1C6xB,CAAU7xB,EAAUshB,GAC7B,IAAK,qBACH,ODrCN,SAAgBthB,EAAUshB,GACxB,MAAMU,EAAUV,GAAWA,EAAQU,QAC7B3B,EAAQiB,GAAWA,EAAQjB,MACjC,IAAIjgB,EAAQkhB,GAAWA,EAAQlhB,MAAS,OACxC,MAAM6D,EAAOqd,GAAWA,EAAQrd,KAEnB,SAAT7D,IACFA,EAAOkhB,EAAQwQ,YAAcxQ,EAAQyQ,WAAa,EAAK1R,EAAQ,OAAS,QAAW,UAGrF,MAAMmN,EAAYlM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,SAC5DuL,EAAgBjM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,YAChEgQ,EAAW1Q,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,SAC3DiQ,EAAe3Q,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,YAC/D2L,EAAkBrM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,cAGlER,EAAkB,CACtBxM,IAAK,SACLlT,KAAM,aACN1B,KAAAA,EACA6D,KAAAA,EAEA4hB,MAAO,CACL/jB,KAAM,SAER9B,SAAU,CACR2B,MAAO,CACLuwB,OAAQ,UAEV/xB,OAAQ,CACNigB,UAAWC,EAAQ,MAAQ,MAC3B8R,KAAe,QAAT/xB,GAA2B,WAATA,EAAoB,EAAI,EAChDgyB,SAAmB,QAAThyB,GAA2B,WAATA,EAAoB,GAAK,GAEvDiyB,WAAY,CACVC,OAAQ,CACNC,MAAO,CACLC,mBAAmB,GAErBC,QAAO,CAAC1yB,EAAG2yB,IAEF3yB,EAAE,OAAQ,CACfR,MAAO,CACLC,cAAe,QAEjB+yB,MALQ,CAAC,mBAAoB,WAAa,sBAAqB/B,GAAWkC,EAAMtS,YAKvEvK,KAAK,UAMxBtW,MAAO,CACLozB,KAAM,CACJ1yB,MAAO,CACLiB,SAAU+wB,EACVzP,WAzCelB,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,cA0C/DO,KAAMyP,EACNY,WAAY,EACZC,UAAW,cAEbC,OAAQ,CACNC,IAAK,EACLtC,KAAM,GACNC,MAAO,GACPsC,OAAQ,IAEVC,MAAO,CACLnxB,KAAMwf,EAAQxf,KAAOwf,EAAQxf,KAAO,SACpCqwB,KAAoC,EAA7BthB,SAASohB,EAAc,IAAW,IAG7CtwB,MAAO,CACLsC,KAAMqd,EAAQ4R,UACdhyB,SAAUqsB,EACV/K,WAAYmL,EACZpL,KAAMiL,KAIZ,OAAO5O,GAAO,EAAM,GAAI4C,EAAiBxhB,GC3C9BmzB,CAAkBnzB,EAAUshB,GACrC,IAAK,oBACH,OO9CN,SAA0BthB,EAAUshB,GAClC,MAAMU,EAAUV,GAAWA,EAAQU,QAC7B3B,EAAQiB,GAAWA,EAAQjB,MACjC,IAAIjgB,EAAOkhB,EAAQlhB,MAAQ,OAEd,SAATA,IACFA,EAAOkhB,EAAQwQ,YAAcxQ,EAAQyQ,WAAc1R,EAAQ,OAAS,QAAW,UAGjF,MAAMmN,EAAYlM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,SAC5DuL,EAAgBjM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,YAChE2L,EAAkBrM,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,cAClEoR,EAAW9R,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,SAC3DqR,EAAe/R,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,YAC/DsR,EAAiBhS,EAAQK,MAAMngB,SAASwgB,EAAS,eAAgB,cAEvE,SAASuR,EAAcC,GACrB,OAAQA,GACN,IAAK,OACH,OAAO,EACT,IAAK,QACH,OAAO,EACT,IAAK,SACL,QACE,MAAO,IAIb,MAAMhS,EAAkB,CACtBxM,IAAK,YACLlT,KAAM,aACN1B,KAAAA,EAGAqjB,aAAc,IACdK,kBAAmB,SACnBC,UAAW,EAEX/jB,SAAU,CACRoiB,MAAemR,EAARlT,EAAsB,QAAyB,QACtDoT,MAAO,CACLzG,OAAiB,SAAT5sB,GAA4B,UAATA,GAAoBigB,GAEjD1e,MAAO,CACLsC,KAAMqd,EAAQ4R,UACdhyB,SAAUqsB,EACV/K,WAAYmL,EACZpL,KAAMiL,GAERkG,KAAM,CACJnR,KAAM6Q,EACNlyB,SAAUmyB,EACV7Q,WAAY8Q,KAKlB,OADsB1U,GAAO,EAAM,GAAI4C,EAAiBxhB,GPV7C2zB,CAAiB3zB,EAAUshB,GAEpC,IAAK,SACH,OAAO+L,GAAK2B,MAAMhvB,EAAUshB,GAC9B,IAAK,SACH,OAAO+L,GAAK4B,MAAMjvB,EAAUshB,GAC9B,IAAK,eACH,OAAOgB,GAAK4M,WAAWlvB,EAAUshB,GACnC,IAAK,eACH,OAAOgB,GAAK6M,WAAWnvB,EAAUshB,GACnC,IAAK,YACH,OQzDN,SAAkBthB,EAAUshB,GAC1B,MAAMU,EAAUV,GAAWA,EAAQU,QAE7BsL,EAAiBhM,EAAQK,MAAMngB,SAASwgB,EAAS,kBAAmB,SAgB1E,OAAOpD,GAAO,EAAM,GAdI,CACtB6E,cAAe,EACfzO,IAAK,YACLlT,KAAM,YACNkU,EAAG,KACHD,EAAG,KACH4Q,MAAO,CACLjF,OAAQ4L,GAEVzF,WAAY,CACVnG,OAAQ4L,IAI6BttB,GAAY,IRsC1C4zB,CAAS5zB,EAAUshB,GAC5B,IAAK,cACH,OS3DN,SAAqBthB,EAAUshB,GAC7B,MAAMuL,EAAYvL,GAAWA,EAAQuL,UAAa,GAMlD,OAAOjO,GAAO,EAAM,GALI,CACtB9c,KAAM,SACNkT,IAAK,WACL6X,SAAAA,GAEuC7sB,GAAY,IToD1C6zB,CAAY7zB,EAAUshB,GAC/B,IAAK,WACH,OU7DN,SAAiBthB,EAAUshB,GACzB,MAAMU,EAAUV,GAAWA,EAAQU,QAC7B8R,EAAWxS,EAAQK,MAAMngB,SAASwgB,EAAS,4BAA6B,SACxE+R,EAAqBzS,EAAQK,MAAMngB,SAASwgB,EAAS,4BAA6B,mBA0BxF,OAAOpD,GAAO,EAAM,GAxBI,CACtB5J,IAAK,WACLlT,KAAM,WACN1B,KAAM,SACN2jB,WAAY,EACZiG,MAAO,CACLhU,EAAG,GACHD,EAAG,IAELxW,MAAO,CACLwqB,IAAK,CACH5oB,MAAO,EACPohB,KAAMwR,EACNzR,KAAM,CACJC,KAAMuR,GAERE,QAAS,CACPhe,EAAG,EACHD,EAAG,MAM8B/V,GAAY,IVgC1CyE,CAAQzE,EAAUshB,GAE3B,IAAK,aACH,OWhEN,SAAmBthB,GAKjB,OAAO4e,GAAO,EAAM,GAJI,CACtB9c,KAAM,aACNkT,IAAK,cAEkChV,GAAY,IX2D1Ci0B,CAAUj0B,GACnB,IAAK,SACH,OF5DN,SAAgBA,EAAUshB,GACxB,MAAMU,EAAUV,GAAWA,EAAQU,QAC7ByL,EAAanM,EAAQK,MAAMngB,SAASwgB,EAAS,cAAe,SAC5D0L,EAAiBpM,EAAQK,MAAMngB,SAASwgB,EAAS,cAAe,YAGhER,EAAkB,CACtBxM,IAAK,SACLlT,KAAM,SACN2hB,aAAc,EACdzjB,SAAU,CACRk0B,QAAS,CACP,CACEh1B,UAAW,aACXi1B,SAAU,OACVC,SAAU,CACRtyB,KAAM,MACN9B,SAAU,CACRogB,UAAW,KACXoC,WAfalB,EAAQK,MAAMngB,SAASwgB,EAAS,cAAe,cAgB5D9gB,SAAUmzB,WAAW3G,GACrBtL,MAAO,GACP6L,OAAQ,CACN,CACEqG,WAAY,CACV,CACEC,SAAU,UACVhS,KAAMkL,EACN+G,QAAS,GAEX,CACED,SAAU,SACVhS,KAAMviB,GAAYA,EAASA,SAASk0B,QAAQ,GAAGE,SAASp0B,SAASiuB,OAAO,GAAGqG,WAAW,GAAG/R,KACzFiS,QAAS,IAGbv0B,MAAOgwB,WASvB,OAAOrR,GAAO,EAAM,GAAI4C,EAAiBxhB,GAAY,IEe1CiuB,CAAOjuB,EAAUshB,GAC1B,QACE,QAIN,SAASmT,GAAanT,GACpBjhB,KAAKihB,QAAUA,GAAW,GAE1BjhB,KAAKL,SAAW,CACd00B,WAAY,CACVhF,YAAaA,MAEfyB,WAAY,GACZ9G,OAAQ,IAIZoK,GAAa7uB,UAAUsgB,aAAe,SAAsBpkB,EAAM9B,EAAUshB,GAC1E,MACMpiB,EAAY2xB,GAAgB/uB,EAAM9B,EADhB4e,GAAO,EAAM,GAAIve,KAAKihB,QAASA,GAAW,KAGlE,OADAjhB,KAAKL,SAASmxB,WAAW1S,KAAKvf,GACvBA,GAGTu1B,GAAa7uB,UAAUgnB,eAAiB,SAAwB5sB,EAAUshB,GACxE,MACMpiB,EAAY2xB,GAAgB,cAAe7wB,EADzB4e,GAAO,EAAM,GAAIve,KAAKihB,QAASA,GAAW,KAMlE,OAJKjhB,KAAKL,SAAS20B,eACjBt0B,KAAKL,SAAS20B,aAAe,IAE/Bt0B,KAAKL,SAAS20B,aAAalW,KAAKvf,GACzBA,GAGTu1B,GAAa7uB,UAAUihB,SAAW,SAAkB/kB,EAAM9B,EAAUshB,GAClE,MACMuE,EAAQgL,GAAgB/uB,EAAM9B,EADZ4e,GAAO,EAAM,GAAIve,KAAKihB,QAASA,GAAW,KAElEjhB,KAAKL,SAASqqB,OAAOxE,EAAM7G,MAAQ6G,EAAM3mB,WAG3Cu1B,GAAa7uB,UAAUoiB,YAAc,WACnC,OAAO3nB,KAAKL,UAGdy0B,GAAa7uB,UAAUgvB,aAAe,SAAsB5f,GAC1D,OAAO3U,KAAKL,SAASmxB,WAAW0D,QAAQ31B,GAAcA,EAAU8V,MAAQA,IAAK,IAG/Eyf,GAAa7uB,UAAUkvB,UAAY,SAAmBhzB,EAAMwf,IYnH5D,SAAsBxf,EAAMwiB,EAAchD,GACxC,OAAQxf,GACN,IAAK,0BACHuiB,GAAsBC,EAAchD,GACpC,MACF,QACE,MAAMjC,MAAM,4CZ8GhB0V,CAAajzB,EAAMzB,KAAMihB,IAG3BmT,GAAaO,sBAAwB,SAA+B7D,GAClE,MAAMzW,EAAO,GACb,OAAOyW,EACJxW,KAAKzb,IACJ,MAAM8V,EAAM9V,EAAU8V,IACtB,OAAKA,EAGD0F,EAAK1F,GACC,+BAA8B9V,EAAU4C,MAElD4Y,EAAK1F,IAAO,EACL,MANG,6BAA4B9V,EAAU4C,QAQjD+yB,QAAQI,KAAUA,KAMvBR,GAAa1uB,OAAS,SAAUub,GAC9B,OAAO,IAAImT,GAAanT,IAG1BmT,GAAa5D,gBAAkBA,GazI/B,MAAMqE,GAAY,CAChBC,OAAQ,EACRC,OAAQ,GAqDV,IAAeC,GAAA,CACbC,YA5CkB,CAClB,CACEr1B,MAAO,cACPs1B,UAAWL,GAAUC,OACrBK,SAAS,GAEX,CACEv1B,MAAO,0BACPs1B,UAAWL,GAAUC,OACrBK,SAAS,GAEX,CACEv1B,MAAO,cACPs1B,UAAWL,GAAUC,OACrBK,SAAS,GAEX,CACEv1B,MAAO,2BACPs1B,UAAWL,GAAUC,OACrBK,SAAS,GAEX,CACEv1B,MAAO,cACPs1B,UAAWL,GAAUE,OACrBI,SAAS,GAEX,CACEv1B,MAAO,eACPs1B,UAAWL,GAAUE,OACrBI,SAAS,GAEX,CACEv1B,MAAO,uBACPs1B,UAAWL,GAAUE,OACrBI,SAAS,GAEX,CACEv1B,MAAO,yBACPs1B,UAAWL,GAAUE,OACrBI,SAAS,IAMXN,UAAAA,ICRF,MAAMO,GAAO,CACXC,wBAAwBC,GACfA,EAAWC,MAAMC,IAAMF,EAAWC,MAAME,KAAQ,EAGzDC,wBAAwBJ,EAAYpR,GAClC,IACIyR,EADAC,GAAS,EAZjB,IAAqBC,EA6BjB,OAfKP,OAEmChT,IAA7B4B,EAAK4R,oBACdF,GAAsC,IAA7B1R,EAAK4R,oBACLR,EAAWS,YAAcT,EAAWS,WAAW,GACxDH,GAAU1R,EAAK8R,QAAUV,EAAWC,MAAMC,IAAMF,EAAWS,WAAW,GAAGE,QAAQ1lB,QAnBlEslB,EAoBMP,EAAWY,oBAlBdL,EAAiB,IAAMA,EAAiB,GAAGM,MAAM,IAAMN,EAAiB,GAAGM,MAAM,GAAGC,YAmBtGT,EAAqBzR,EAAKyR,mBAAqBzR,EAAKyR,mBAAqB,EAEvEC,EADEN,EAAWe,eAAe9lB,QAAUolB,EAC7BL,EAAWY,kBAAkB,GAAGC,MAAM,GAAGC,UAAU/Q,MAAMiR,GAASA,EAAKC,MAAQ,IAGtFjB,EAAWY,kBAAkB,GAAGC,MAAM,GAAGC,UAAU7lB,OAAS+kB,EAAWY,kBAAkB,GAAGM,MAAMC,SAXtGb,GAAsC,IAA7B1R,EAAK4R,oBAcTF,GAGTc,iCAAgC,CAACpB,EAAYpR,KACnCA,EAAKyS,iBAAmBrB,EAAWsB,aAAavR,MAAM4E,GAAYA,EAAQ4M,MAAQ,IAG5FC,qCAAoC,CAACxB,EAAYpR,KAE3CA,EAAKyS,iBACLrB,EAAWsB,aAAaG,OAAO9M,GAAYA,EAAQ+M,MAAQ,GAAK/M,EAAQ+M,MAAQ/M,EAAQ4M,QACjE,IAAzBvB,EAAWC,MAAMC,IAIrByB,wBAAuB,CAAC3B,EAAYpR,SACD5B,IAA7B4B,EAAKgT,oBACAhT,EAAKgT,oBAGP5B,EAAWsB,aAAaG,OAAO9M,GAAYA,EAAQ+M,KAAO/M,EAAQ4M,MAAyB,QAAjB5M,EAAQ+M,OAG3FG,mCAAkC,CAACxyB,EAAMuf,KAC/BA,EAAKkT,sBA1FjB,SAAmCvzB,EAAawzB,GAC9C,MAAMC,EAAMD,EAAY9mB,OACxB,IAAIwB,EACAwlB,EACAC,EACAxzB,EACAD,EAiBJ,IAhBIF,IACF0zB,IACG1zB,EAAYC,YACW,QAAvBD,EAAYI,QAA2C,WAAvBJ,EAAYI,QACzB,OAApBJ,EAAYG,KACXmQ,OAAO7C,OAAOzN,EAAYG,MAC7BwzB,IACG3zB,EAAYC,YACW,QAAvBD,EAAYI,QAA2C,WAAvBJ,EAAYI,QACzB,OAApBJ,EAAYE,KACXoQ,OAAO7C,OAAOzN,EAAYE,OAE/BC,EAAMmQ,OAAOsjB,UACb1zB,GAAOoQ,OAAOsjB,UAGT1lB,EAAI,EAAGA,EAAIulB,EAAKvlB,IAGnB,GAFA/N,EAAMuN,KAAKvN,IAAIA,EAAKqzB,EAAYtlB,GAAG8kB,MACnC9yB,EAAMwN,KAAKxN,IAAIA,EAAKszB,EAAYtlB,GAAGilB,MAC/BhzB,GAAO,GAAKD,GAAO,EACrB,OAAO,EAOX,OAFAC,EAAMuzB,EAAgB1zB,EAAYG,IAAMA,EACxCD,EAAMyzB,EAAgB3zB,EAAYE,IAAMA,EACjCC,GAAO,GAAKD,GAAO,EAwDa2zB,CAA0B/yB,EAAKd,YAAac,EAAK2wB,WAAWsB,cASnGe,gBAAgB1W,EAAStc,GACvB,MAAMuf,EAAOjD,GAAW,GAClB2W,EAAiB,GAQvB,OANA1T,EAAKyS,qBAA2CrU,IAAzB4B,EAAKyS,iBAAuCzS,EAAKyS,gBACxEzS,EAAKkT,0BAAqD9U,IAA9B4B,EAAKkT,sBAA4ClT,EAAKkT,qBAElFpC,GAAkBC,YAAYzb,SAASqe,IACrCD,EAAeC,EAAOj4B,QAAS,KAE5B+E,GAASA,EAAK2wB,YAGnBsC,EAAeE,YAAc93B,KAAKq1B,wBAAwB1wB,EAAK2wB,YAC3DsC,EAAeE,YACVF,GAETA,EAAeG,wBAA0B7T,EAAK8T,gCAC1CJ,EAAeG,0BAGnBH,EAAeK,YAAcj4B,KAAK01B,wBAAwB/wB,EAAK2wB,WAAYpR,GAC3E0T,EAAeM,qBAAuBl4B,KAAK02B,iCAAiC/xB,EAAK2wB,WAAYpR,GAC7F0T,EAAeO,yBAA2Bn4B,KAAK82B,qCAAqCnyB,EAAK2wB,WAAYpR,GACrG0T,EAAeQ,YAAcp4B,KAAKi3B,wBAAwBtyB,EAAK2wB,WAAYpR,GAC3E0T,EAAeS,uBAAyBr4B,KAAKm3B,mCAAmCxyB,EAAMuf,IAN7E0T,IARAA,IChHb,SAASU,GAAOC,EAAmBX,EAAgBY,GACjDx4B,KAAKu4B,kBAAoBA,EACzBv4B,KAAK43B,eAAiBA,EACtB53B,KAAKw4B,qBAAuBA,EAG9B,SAASC,GAAQ74B,EAAO84B,GACtB,OAAO94B,GAAS84B,GAAQA,EAAK94B,GCE/B,SAAS+4B,GAAWC,GAClB54B,KAAK44B,YAAcA,EACnB54B,KAAK64B,QDKPP,GAAO/yB,UAAUuzB,oBAAsB,SAAUx5B,EAAY41B,GAC3D,OACEuD,GAAQn5B,EAAWM,MAAOI,KAAK43B,kBAC9Bt4B,EAAW61B,SAAWsD,GAAQn5B,EAAWM,MAAOI,KAAKw4B,6BACxClW,IAAd4S,GACA51B,EAAW41B,YAAcA,GAS7BoD,GAAO/yB,UAAUwzB,qBAAuB,SAAU7D,GAChD,IAAIU,GAAS,EACb,MAAMoD,EAAOh5B,KAMb,OALAA,KAAKu4B,kBAAkB/e,SAASqe,IAC1BmB,EAAKF,oBAAoBjB,EAAQ3C,KACnCU,GAAS,MAGNA,GAST0C,GAAO/yB,UAAU0zB,WAAa,SAAU/D,EAAWrwB,GACjD,IAAIq0B,EAAM,GACV,MAAMF,EAAOh5B,KAQb,OAPI6E,GACF7E,KAAKu4B,kBAAkB/e,SAASqe,IAC1BmB,EAAKF,oBAAoBjB,EAAQ3C,KACnCgE,GAAUr0B,EAAWI,IAAK,qBAAoB4yB,EAAOj4B,OAA7C,QAIPs5B,GC1DTP,GAAWQ,OAAS,CAClBC,IAAK,8CACLC,QAAS,8DAaXV,GAAWW,qBAAuB,SAAUd,EAAsBD,GAChE,IAAIgB,EAAYf,EAShB,OARKe,IACHA,EAAY,IAEdhB,EAAkB/e,SAASqe,SACOvV,IAA5BiX,EAAU1B,EAAOj4B,SACnB25B,EAAU1B,EAAOj4B,OAASi4B,EAAO1C,YAG9BoE,GAGTZ,GAAWpzB,UAAUi0B,qBAAuB,WAAY,IAAAC,EAAAC,EACtD,MAAM70B,WAAEA,GAAe7E,KAAK44B,YACtBJ,EAAuBja,GAAO,EAAM,GAAIve,KAAK25B,cAAcnB,sBAC3DoB,EAAS,IAAIC,GACjB7E,GAAkBC,YAClBj1B,KAAK43B,eACLY,GAGF,IAAIsB,EACA/5B,EACJ,GAAI65B,EAAOb,qBAAqB/D,GAAkBH,UAAUC,QAC1DgF,EAAUF,EAAOX,WAAWjE,GAAkBH,UAAUC,OAAQjwB,GAChE9E,EAAO,aACF,CAAA,IAAI65B,EAAOb,qBAAqB/D,GAAkBH,UAAUE,QAIjE,OAHA+E,EAAUF,EAAOX,WAAWjE,GAAkBH,UAAUE,OAAQlwB,GAChE9E,EAAO,SAKT,MAAO,CACL4U,IAAK,aACLlT,KAAM,aACN3B,OAAQ,CACNsjB,aAAc,IACdrjB,KAAAA,GAEFJ,SAAU,CACRC,MAAOk6B,EACPj6B,IAA8C,iBAApC+4B,EAAAA,KAAAA,0BAAL,YAAkB3X,eAAlB,IAAAyY,SAAAA,EAA2B3Z,cAStC4Y,GAAWpzB,UAAUw0B,IAAM,SAAUC,GAEnC,GADAh6B,KAAK64B,SACDmB,EAIF,MAAM,IAAIhb,MAAM2Z,GAAWQ,OAAOC,KAHlCp5B,KAAK25B,cAAgBK,EACrBh6B,KAAK43B,eAAiBqC,GAAetC,gBAAgB33B,KAAK25B,cAAc1Y,QAASjhB,KAAK25B,cAAch1B,OASxGg0B,GAAWpzB,UAAUszB,MAAQ,WAC3B74B,KAAK25B,cAAgB,KACrB35B,KAAK43B,eAAiB,MC5CxB,MAAMsC,GAAY5b,GAAMC,OAAO,CAC7B5f,KAAKw7B,EAASC,EAAUxB,EAAayB,EAAYC,GAC/Ct6B,KAAKo6B,SAAWA,EAChBp6B,KAAK44B,YAAcA,EACnB54B,KAAKq6B,WAAaA,EAElBr6B,KAAKu6B,eAAiBD,EACtBt6B,KAAKw6B,KAAM,EACXx6B,KAAKy6B,YAAc,IAAI9B,GAAWC,GAClC54B,KAAK06B,WAAa,CAAC,cAEnB,MAAM1B,EAAOh5B,KAIbA,KAAK26B,eAAiBP,EAAS,GAC/Bp6B,KAAK26B,eAAenc,WAAa,iBAGjCxe,KAAKmsB,cAAgBgO,EAAQxR,MAAM,CACjC5pB,QAASiB,KAAK26B,eACdh7B,SAAU,CACRmxB,WAAY,CACVsD,GAAa5D,gBAAgB,aAAc,CACzC1xB,QAAQC,GAENi6B,EAAK4B,aAAe77B,UAQhC87B,kBAAkBjC,GAChB54B,KAAK44B,YAAcA,GAGrB5Y,QAAQ,IAAA0Z,EACN,MAA+C,SAAd3Z,eAArB6Y,YAAY3X,eAASlB,IAAAA,OAAAA,EAAAA,EAAAA,YAGnC+a,aAAaC,GACX/6B,KAAK06B,WAAaK,GAGpBC,QAAO,CAACX,EAAYY,EAAW16B,IAxFjC,SAAiB85B,EAAYY,EAAW16B,GACtC,IAMI26B,EANAC,EAAO,CACTC,KAAM,EACNC,MAAO,EACPC,OAAQL,EAAU1F,MAAME,IACxBgB,QAAS,IAAQwE,EAAU1F,MAAME,KAInC,GAAIl1B,EAAM,CACR,MAAMO,EAAQP,EAAKO,OAASm6B,EAAU1F,MAAME,IACtC8F,EAAYhqB,KAAK0I,MAAM,IAAQnZ,GACrCq6B,EAAO,CACLC,KAAM76B,EAAKmyB,KAAO,EAClB2I,MAAO96B,EAAK6vB,MAAQ,EACpBkL,OAAQx6B,EACR21B,QAASl2B,EAAKQ,OAASwQ,KAAKvN,IAAIzD,EAAKQ,OAAQw6B,GAAaA,QAG5DJ,EAAO,CACLC,KAAM,EACNC,MAAO,EACPC,OAAQL,EAAU1F,MAAME,IACxBgB,QAAS,IAAQwE,EAAU1F,MAAME,KAIrC,OAAQwF,EAAUt4B,OAChB,IAAK,IACHu4B,EAAgB,oBAChB,MACF,IAAK,IACL,QACEA,EAAgB,aAIpB,OAAOb,EAAWW,QAAQ,CAACG,GAAO,KAAMF,GAAWO,MAAMC,IACvDR,EAAUC,GAAiBO,KAmDpBT,CAAQX,EAAYY,EAAW16B,GAGxCm7B,aAAY,KACH,EAGTC,QAEE,GAAI37B,KAAK07B,eAAgB,CAAA,IAAAE,EACvB57B,KAAKy6B,YAAYV,IAAI/5B,KAAK67B,wBAAwB77B,KAAKF,SACvD,MAAMg8B,EAAsB97B,KAAKy6B,YAAYjB,uBACvCuC,EAA0D,YAAtCD,MAAAA,GAA6B/7B,QAA7B67B,EAAAE,EAAqBh8B,cAAQC,IAAAA,OAA7B,EAA6BA,EAAAA,MAEjDi8B,EAAgBh8B,KAAKi8B,oBAAoBj8B,KAAKF,QAChDi8B,EACFC,EAAclL,WAAa,CAACgL,GACnBA,GACTE,EAAclL,WAAW1S,KAAK0d,GAEhC1H,GAAaO,sBAAsBqH,EAAclL,YAAYtX,SAAS0iB,IACpEC,QAAQC,MAAMF,MAGhBl8B,KAAKq8B,YAAYr8B,KAAKF,OAAQk8B,GAC9Bh8B,KAAKs8B,UAAW,EAElB,OAAOC,QAAQC,WAGjBC,SAEE,GAAKz8B,KAAKF,OAIV,OAAOE,KAAK27B,SAGdM,sBACE,MAAM,IAAIjd,MAAM,2DAGlB0d,yBAAyB/8B,EAAUG,GACjC,MAAM68B,WAAEA,GAAe38B,KAAK44B,YAAY3X,SACnC0b,GAAc78B,EAAO88B,eACxBj9B,EAAS00B,WAAWwI,YAAc,CAChC/7B,MAAOhB,EAAO88B,aAAaxK,QAAQN,KAAKpX,EACxC3Z,OAAQjB,EAAO88B,aAAaxK,QAAQN,KAAKpyB,EACzCo9B,qBAAqB,KAK3BC,WAAWj9B,GAET,OAAIE,KAAKg9B,WACAT,QAAQU,UAGjBj9B,KAAKF,OAASye,GAAO,EAAM,GAAIze,GAC/BE,KAAKF,OAAOo9B,YAAcp9B,EAAOo9B,YAC1BX,QAAQC,YAGjBH,YAAYv8B,EAAQH,EAAUw9B,GAAe,IAAAC,EAAAC,EAC3C,MAAMnkB,EAAU,QAAGkkB,EAAA,QAAAC,EAAAr9B,KAAK44B,YAAY0E,iBAAjB,IAAAD,OAAA,EAAAA,EAA4BE,mBAA/B,IAAAH,EAAAA,EAA8C,GACxDz4B,EAAO3E,KAAK06B,WAAWpgB,KAAKxV,IAAU,CAC1CrD,KAAM,IACNkT,IAAK7P,EACL+yB,OAAQ,CACN3e,WAAAA,GAEFvU,KAAM64B,GAAS19B,EAAQgF,EAAKqR,QAAQ,MAAO,UAEzCnW,KAAKy9B,cACP94B,EAAKyZ,QAAQpe,KAAKy9B,aAAazC,WAGjCh7B,KAAKmsB,cAAcuR,OAAO,CACxB/4B,KAAAA,EACAhF,SAAAA,EACAg+B,YAAaR,IAIfn9B,KAAK26B,eAAeiD,aAAa,aADN,IAI7BC,UACE79B,KAAKg9B,YAAa,EAClBh9B,KAAK89B,MACL99B,KAAKmsB,cAAc0R,WAGrBE,aAAY,KACH,IAGTC,gBAAe,KACN,EAGTC,gBAAgBC,GACTA,EAAetB,eAClBsB,EAAetB,aAAe,IAEhCsB,EAAetB,aAAaxK,QAAU,CAEpC+L,UAAW,GACXrM,KAAM,CACJpX,EAAG1a,KAAKo6B,SAASt5B,QACjBpB,EAAGM,KAAKo6B,SAASr5B,YAKvB86B,wBAAwB/7B,IACf,CACL6E,KAAM7E,+6GCrNZ,IAAIs+B,EAASh8B,OAAOmD,UAAUsL,eAC1BwtB,EAAQj8B,OAAOmD,UAAUkM,SACzBiD,EAAiBtS,OAAOsS,eACxB4pB,EAAOl8B,OAAOm8B,yBAEdC,EAAU,SAAiBC,GAC9B,MAA6B,mBAAlBC,MAAMF,QACTE,MAAMF,QAAQC,GAGK,mBAApBJ,EAAMlgB,KAAKsgB,IAGfE,EAAgB,SAAuBC,GAC1C,IAAKA,GAA2B,oBAApBP,EAAMlgB,KAAKygB,GACtB,OAAO,EAGR,IASIjqB,EATAkqB,EAAoBT,EAAOjgB,KAAKygB,EAAK,eACrCE,EAAmBF,EAAIp5B,aAAeo5B,EAAIp5B,YAAYD,WAAa64B,EAAOjgB,KAAKygB,EAAIp5B,YAAYD,UAAW,iBAE9G,GAAIq5B,EAAIp5B,cAAgBq5B,IAAsBC,EAC7C,OAAO,EAMR,IAAKnqB,KAAOiqB,GAEZ,YAAsB,IAARjqB,GAAuBypB,EAAOjgB,KAAKygB,EAAKjqB,IAInDoqB,EAAc,SAAqB9N,EAAQhQ,GAC1CvM,GAAmC,cAAjBuM,EAAQtC,KAC7BjK,EAAeuc,EAAQhQ,EAAQtC,KAAM,CACpCpK,YAAY,EACZC,cAAc,EACdM,MAAOmM,EAAQ+d,SACfvqB,UAAU,IAGXwc,EAAOhQ,EAAQtC,MAAQsC,EAAQ+d,UAK7BC,EAAc,SAAqBL,EAAKjgB,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAKyf,EAAOjgB,KAAKygB,EAAKjgB,GACrB,OACM,GAAI2f,EAGV,OAAOA,EAAKM,EAAKjgB,GAAM7J,MAIzB,OAAO8pB,EAAIjgB,IAGEJ,EAAG,SAASA,IACzB,IAAI0C,EAAStC,EAAMugB,EAAK/sB,EAAMgtB,EAAaC,EACvCnO,EAASze,UAAU,GACnBT,EAAI,EACJxB,EAASiC,UAAUjC,OACnB8uB,GAAO,EAaX,IAVsB,kBAAXpO,IACVoO,EAAOpO,EACPA,EAASze,UAAU,IAAM,GAEzBT,EAAI,IAES,MAAVkf,GAAqC,iBAAXA,GAAyC,mBAAXA,KAC3DA,EAAS,IAGHlf,EAAIxB,IAAUwB,EAGpB,GAAe,OAFfkP,EAAUzO,UAAUT,IAInB,IAAK4M,KAAQsC,EACZie,EAAMD,EAAYhO,EAAQtS,GAItBsS,KAHJ9e,EAAO8sB,EAAYhe,EAAStC,MAKvB0gB,GAAQltB,IAASwsB,EAAcxsB,KAAUgtB,EAAcX,EAAQrsB,MAC9DgtB,GACHA,GAAc,EACdC,EAAQF,GAAOV,EAAQU,GAAOA,EAAM,IAEpCE,EAAQF,GAAOP,EAAcO,GAAOA,EAAM,GAI3CH,EAAY9N,EAAQ,CAAEtS,KAAMA,EAAMqgB,SAAUzgB,EAAO8gB,EAAMD,EAAOjtB,WAGtC,IAATA,GACjB4sB,EAAY9N,EAAQ,CAAEtS,KAAMA,EAAMqgB,SAAU7sB,KAQjD,OAAO8e,GC/GD,SAASqO,EAAiBlR,EAAO+M,EAAMoE,GAC5C,IAAKnR,EACH,OAAQ,EAEV,IAAMoR,EAAQD,EAAKC,MACbC,EAASrR,EAAMqR,OAASrR,EAAMqR,SAAW,KAC3CA,IACFrR,EAAQqR,GAEV,IAAIC,EAAWF,EAAMtR,OAAOlY,QAAQoY,GAChCuR,GAAW,EACXC,GAAc,EAClB,IAAkB,IAAdF,EACF,IAAK,IAAI3tB,EAAI,EAAGA,EAAIytB,EAAMK,cAActvB,OAAQwB,IAG9C,GAFA6tB,EAAaJ,EAAMK,cAAc9tB,GAAG+tB,SAASxlB,KAAI,SAACjF,GAAD,OAAOA,EAAE0qB,YAAU/pB,QAAQoY,GAC5EuR,EAAUH,EAAMK,cAAc9tB,GAAGiuB,SAAS1lB,KAAI,SAACjF,GAAD,OAAOA,EAAE0qB,YAAU/pB,QAAQoY,IACrD,IAAhBwR,IAAkC,IAAbD,EAAgB,CACvCD,EAAW3tB,EACX,MAMN,OADA2tB,GAAYvE,EAAK3E,MAAM6E,OACR,GAAKqE,GAAYvE,EAAK3E,MAAM8E,QAEjC,EAGNsE,GAAc,EACT,SAACK,GAAD,OAASA,EAAIP,GAAUQ,UAAUC,QAAQP,IAE9CD,GAAW,EACN,SAACM,GAAD,OAASA,EAAIP,GAAUU,UAAUD,QAAQR,IAG3C,SAACM,GAAD,OAASA,EAAIP,IAatB,SAASW,EAAaC,EAASC,EAAeC,GAAA,IAAP7rB,EAAAA,EAAAA,IAC/B+Z,EAAQ,CACZ5Z,MAC2B,mBAAlBwrB,EAAQxrB,MACXwrB,EAAQxrB,MAAMyrB,QACW,IAAlBD,EAAQxrB,MACfwrB,EAAQxrB,MACRyrB,GAiBR,OAdA7R,EAAM9uB,MACqB,mBAAlB0gC,EAAQ1gC,MACX0gC,EAAQ1gC,MAAM2gC,QACW,IAAlBD,EAAQ1gC,MACfsa,OAAOomB,EAAQ1gC,OACfsa,OAAOwU,EAAM5Z,OAEfwrB,EAAQlS,QACVM,EAAMtI,OAAS,CACbzR,IAAAA,EACAyZ,MAAOkS,EAAQlS,MAAMzZ,QAIlB+Z,EAGT,SAAS+R,EAA+FC,GAAjFlB,IAAAA,EAAAA,EAAAA,MAAOtqB,EAA0EwrB,EAA1ExrB,EAAGyrB,EAAuED,EAAvEC,SAAUxrB,EAA6DurB,EAA7DvrB,EAAGyrB,EAAAA,SAAMzF,EAAoDuF,EAApDvF,KAAM0F,EAA8CH,EAA9CG,OAAQZ,EAAsCS,EAAtCT,IAAKa,EAAiCJ,EAAjCI,UAAW7P,EAAsByP,EAAtBzP,OAAQ8P,IAAAA,WACpFC,EAAWL,EACf,GAAIxrB,EAAEiZ,OAASjZ,EAAEiZ,QAAUlZ,EAAG,CAC5B,IAAM+rB,EAAa3B,EAAiBnqB,EAAEiZ,MAAO+M,EAAM,CAAEqE,MAAAA,IACrD,IAAoB,IAAhByB,EACF,OAEFD,EAAWziB,EAAO,CAAE2iB,KAAML,GAAUI,EAAWhB,IAEjDhP,EAAO8P,GAAcV,EAAalrB,EAAG6rB,EAAU,CAAErsB,IAAKmsB,IAGzC,SAASvS,EAAQsJ,EAAQ9H,EAASyP,EAAOpK,GAGtD,IAFA,IAAM+L,EAAOzC,MAAMF,QAAQ3G,GAAUA,EAAS,CAACA,GAC3CuJ,EAAY,GACPrvB,EAAI,EAAGA,EAAIovB,EAAK5wB,OAAQwB,IAC/B,QAA6B,IAAlBovB,EAAKpvB,GAAGqc,MAAuB,CAaxC,IAZA,IAAMiT,EAAOtR,EAAQuR,MACfR,EAAY/Q,EAAQpb,MACpBO,EAA6B,WAAzBqsB,EAAOJ,EAAKpvB,GAAGqc,OAAqB+S,EAAKpvB,GAAGqc,MAAQ2B,EAAQ3B,MAAM+S,EAAKpvB,GAAGqc,OAC5DgH,EAAAA,EAAKoM,gBAAgBL,EAAKpvB,GAAIge,GAA9CvB,IAAAA,MAAOiT,EAAfC,EAAeD,KACTE,EAAWv/B,OAAOiY,KAAKmU,GAEvBoT,IAAUT,EAAKpvB,GAAGgb,QAClB8U,IAAmBV,EAAKpvB,GAAGgb,SAC3B+U,EAAU,GACVC,EAAe,GACfC,EAAQ,GAEL17B,EAAI,EAAGA,EAAI+6B,EAAKtL,WAAWxlB,OAAQjK,IAAK,CAC/C,IAAMsY,EAAK0gB,EAAiBpqB,EAAGmsB,EAAKtL,WAAWzvB,GAAI,CAAEk5B,MAAAA,IACrD,IAAY,IAAR5gB,EAGJ,IAAK,IAAIqjB,EAAI,EAAGA,EAAIZ,EAAKtL,WAAWzvB,GAAG2vB,QAAQ1lB,OAAQ0xB,IAAK,CAC1D,IAAMpB,EAASQ,EAAKtL,WAAWzvB,GAAGkwB,MAAM4E,KAAO6G,EACzCtB,EAAWpiB,EAAO,CAAE2iB,KAAML,GAAUjiB,EAAGyiB,EAAKtL,WAAWzvB,GAAG2vB,QAAQgM,KAClEnjB,EAAMuhB,EAAaoB,EAAMd,EAAU,CAAEhsB,IAAKmsB,IAEhD,IADgBW,EAAKjN,QAAWiN,EAAKjN,OAAOmM,GAC5C,CAIA,IAAK,IAAI9uB,EAAI,EAAGA,EAAI8vB,EAASpxB,OAAQsB,IAAK,CACxC,IAAMsD,EAAIqZ,EAAMmT,EAAS9vB,IACrB4sB,EAAMtpB,EAAE+Y,QAAU,CAAC/Y,GAEnBA,EAAE+Y,SACJpP,EAAI6iB,EAAS9vB,IAAM,IAKrB,IAAK,IAAI4D,EAAI,EAAGA,EAAIgpB,EAAIluB,OAAQkF,IAC9BgrB,EAAY,CACVjB,MAAAA,EACAtqB,EAAAA,EACAyrB,SAAAA,EACAxrB,EAAGspB,EAAIhpB,GACPmrB,KAAMe,EAAS9vB,GACf2c,MAAAA,EACA2M,KAAMkG,EAAKtL,WAAWzvB,GACtBu6B,OAAAA,EACAZ,IAAKoB,EAAKtL,WAAWzvB,GAAG2vB,QAAQgM,GAChCnB,UAAAA,EACA7P,OAAQ9b,EAAE+Y,OAASpP,EAAI6iB,EAAS9vB,IAAMiN,EACtCiiB,WAAY5rB,EAAE+Y,OAASzY,EAAIksB,EAAS9vB,KAIxC,GAAIsD,EAAE+Y,OAAQ,CACZ,IAAMgU,EAAcpjB,EAAI6iB,EAAS9vB,IAAIyI,KAAI,SAACjF,GAAD,OAAOA,EAAEP,SAC5CqtB,EAAcrjB,EAAI6iB,EAAS9vB,IAAIyI,KAAI,SAACjF,GAAD,OAAOA,EAAEzV,SAClDkf,EAAI6iB,EAAS9vB,IAAM,CACjBiD,MACqB,mBAAZK,EAAEL,MACLK,EAAEL,MAAMotB,QACW,IAAZ/sB,EAAEL,MACTK,EAAEL,MACFotB,EACNtiC,MACqB,mBAAZuV,EAAEvV,MACLuV,EAAEvV,MAAMuiC,QACW,IAAZhtB,EAAEvV,MACTsa,OAAO/E,EAAEvV,OACTsa,OAAO4E,EAAI6iB,EAAS9vB,IAAIiD,SAOhC8sB,GACFxM,EAAKwM,MAAM,CACTQ,IAAKjB,EAAKpvB,GACVswB,SAAU1B,EACV/B,IAAK9f,EACLmS,OAAQ8Q,EACRD,QAAAA,EACAD,UAAAA,IAIJG,EAAM5jB,KAAKU,KAKX8iB,EACFR,EAAUhjB,KAAVW,MAAAqiB,EAASkB,EACJlN,EAAKmN,QAAQR,EAAc,CAC5BN,KAAAA,EACAE,SAAAA,EACAnT,MAAAA,MAIJ4S,EAAUhjB,KAAVW,MAAAqiB,EAAkBY,GAIxB,OAAOZ,ECzMT,SAASxU,EAAM0J,GACb,IAAIkM,EAAM,EACNC,EAAWnM,EAAKmM,SAChB1wB,EAAI0wB,GAAYA,EAASlyB,OAC7B,GAAKwB,EACA,OAASA,GAAK,GAAGywB,GAAOC,EAAS1wB,GAAG+C,WADjC0tB,EAAM,EAEdlM,EAAKxhB,MAAQ0tB,EAGA,SAAAE,IACb,OAAO1iC,KAAK2iC,UAAU/V,GCVT,SAAQgW,EAACC,GACtB,IAAiBC,EAAwBL,EAAU1wB,EAAGzM,EAAlDgxB,EAAOt2B,KAAe+iC,EAAO,CAACzM,GAClC,GAEE,IADAwM,EAAUC,EAAKxtB,UAAWwtB,EAAO,GAC1BzM,EAAOwM,EAAQvqB,OAEpB,GADAsqB,EAASvM,GAAOmM,EAAWnM,EAAKmM,SAClB,IAAK1wB,EAAI,EAAGzM,EAAIm9B,EAASlyB,OAAQwB,EAAIzM,IAAKyM,EACtDgxB,EAAK3kB,KAAKqkB,EAAS1wB,UAGhBgxB,EAAKxyB,QACd,OAAOvQ,KCXM,SAAQgjC,EAACH,GAEtB,IADA,IAAiCJ,EAAU1wB,EAAvCukB,EAAOt2B,KAAMijC,EAAQ,CAAC3M,GACnBA,EAAO2M,EAAM1qB,OAElB,GADAsqB,EAASvM,GAAOmM,EAAWnM,EAAKmM,SAClB,IAAK1wB,EAAI0wB,EAASlyB,OAAS,EAAGwB,GAAK,IAAKA,EACpDkxB,EAAM7kB,KAAKqkB,EAAS1wB,IAGxB,OAAO/R,KCRM,SAAQkjC,EAACL,GAEtB,IADA,IAA4CJ,EAAU1wB,EAAGzM,EAArDgxB,EAAOt2B,KAAMijC,EAAQ,CAAC3M,GAAOyM,EAAO,GACjCzM,EAAO2M,EAAM1qB,OAElB,GADAwqB,EAAK3kB,KAAKkY,GAAOmM,EAAWnM,EAAKmM,SACnB,IAAK1wB,EAAI,EAAGzM,EAAIm9B,EAASlyB,OAAQwB,EAAIzM,IAAKyM,EACtDkxB,EAAM7kB,KAAKqkB,EAAS1wB,IAGxB,KAAOukB,EAAOyM,EAAKxqB,OACjBsqB,EAASvM,GAEX,OAAOt2B,KCXM,SAAQmjC,EAACruB,GACtB,OAAO9U,KAAK2iC,WAAU,SAASrM,GAI7B,IAHA,IAAIkM,GAAO1tB,EAAMwhB,EAAK3xB,OAAS,EAC3B89B,EAAWnM,EAAKmM,SAChB1wB,EAAI0wB,GAAYA,EAASlyB,SACpBwB,GAAK,GAAGywB,GAAOC,EAAS1wB,GAAG+C,MACpCwhB,EAAKxhB,MAAQ0tB,KCNF,SAAQY,EAACC,GACtB,OAAOrjC,KAAKsjC,YAAW,SAAShN,GAC1BA,EAAKmM,UACPnM,EAAKmM,SAASloB,KAAK8oB,MCHV,SAAQE,EAACzT,GAItB,IAHA,IAAI0T,EAAQxjC,KACRyjC,EAAWC,EAAoBF,EAAO1T,GACtCmT,EAAQ,CAACO,GACNA,IAAUC,GACfD,EAAQA,EAAMG,OACdV,EAAM7kB,KAAKolB,GAGb,IADA,IAAIvB,EAAIgB,EAAM1yB,OACPuf,IAAQ2T,GACbR,EAAMW,OAAO3B,EAAG,EAAGnS,GACnBA,EAAMA,EAAI6T,OAEZ,OAAOV,EAGT,SAASS,EAAoB1xB,EAAGf,GAC9B,GAAIe,IAAMf,EAAG,OAAOe,EACpB,IAAI6xB,EAAS7xB,EAAE8xB,YACXC,EAAS9yB,EAAE6yB,YACXnwB,EAAI,KAGR,IAFA3B,EAAI6xB,EAAOtrB,MACXtH,EAAI8yB,EAAOxrB,MACJvG,IAAMf,GACX0C,EAAI3B,EACJA,EAAI6xB,EAAOtrB,MACXtH,EAAI8yB,EAAOxrB,MAEb,OAAO5E,EC5BM,SAAAqwB,IAEb,IADA,IAAI1N,EAAOt2B,KAAMijC,EAAQ,CAAC3M,GACnBA,EAAOA,EAAKqN,QACjBV,EAAM7kB,KAAKkY,GAEb,OAAO2M,ECLM,SAAAgB,IACb,IAAIhB,EAAQ,GAIZ,OAHAjjC,KAAKkkC,MAAK,SAAS5N,GACjB2M,EAAM7kB,KAAKkY,MAEN2M,ECLM,SAAAkB,IACb,IAAIC,EAAS,GAMb,OALApkC,KAAKsjC,YAAW,SAAShN,GAClBA,EAAKmM,UACR2B,EAAOhmB,KAAKkY,MAGT8N,ECPM,SAAAC,IACb,IAAIC,EAAOtkC,KAAMukC,EAAQ,GAMzB,OALAD,EAAKJ,MAAK,SAAS5N,GACbA,IAASgO,GACXC,EAAMnmB,KAAK,CAACgI,OAAQkQ,EAAKqN,OAAQ1S,OAAQqF,OAGtCiO,ECKM,SAASC,EAAU7/B,EAAM89B,GACtC,IAEInM,EAEAmO,EACAC,EACA3yB,EACAzM,EAPAg/B,EAAO,IAAIK,EAAKhgC,GAChBigC,GAAUjgC,EAAKmQ,QAAUwvB,EAAKxvB,MAAQnQ,EAAKmQ,OAE3CmuB,EAAQ,CAACqB,GAQb,IAFgB,MAAZ7B,IAAkBA,EAAWoC,GAE1BvO,EAAO2M,EAAM1qB,OAElB,GADIqsB,IAAQtO,EAAKxhB,OAASwhB,EAAK3xB,KAAKmQ,QAC/B4vB,EAASjC,EAASnM,EAAK3xB,SAAWW,EAAIo/B,EAAOn0B,QAEhD,IADA+lB,EAAKmM,SAAW,IAAI/D,MAAMp5B,GACrByM,EAAIzM,EAAI,EAAGyM,GAAK,IAAKA,EACxBkxB,EAAM7kB,KAAKqmB,EAAQnO,EAAKmM,SAAS1wB,GAAK,IAAI4yB,EAAKD,EAAO3yB,KACtD0yB,EAAMd,OAASrN,EACfmO,EAAMK,MAAQxO,EAAKwO,MAAQ,EAKjC,OAAOR,EAAKhB,WAAWyB,GAGzB,SAASC,IACP,OAAOR,EAAUxkC,MAAMsjC,WAAW2B,GAGpC,SAASJ,EAAgBljC,GACvB,OAAOA,EAAE8gC,SAGX,SAASwC,EAAS3O,GAChBA,EAAK3xB,KAAO2xB,EAAK3xB,KAAKA,KAGjB,SAASogC,EAAczO,GAC5B,IAAIv1B,EAAS,EACb,GAAGu1B,EAAKv1B,OAASA,SACTu1B,EAAOA,EAAKqN,SAAYrN,EAAKv1B,SAAWA,GAG3C,SAAS4jC,EAAKhgC,GACnB3E,KAAK2E,KAAOA,EACZ3E,KAAK8kC,MACL9kC,KAAKe,OAAS,EACdf,KAAK2jC,OAAS,KCzDT,SAASrZ,EAASpV,GACvB,GAAiB,mBAANA,EAAkB,MAAM,IAAI8J,MACvC,OAAO9J,ED0DTyvB,EAAKp/B,UAAYi/B,EAAUj/B,UAAY,CACrCC,YAAam/B,EACb/X,MAAO8V,EACPwB,KAAMtB,EACND,UAAWO,EACXI,WAAYN,EACZR,IAAKW,EACL5oB,KAAM6oB,EACNt+B,KAAMy+B,EACNO,UAAWE,EACXkB,YAAajB,EACbG,OAAQD,EACRI,MAAOF,EACPlyB,KAAM6yB,GE1ER,IAAIG,EAAY,IACZC,GAAU,CAACN,OAAQ,GACnBO,GAAY,GAEhB,SAASC,GAAU3jC,GACjB,OAAOA,EAAEge,GAGX,SAAS4lB,GAAgB5jC,GACvB,OAAOA,EAAE6jC,SAGI,SAAAC,KACb,IAAI9lB,EAAK2lB,GACLE,EAAWD,GAEf,SAASE,EAAS9gC,GAChB,IAAIhD,EACAoQ,EAEAuyB,EACAX,EACArN,EAEAoP,EACAC,EANArgC,EAAIX,EAAK4L,OAIT0yB,EAAQ,IAAIvE,MAAMp5B,GAGlBsgC,EAAY,GAEhB,IAAK7zB,EAAI,EAAGA,EAAIzM,IAAKyM,EACnBpQ,EAAIgD,EAAKoN,GAAIukB,EAAO2M,EAAMlxB,GAAK,IAAI4yB,EAAKhjC,GACP,OAA5B+jC,EAAS/lB,EAAGhe,EAAGoQ,EAAGpN,MAAmB+gC,GAAU,MAElDE,EADAD,EAAUR,GAAa7O,EAAK3W,GAAK+lB,IACZC,KAAWC,EAAYP,GAAY/O,GAI5D,IAAKvkB,EAAI,EAAGA,EAAIzM,IAAKyM,EAEnB,GADAukB,EAAO2M,EAAMlxB,GACC,OADG2zB,EAASF,EAAS7gC,EAAKoN,GAAIA,EAAGpN,MACvB+gC,GAAU,IAG3B,CAEL,KADA/B,EAASiC,EAAUT,EAAYO,IAClB,MAAM,IAAI1mB,MAAM,YAAc0mB,GAC3C,GAAI/B,IAAW0B,GAAW,MAAM,IAAIrmB,MAAM,cAAgB0mB,GACtD/B,EAAOlB,SAAUkB,EAAOlB,SAASrkB,KAAKkY,GACrCqN,EAAOlB,SAAW,CAACnM,GACxBA,EAAKqN,OAASA,MATuB,CACrC,GAAIW,EAAM,MAAM,IAAItlB,MAAM,kBAC1BslB,EAAOhO,EAWX,IAAKgO,EAAM,MAAM,IAAItlB,MAAM,WAI3B,GAHAslB,EAAKX,OAASyB,GACdd,EAAKhB,YAAW,SAAShN,GAAQA,EAAKwO,MAAQxO,EAAKqN,OAAOmB,MAAQ,IAAKx/B,KAAMg+B,WAAWyB,GACxFT,EAAKX,OAAS,KACVr+B,EAAI,EAAG,MAAM,IAAI0Z,MAAM,SAE3B,OAAOslB,EAWT,OARAmB,EAAS9lB,GAAK,SAAShK,GACrB,OAAOnD,UAAUjC,QAAUoP,EAAK2K,EAAS3U,GAAI8vB,GAAY9lB,GAG3D8lB,EAASD,SAAW,SAAS7vB,GAC3B,OAAOnD,UAAUjC,QAAUi1B,EAAWlb,EAAS3U,GAAI8vB,GAAYD,GAG1DC,ECtDM,SAASjJ,GAAQ13B,EAAM85B,GACb,MAAnB95B,EAAK8Q,OAAO,KACd9Q,EAAOA,EAAKwQ,UAAU,IAKxB,IAHA,IACIuwB,EADEpH,EAAM35B,EAAKmP,MAAM,KAEnB6xB,EAAYlH,EACP7sB,EAAI,EAAGA,EAAI0sB,EAAIluB,OAAQwB,IAAK,CACnC,GAAe,MAAX0sB,EAAI1sB,IAAc2sB,MAAMF,QAAQsH,GAAY,CAC9C,IAAMC,EAAO,GACbF,EAAUpH,EAAIzmB,MAAMjG,EAAI,GAAGyD,KAAK,KAChC,IAAK,IAAI7B,EAAI,EAAGA,EAAImyB,EAAUv1B,OAAQoD,IAAK,CACzC,IAAI0B,EAAImnB,GAAQqJ,EAASC,EAAUnyB,IAE/B+qB,MAAMF,QAAQnpB,GAChB0wB,EAAK3nB,KAALW,MAAAgnB,EAAIzD,EAASjtB,IAEb0wB,EAAK3nB,KAAK/I,GAGd,OAAO0wB,EAGT,IAAKtH,EAAI1sB,IAAM2sB,MAAMF,QAAQsH,GAAY,CACvC,IAAMC,EAAO,IAAIrH,MAAMoH,EAAUv1B,QACjCs1B,EAAUpH,EAAIzmB,MAAMjG,EAAI,GAAGyD,KAAK,KAChC,IAAK,IAAI7B,EAAI,EAAGA,EAAImyB,EAAUv1B,OAAQoD,IACpCoyB,EAAKpyB,GAAK6oB,GAAQqJ,EAASC,EAAUnyB,IAEvC,OAAOoyB,EAGLtH,EAAI1sB,KAAM+zB,IACZA,EAAYA,EAAUrH,EAAI1sB,KAI9B,OAAO+zB,ECtDT,SAASE,GAAYvD,EAAUwD,EAAOC,GACpC,IAAMzH,EAAM,GACZ,IAAKgE,IAAaA,EAASlyB,OACzB,OAAOkuB,EAET,GAAIwH,GAAS,EAAG,CACd,IAAMhD,EAAQiD,GAAyB,EAAI,CAACzD,EAASyD,IAA0BzD,EAC/EhE,EAAIrgB,KAAJW,MAAA0f,EAAG6D,EAASW,SAEZ,IAAK,IAAIlxB,EAAI,EAAGA,EAAI0wB,EAASlyB,OAAQwB,IAC/B0wB,EAAS1wB,GAAG0wB,UAAYA,EAAS1wB,GAAG0wB,SAASlyB,QAC/CkuB,EAAIrgB,KAAJqgB,MAAAA,EAAYuH,EAAAA,GAAYvD,EAAS1wB,GAAG0wB,SAAUwD,EAAQ,EAAGC,KAI/D,OAAOzH,EAGF,SAAS0H,GAAaC,EAAaC,EAAaH,GACrD,GAAIE,IAAgBC,EAClB,OAAO,SAAC1kC,GAAD,OAAOA,GAEhB,GAAIykC,EAAcC,EAAa,CAE7B,IAAMJ,EAAQ10B,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,IAAKoiC,EAAcC,IACtD,OAAO,SAAC/P,GAEN,IADA,IAAIhxB,EAAIgxB,EACCvkB,EAAI,EAAGA,EAAIk0B,IAASl0B,EAC3BzM,EAAIA,EAAEq+B,OAER,OAAOr+B,GAGX,GAAI+gC,EAAcD,EAAa,CAE7B,IAAMH,EAAQ10B,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,IAAKqiC,EAAcD,IACtD,OAAO,SAAC9P,GAAD,OAAU0P,GAAY1P,EAAKmM,SAAUwD,EAAQ,EAAGC,IAEzD,OAAO,EAGF,SAASI,GAAUC,EAAkB/F,GAAA,IAAThB,EAAAA,EAAAA,MACjC,GAAqB,iBAAV+G,EACT,OAAO/G,EAAMtR,OAAOqY,GAGtB,IAAMC,EAAYhH,EAAMgH,UACxB,GAAqB,mBAAVD,EAAsB,CAC/B,IAAK,IAAIx0B,EAAI,EAAGA,EAAIy0B,EAAUj2B,OAAQwB,IACpC,GAAIw0B,EAAMC,EAAUz0B,IAClB,OAAOy0B,EAAUz0B,GAGrB,OAAO,EAET,GAAqB,iBAAVw0B,GACT,IAAK,IAAIx0B,EAAI,EAAGA,EAAIy0B,EAAUj2B,OAAQwB,IACpC,GAAIy0B,EAAUz0B,GAAG4C,QAAU4xB,GAASC,EAAUz0B,GAAGzQ,UAAYilC,EAC3D,OAAOC,EAAUz0B,QAGhB,GAAIw0B,IAAuC,IAA9BC,EAAUxwB,QAAQuwB,GAEpC,OAAOA,EAGT,MAAMvnB,MAA0BunB,oBAAAA,OAAAA,IC1DlC,IAAME,GAAS,8BACTC,GAAO,0BACPC,GAAe,yBACfC,GAAc,wBAEpB,SAASC,GAAe9W,GACtB,IAAM+W,EAAe/W,EAAQuR,MAAMwF,aAC7B5Y,EAAS6B,EAAQ7B,SAEvB,OAAO4Y,GAAgBA,EAAav2B,SAAW2d,EAAO3d,OAASu2B,EAAe5Y,EAAO5T,KAAI,SAACpF,EAAGnD,GAAJ,OAAUA,KAGrG,SAASg1B,GAAwB1F,GAI/B,OAFEA,EAAKyF,cAAgBzF,EAAKyF,aAAav2B,OAAS8wB,EAAKyF,aAAezF,EAAKhL,eAAe/b,KAAI,SAAC3Y,EAAGqlC,GAAJ,OAAWA,MAE5FxS,QAAO,SAACwS,GAAD,OAAQA,EAAK3F,EAAKhL,eAAe9lB,UAGhD,SAAS02B,GAAc7Y,EAAiBoS,GAAA,IAARa,EAAAA,EAAAA,KACrC,IAAKjT,EACH,OAAQ,EAGV,IAAIzZ,EAAMyZ,EAAMqR,QAAUrR,EAAMqR,SAAWrR,EAAMqR,SAAS9qB,MAAQyZ,EAAMzZ,MACpEuyB,GAAmB,EACnBxH,GAAY,EACZC,GAAW,EACXC,GAAc,EAEduH,GAAsB,EACtBC,GAAc,EACdC,EAAY1yB,EAEV2yB,EAAYjG,EAAKkG,+BACjBC,EAAcT,GAAwB1F,GA0C5C,OAxCIoF,GAAOjuB,KAAK6uB,KACdH,GAAmB,EACnBxH,GAAY+G,GAAOn2B,KAAK+2B,GAAW,GACnCA,EAAY1yB,EAAIwB,QAAQswB,GAAQ,KAG9BC,GAAKluB,KAAK6uB,KACO,MAAfhG,EAAK1+B,MACPwkC,GAAsBT,GAAKp2B,KAAK+2B,GAAW,GAClCC,IAAwC,IAA3BA,EAAUtxB,SAAS,IACzCmxB,GAAsBT,GAAKp2B,KAAK+2B,GAAW,GAC3CD,EAAa,GAEbA,GAAcV,GAAKp2B,KAAK+2B,GAAW,GAErCA,EAAYA,EAAUlxB,QAAQuwB,GAAM,KAGlCW,IACET,GAAYt2B,KAAK+2B,GACnBzH,GAAcgH,GAAYt2B,KAAK+2B,GAAW,GACjCV,GAAar2B,KAAK+2B,KAC3B1H,GAAWgH,GAAar2B,KAAK+2B,GAAW,KAkBrC,CACLI,YAfEP,EACiB,MAAf7F,EAAK1+B,MACM6kC,EAAY9H,GAEZ4H,EAAYA,EAAUtxB,QAAQ0pB,GAAYA,EAEhD4H,IAAwC,IAA3BA,EAAUtxB,SAAS,GAE5BsxB,EAAUtxB,SAAS,GAGnBqrB,EAAKhL,eAAe9lB,QAAyB,MAAf8wB,EAAK1+B,MAAgB,EAAI,IAI3C,EACzBwkC,mBAAAA,EACAC,WAAAA,EACAxH,WAAAA,EACAD,QAAAA,GAIJ,SAASL,GAAiBoI,EAAmBC,GAC3C,IAKIC,EAOAC,EAZAC,EAAS3B,GACXuB,EAAkBD,WAClBE,EAAkBF,WAClBE,EAAkBR,oBAiBpB,OAZES,EADED,EAAkBP,YAAc,EACxB,SAAC9Q,GAAD,OAAUA,EAAK3xB,KAAKw7B,QAAQwH,EAAkBP,aAE9C,SAAC9Q,GAAD,OAAUA,EAAK3xB,MAIvBgjC,EAAkB/H,YAAc,EAClCiI,EAAS,SAACljC,GAAD,IAAAojC,EAAA,OAAUpjC,MAAAA,GAAA,QAAVojC,EAAUpjC,EAAMu7B,iBAAN,IAAA6H,OAAV,EAAUA,EAAiB5H,QAAQwH,EAAkB/H,aACrD+H,EAAkBhI,SAAW,IACtCkI,EAAS,SAACljC,GAAD,IAAAqjC,EAAA,OAAUrjC,MAAAA,GAAA,QAAVqjC,EAAUrjC,EAAMy7B,iBAAN,IAAA4H,OAAV,EAAUA,EAAiB7H,QAAQwH,EAAkBhI,WAGzD,CACLmI,OAAAA,EACAD,OAAAA,EACAD,QAAAA,GAIJ,SAASvH,GAAaC,EAASC,EAAeG,GAAA,IAAP/rB,EAAAA,EAAAA,IAC/B+Z,EAAQ,CACZ5Z,MAC2B,mBAAlBwrB,EAAQxrB,MACXwrB,EAAQxrB,MAAMyrB,QACW,IAAlBD,EAAQxrB,MACfwrB,EAAQxrB,MACRyrB,GAiBR,OAdA7R,EAAM9uB,MACqB,mBAAlB0gC,EAAQ1gC,MACX0gC,EAAQ1gC,MAAM2gC,QACW,IAAlBD,EAAQ1gC,MACfsa,OAAOomB,EAAQ1gC,OACfsa,OAAOwU,EAAM5Z,OAEfwrB,EAAQlS,QACVM,EAAMtI,OAAS,CACbzR,IAAAA,EACAyZ,MAAOkS,EAAQlS,MAAMzZ,QAIlB+Z,EAGT,SAASuZ,GAA0DC,GACjE,IADiE,IAAnDvG,IAAAA,SAAUnT,IAAAA,MAAO8D,IAAAA,KAAM+P,IAAAA,SAAUvjB,IAAAA,IAAKgiB,EAAaoH,EAAbpH,UAC3C/uB,EAAI,EAAGA,EAAI4vB,EAASpxB,OAAQwB,IAAK,CACxC,IAAMo2B,EAAO3Z,EAAMmT,EAAS5vB,IACtB0sB,EAAM0J,EAAKja,QAAU,CAACia,GACxBC,OAAJ,EACIC,OAAJ,EACIF,EAAKja,SACPka,EAAO,GACPC,EAAU,IAGZ,IAVwC,IAAAC,EAAA,SAU/BhiC,GACP,IAAM6O,EAAIspB,EAAIn4B,GACVsY,OAAJ,EACIsa,OAAJ,EACIpkB,OAAJ,EACImuB,OAAJ,EACIsF,OAAJ,EACI3oC,OAAJ,EAsCA,GArCe,cAAXuV,EAAE1T,MACJqT,EAAQK,EAAEL,MACVlV,EAAQsa,OAAO/E,EAAEL,SAEM,mBAAZK,EAAEL,QACX8J,EAAK,SAACvJ,GAAD,OAAOF,EAAEL,MAAMO,EAAGid,KAEF,mBAAZnd,EAAEvV,QACXs5B,EAAM,SAAC7jB,GAAD,OAAOF,EAAEvV,MAAMyV,EAAGid,KAEtBnd,EAAEqzB,UACJvF,EAAQ9tB,EAAEqzB,SAASlW,GACfoM,MAAMF,QAAQyE,IAEhBsF,EAAQtF,EAAM3oB,IAAInF,EAAEszB,eAChBtzB,EAAEuzB,eACJH,EAAQA,EAAMjuB,IAAInF,EAAEuzB,eAElB9pB,IACF9J,EAAQyzB,EAAMjuB,IAAIsE,GAClBA,EAAK,MAEHsa,IACFt5B,EAAQ2oC,EAAMjuB,IAAI4e,GAClBA,EAAM,MAERpkB,EAAQK,EAAEwzB,OAASxzB,EAAEwzB,OAAO7zB,GAASA,EACrClV,EAAQuV,EAAEyzB,YAAczzB,EAAEyzB,YAAYhpC,EAAOkV,GAASoF,OAAOpF,IAG7DlV,EADAkV,EAAQK,EAAEuzB,aAAevzB,EAAEuzB,aAAavzB,EAAEszB,cAAcxF,IAAU9tB,EAAEszB,cAAcxF,KAIpFnuB,EAAQutB,EACRziC,EAAQyiC,IAGR8F,EAAKja,OAAQ,CACf,IAAM7Y,EAAIuJ,EAAKA,EAAG9J,GAASA,EAC3BszB,EAAKhqB,KAAK/I,GACVgzB,EAAQjqB,KAAK8a,GAAgB,MAATt5B,EAAgBs5B,EAAIt5B,GAAkB,MAATA,EAAgBA,EAAQsa,OAAO7E,QAC3E,CACL,IAAMA,EAAIuJ,EAAKA,EAAG9J,GAASA,EAC3BgK,EAAI6iB,EAAS5vB,IAAM,CACjB+C,MAAOO,EACPzV,MAAOs5B,EAAMA,EAAIt5B,GAAkB,MAATA,EAAgBA,EAAQsa,OAAO7E,IAEvDF,EAAEiZ,QACJtP,EAAI6iB,EAAS5vB,IAAIqU,OAAS,CAAEgI,MAAOjZ,EAAEiZ,MAAMzZ,MAAOA,IAAKmsB,MAxDpDx6B,EAAI,EAAGA,EAAIm4B,EAAIluB,OAAQjK,IAAKgiC,EAA5BhiC,GA4DL8hC,IACFtpB,EAAI6iB,EAAS5vB,IAAM,CACjB+C,MAA6B,mBAAfqzB,EAAKrzB,MAAuBqzB,EAAKrzB,MAAMszB,EAAM9V,GAAQ8V,EACnExoC,MAA6B,mBAAfuoC,EAAKvoC,MAAuBuoC,EAAKvoC,MAAMyoC,EAAS/V,GAAQ+V,KAM9E,IAAMQ,GAAe,SAACxH,EAAM7B,EAAO3H,GACjC,IAAMiR,EAA0B,MAAfzH,EAAK1+B,MAAgB,6BAA+B,oBAC/DomC,EAA4B,MAAf1H,EAAK1+B,MAAgB,YAAc,SAChD2hC,EAAO0E,GAAOF,EAAUzH,GAC9B,OAAKiD,GAASA,EAAK,IAGnB9E,EAAMyJ,KAAOzE,EAAUF,EAAK,GAAIzM,EAAO4K,UAAa,SAACnM,GAAD,OAAUA,EAAKyS,KAC5DvJ,EAAMyJ,MAHJ,MAMX,SAASC,GAAqBnZ,GAsB5B,IArBA,IAAMoZ,EAASpZ,EAAQuR,MAAMvL,WAAWxlB,OAASwf,EAAQuR,MAAMvL,WAAW,GAAGE,QAAU,GACjFmT,EAAQvC,GAAe9W,GACvB7B,EAAS6B,EAAQ7B,SACjBnpB,EAAagrB,EAChB7B,SACAsG,QAAO,SAACtf,GAAD,MAAoB,cAAbA,EAAEzT,UAChB6Y,KAAI,SAACpF,GAAD,OAAOk0B,EAAMpzB,QAAQkY,EAAOlY,QAAQd,OACrChQ,EAAW6qB,EACd7B,SACAsG,QAAO,SAACtf,GAAD,MAAoB,YAAbA,EAAEzT,UAChB6Y,KAAI,SAACpF,GAAD,OAAOk0B,EAAMpzB,QAAQkY,EAAOlY,QAAQd,OAOrCmF,EAAO,CACXgvB,OANW,CACXC,KAAM,SACNnJ,QAAS,KAOFx6B,EAAI,EAAGA,EAAIwjC,EAAO54B,OAAQ5K,IAAK,CAKtC,IAJA,IAAMs6B,EAAMkJ,EAAOxjC,GACfga,EAAK,SAEL4pB,GAAQ,EACH51B,EAAI,EAAGA,EAAI5O,EAAWwL,OAAQoD,IAAK,CAAA,IAAA61B,EACpCjJ,EAAON,EAAIl7B,EAAW4O,IACtBgB,EAASgL,GAAAA,OAAAA,EAAO4gB,MAAAA,OAAoBA,QAApBA,EAAAA,EAAKkJ,mBAAelJ,IAAAA,EAAAA,EAAAA,EAAKmJ,SAC1CrvB,EAAK1F,KACR0F,EAAK1F,GAALg1B,EAAA,CACEL,KAAM30B,EACNi1B,SAAUjqB,EACVwgB,QAAS,IACNI,GAELgJ,GAAQ,GAEV5pB,EAAKhL,EAEP,GAAI40B,EACF,IAAK,IAAI51B,EAAI,EAAGA,EAAIzO,EAASqL,OAAQoD,IAAK,CACxC,IAAM4sB,EAAON,EAAI/6B,EAASyO,IAC1B0G,EAAKsF,GAAIwgB,QAAQ/hB,KAAKmiB,IAK5B,IAAM0C,EAAQ7gC,OAAOiY,KAAKA,GAAMC,KAAI,SAAC3F,GAAD,OAAS0F,EAAK1F,MAMlD,OAJU8wB,KACP9lB,IAAG,SAAChe,GAAD,OAAOA,EAAE2nC,QACZ9D,UAAS,SAAC7jC,GAAD,OAAOA,EAAEioC,WAFXnE,CAEqBxC,GAKjC,IAAM4G,GAAuB,SAA0DC,GACrF,IADqF,IAAvDnI,IAAAA,SAAUnT,IAAAA,MAAO6S,IAAAA,KAAM7B,IAAAA,MAAOuK,IAAAA,gBAAiB70B,EAAQ40B,EAAR50B,EACpEnD,EAAI,EAAGA,EAAI4vB,EAASpxB,OAAQwB,IAGnC,IAFA,IAAMo2B,EAAO3Z,EAAMmT,EAAS5vB,IACtB0sB,EAAM0J,EAAKja,OAASia,EAAKja,OAAS,CAACia,GAChC7hC,EAAI,EAAGA,EAAIm4B,EAAIluB,OAAQjK,IAAK,CACnC,IAAM6O,EAAIspB,EAAIn4B,GACd,GAAI6O,EAAEiZ,QAAUlZ,EAAG,CACjB,IACM80B,EAAY1K,GAAiByK,EADf9C,GAAc9xB,EAAEiZ,MAAO,CAAEiT,KAAAA,EAAM7B,MAAAA,KAEnDrqB,EAAEqzB,SAAWwB,EAAUlC,OACvB3yB,EAAEszB,cAAgBuB,EAAUpC,QAC5BzyB,EAAEuzB,aAAesB,EAAUnC,UAM5B,SAASoC,KAA2C,IAAnCpS,EAASrlB,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAA,GAAIud,EAAsBvd,UAAAjC,OAAA,EAAAiC,UAAA,QAAA8P,EAAbkd,EAAahtB,UAAAjC,OAAA,EAAAiC,UAAA,QAAA8P,EAAN8S,EAAM5iB,UAAAjC,OAAA,EAAAiC,UAAA,QAAA8P,EACnD+e,EAAOtR,EAAQuR,MACfR,EAAY/Q,EAAQpb,MACpBjV,EAAmB,MAAf2hC,EAAK1+B,MAAgBumC,GAAqBnZ,GAAW8Y,GAAaxH,EAAM7B,EAAO3H,GACzF,IAAKn4B,EACH,OAAO,KAKT,IAFA,IAAMqB,EAASrB,EAAEqB,OACXmpC,EAAW,GACRn4B,EAAI,EAAGA,GAAKhR,EAAQgR,IAAK,CAChC,IAAImD,EAAI,KACR,GAAInD,EAAI,EACN,GAAmB,MAAfsvB,EAAK1+B,MAAe,CACtB,IACIwnC,EADUpD,GAAwB1F,GACtBtvB,EAAI,GACpBmD,EAAIsqB,EAAMtR,OAAOic,OACZ,CACL,IAAIA,EAAM9I,EAAKkG,+BAA+Bx1B,EAAI,GAK9CA,EAAIsvB,EAAKkG,+BAA+Bh3B,SAC1C45B,EAAM9I,EAAKhL,eAAe9lB,QAG5B2E,EAAIsqB,EAAMtR,OAAOic,GAIrB,IAAAzI,EAAwBtM,EAAKoM,gBAALmI,EAAAA,EAAA,GAA0B9R,GAA1B,GAAA,CAAkCzJ,MAAOlZ,EAAIA,EAAEP,WAAQ2N,IAAayN,GAApFvB,IAAAA,MAAOiT,EAAfC,EAAeD,KACTE,EAAWv/B,OAAOiY,KAAKmU,GAC7B0b,EAASn4B,GAAK,CAAE4vB,SAAAA,EAAUnT,MAAAA,EAAOiT,KAAAA,GAEjC,IAAMsI,EAAkB70B,EAAI+xB,GAAc/xB,EAAG,CAAEmsB,KAAAA,EAAM7B,MAAAA,IAAW,CAAEiI,WAAY,GAE9EoC,GAAqB,CACnBlI,SAAAA,EACAnT,MAAAA,EACA6S,KAAAA,EACA7B,MAAAA,EACAuK,gBAAAA,EACA70B,EAAAA,IAQJ,IAJA,IACMk1B,EADU1qC,EAAEyS,OACiB+yB,cAC7BA,EAAcxlC,EAAEwlC,cAEbnzB,EAAI,EAAGA,EAAImzB,EAAY30B,OAAQwB,IAAK,CAC3C,IAAM4vB,EAAWuI,EAAShF,EAAYnzB,GAAG+yB,OAAOnD,SAC1CnT,EAAQ0b,EAAShF,EAAYnzB,GAAG+yB,OAAOtW,MACvCiT,EAAOyI,EAAShF,EAAYnzB,GAAG+yB,OAAOrD,KAEtCnP,EAAO8X,EAAmBr4B,GAC1BswB,EAAW/P,EAAK3tB,KAEhBma,EAAMuhB,GAAaoB,EAAMY,EAAU,CAAE1tB,IAAKmsB,IAChDmH,GAAK,CACHtG,SAAAA,EACAnT,MAAAA,EACA8D,KAAAA,EACA+P,SAAAA,EACAvjB,IAAAA,EACAgiB,UAAAA,EACAuJ,QAAQ,IAEVnF,EAAYnzB,GAAGpN,KAAOma,EAExB,OAAOpf,EAGF,SAAS6uB,GAAQsJ,EAAQ9H,EAASyP,EAAOpK,GAG9C,IAFA,IAAM+L,EAAOzC,MAAMF,QAAQ3G,GAAUA,EAAS,CAACA,GAC3CuJ,EAAY,GACPpwB,EAAI,EAAGA,EAAImwB,EAAK5wB,OAAQS,IAC/B,QAA6B,IAAlBmwB,EAAKnwB,GAAGod,MAAuB,CACxC,IAAMiT,EAAOtR,EAAQuR,MACfR,EAAY/Q,EAAQpb,MAE1B,IADUk0B,GAAaxH,EAAM7B,EAAO3H,GAElC,SAGF,IAAM3iB,EAA6B,WAAzBqsB,EAAOJ,EAAKnwB,GAAGod,OAAqB+S,EAAKnwB,GAAGod,MAAQ2B,EAAQ3B,MAAM+S,EAAKnwB,GAAGod,OAC5DgH,EAAAA,EAAKoM,gBAAgBL,EAAKnwB,GAAI+e,GAA9CvB,IAAAA,MAAOiT,EAAf6I,EAAe7I,KACTE,EAAWv/B,OAAOiY,KAAKmU,GAEvBub,EAAkB9C,GAAc/xB,EAAG,CAAEmsB,KAAAA,EAAM7B,MAAAA,IACjD+K,EAAoCjL,GAAiB,CAAEmI,WAAY,GAAKsC,GAAhEjC,IAAAA,OAAQD,IAAAA,OAAQD,EAAxB2C,EAAwB3C,QAExBiC,GAAqB,CACnBlI,SAAAA,EACAnT,MAAAA,EACA6S,KAAAA,EACA7B,MAAAA,EACAuK,gBAAAA,EACA70B,EAAAA,IAUF,IAPA,IAAM0sB,IAAUT,EAAKnwB,GAAG+b,QAClB8U,IAAmBV,EAAKnwB,GAAG+b,SAC3B+U,EAAU,GACVC,EAAe,GAEfC,EAAQ8F,EAAOtI,EAAMyJ,MACrBuB,EAAS,GACNz4B,EAAI,EAAGA,EAAIiwB,EAAMzxB,OAAQwB,IAAK,CACrC,IAAMugB,EAAO0P,EAAMjwB,GACbswB,EAAWwF,EAASA,EAAOD,EAAQtV,IAASsV,EAAQtV,GAE1D,IADgBmP,EAAKjN,QAAWiN,EAAKjN,OAAO6N,GAC5C,CAGA,IAAMvjB,EAAMuhB,GAAaoB,EAAMY,EAAU,CAAE1tB,IAAKmsB,IAChDmH,GAAK,CACHtG,SAAAA,EACAnT,MAAAA,EACA8D,KAAAA,EACA+P,SAAAA,EACAvjB,IAAAA,EACAgiB,UAAAA,IAIEc,GACFxM,EAAKwM,MAAM,CACTQ,IAAKjB,EAAKnwB,GACVqxB,SAAAA,EACAzD,IAAK9f,EACLmS,OAAQ8Q,EACRD,QAAAA,EACAD,UAAAA,IAGJ2I,EAAOpsB,KAAKU,IAGV8iB,EACFR,EAAUhjB,KAAVW,MAAAqiB,EAASkB,EACJlN,EAAKmN,QAAQR,EAAc,CAC5BN,KAAAA,EACAE,SAAAA,EACAnT,MAAAA,MAIJ4S,EAAUhjB,KAAVW,MAAAqiB,EAAkBoJ,GAIxB,OAAOpJ,+MCndR,IAAWnwB,EAAAA,EAAoH,WAAW,OAAO,SAASe,EAAEf,GAAgB,IAAIe,GAAGV,OAAOL,GAAG,OAAOA,EAAE,IAAI0C,EAAEhS,EAAEyD,EAAE8P,EAAElE,EAAEtR,EAAEqS,EAAEzL,EAAE27B,EAAEpwB,EAAE4D,EAAEzD,EAAEzB,OAAOjL,EAAE0M,EAAEoD,OAAO,cAActD,EAAExM,EAAE,EAAE0M,EAAEsD,UAAU,EAAEhQ,GAAG,GAAG6P,EAAEnD,EAAEiC,MAAM,IAAIsB,UAAUC,KAAK,IAAIiF,EAAEtF,EAAEC,OAAO,cAAczP,EAAE8P,EAAEgF,EAAE7I,EAAEI,EAAEsD,UAAU3P,EAAEA,EAAE,GAAGN,EAAEM,GAAG,MAAMiM,GAAG,MAAMA,EAAE,EAAE,GAAGK,EAAEwI,EAAE,EAAEzI,EAAEsD,UAAUjQ,EAAEoQ,GAAG,GAAG,GAAgD9B,GAA1B1C,EAAE,OAArBe,EAAEA,EAAEsD,UAAUhQ,EAAED,IAAauQ,OAAO,IAAI3E,GAAGA,GAAM,EAAEA,GAAGA,EAAE,EAA2B7L,GAAzBzD,EAAEqQ,EAAE6D,MAAM,iBAAoBlU,EAAEA,EAAE4O,OAAO,IAAI,IAAI2E,EAAEvT,GAAGA,EAAE,IAAIA,EAAE,IAAI,IAAIqQ,EAAEA,EAAEiC,MAAM7O,GAAkC6L,IAA/BA,EAAEA,EAAE6E,QAAQ9D,EAAE,IAAIA,EAAE,GAAGzB,SAAa,GAAG7Q,EAAEsS,EAAE,IAAIA,EAAE,GAAG+D,YAAY,QAAKzP,EAAE2K,EAAEgD,MAAM,MAAS,IAAI3N,EAAE,IAAIA,EAAE,GAAGiK,QAAQ7Q,KAAKuR,IAAIA,GAAG6E,QAAQpW,EAAE,IAAIuiC,EAAEjwB,EAAE,GAAGiC,MAAMiB,GAAGlD,EAAE,GAAGiwB,EAAEzsB,KAAK,KAAIxE,EAAEgB,EAAE,IAAIA,EAAE,GAAGgE,QAAQ,OAAQ,EAAE,KAAK1P,EAAE,GAAGiK,OAAOyB,EAAE,GAAGzB,OAAOS,GAAG1K,EAAE,GAAG,IAAIA,EAAE,QAAQ,IAAKA,EAAE,KAAKA,EAAE,GAAG,IAAI,IAAG2K,EAAEA,EAAEgD,MAAM,MAAO,GAAG3N,EAAE,GAAGyL,EAAEkwB,EAAE,IAAIA,EAAEA,EAAE1xB,OAAO,GAAGA,OAAO,CAAC,IAAW4E,EAAE,GAAGxP,GAAZkM,EAAEZ,EAAE,IAAYV,OAAOwB,EAAE0D,EAAE5D,EAAEtB,OAAOlL,EAAE,EAAEA,EAAEoQ,EAAEpQ,IAAI8P,GAAGtD,EAAE+D,OAAOvQ,MAAMA,EAAEM,EAAE,GAAGoM,IAAI1M,EAAEoQ,EAAE1D,IAAIoD,GAAGD,GAAGjE,EAAE,GAAGkE,EAAE,OAAOlE,EAAE,GAAGe,EAAE,IAAIf,EAAE,GAAG7L,EAAE6L,EAAE,GAAG,GAAgB,OAAbtP,EAAEsP,EAAEuE,KAAK,MAAa,KAAK7T,IAAIgS,GAAE,GAAI7B,GAAI6B,EAAE,IAAI,IAAIhS,EAAGsQ,IAAp+Bw4B,EAAcx1B,QAAChE,OCCzG,SAASy5B,GAAaxR,GACpB,OAAOA,EAAI/iB,QAAQ,wBAAyB,QAG9C,IAAMw0B,GAAa,CACft0B,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,KAETwB,GAAa,KAEbgyB,GAAQ,gCACRC,GAAM,YACNC,GAAM,YACNx4B,GAAM,YACNy4B,GAAM,YACNC,GAAM,YACNC,GAAa,0EACbC,GAAO,OAET,SAASC,GAAYr2B,EAAOs2B,EAAQjzB,EAASkzB,GAU3C,OATAv2B,EAAQA,EAAMrD,SAAS25B,GACnBjzB,EAAQ,KAAOA,EAAQ,GAAGJ,gBAC5BjD,EAAQA,EAAMiD,eAEZjD,EAAMvE,OAASuE,EAAMkB,QAAQ,KAAO,KAEtClB,EAAQA,EAAMkD,MAAM,EAAGlD,EAAMkB,QAAQ,KAAO,KAGvClB,EAAMqB,QAAQ,IAAKk1B,GAAW,KAKvC,SAASC,GAAYx2B,EAAOqD,GAQ1B,IAPA,IAAIpG,EACFH,EAAI,GACJyD,EAAIlB,OAAO+F,OAAOpF,GAAOkD,OAAO,IAChCuzB,GAAcz2B,EAAQO,GAAK,IAC3Bg2B,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAK91B,UAC9Di2B,EAAU,CAAC,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,MAAMj2B,UAE7EF,EAAI,GACT,IAAKtD,EAAI,EAAGA,EAAIs5B,EAAQ96B,OAAQwB,IAC9B,GAAIs5B,EAAQt5B,IAAMsD,EAAG,CACnBzD,GAAK45B,EAAQz5B,GACbsD,GAAKg2B,EAAQt5B,GACb,MAKN,IAAKA,EAAI,EAAGA,EAAIw5B,EAAYx5B,IAC1BH,EAAC,IAAAyG,OAAOzG,GAMV,OAHIuG,EAAQ,KAAOA,EAAQ,GAAGJ,gBAC5BnG,EAAIA,EAAEvB,eAEDuB,EAGT,SAAS65B,GAAiB32B,EAAOqD,EAASxW,GACxC,IAAIsX,EA6BJ,OA5BI2xB,GAAMpyB,KAAKL,GACbrD,EAAQq2B,GAAYr2B,EAAOX,OAAO,QAAQ7D,KAAK6H,GAAS,IAAKA,EAASxW,GAC7DkpC,GAAIryB,KAAKL,GAClBrD,EAAQq2B,GAAYr2B,EAAO,EAAGqD,EAASxW,GAC9BmpC,GAAItyB,KAAKL,GAClBrD,EAAQq2B,GAAYr2B,EAAO,GAAIqD,EAASxW,GAC/B2Q,GAAIkG,KAAKL,GAClBrD,EAAQq2B,GAAYr2B,EAAO,GAAIqD,EAASxW,GAC/BopC,GAAIvyB,KAAKL,GAClBrD,EAAQq2B,GAAYr2B,EAAO,EAAGqD,EAASxW,GAC9BqpC,GAAIxyB,KAAKL,KAClBc,EAAO,GACHnE,EAAQ,IACVmE,EAAO,IACPnE,GAASA,GAITA,EADY,KADdA,EAAQvD,KAAK0I,MAAMnF,IAET,IACCA,GAAS,IAGVmE,GADRnE,EAAQw2B,GAAYx2B,EAAOqD,IAGnBA,EAAUc,EAAOnE,EAAMqF,cAAc,IAI1CrF,EAGT,SAAS42B,GAAO52B,EAAO62B,EAAOC,GAC5B,IAAM1S,EAAMwR,GAAa51B,GACzB,OAAI82B,EACK1S,EAEF,IAAI/yB,OAAO+yB,GAAO,GAAIyS,GAG/B,SAASE,GAAaC,EAAUT,GAO9B,OANIA,IACFA,EAAUX,GAAaW,IAErBS,IACFA,EAAWpB,GAAaoB,IAEnB,IAAI3lC,OAAJ,WAAAkS,OAAsByzB,EAAtB,cAAAzzB,OAA2CgzB,EAAlD,YAGF,SAASU,GAAiB7yB,EAAY8yB,GACpC,IAAK9yB,IAAeA,EAAWK,uBAC7B,OAAOoxB,GAGT,IAAMrxB,EAAgB,GAUtB,OATYJ,EAAWK,uBAAuBtF,MAAM+3B,GAE9CxyB,SAAQ,SAACyyB,GACb,IAAIC,EAAoBD,EAAah4B,MAAM,KACV,IAA7Bi4B,EAAkB37B,SACpB+I,EAAc4yB,EAAkB,IAAMA,EAAkB,OAIrD5yB,EAGT,SAAS6yB,GAAer6B,EAAGzM,EAAG1D,EAAGyW,GAC/B,IAAIg0B,EACFC,EAEAxzB,EACAJ,EACAC,EACAK,EACAC,EACAC,EACAqzB,EAPAn0B,EAAUrG,EAAEqG,QASVC,IACFtG,EAAEsG,YAAa,GAIjBk0B,EAAQT,GAAaxmC,EAAG1D,GAGxB8W,GADAI,GADAA,EAAiBV,EAAQtC,MAAMy2B,IACGzzB,EAAe,GAAK,IAC5BV,EAAQG,OAAO,EAAGH,EAAQnC,QAAQ6C,IAAmBV,EAC/EO,EAAUG,EAAiBV,EAAQ7C,UAAU6C,EAAQnC,QAAQ6C,GAAkBA,EAAetI,QAAU,GAEnGsI,IACHA,EAAiBV,EAAU,IAAM,cAG/B9S,GAAKA,IAAM1D,IAIb0qC,GADAD,EAAQvzB,EAAe5E,MAAMtS,IACZ4W,MACjBM,EAAiBuzB,EAAM52B,KAAK,IAAM7T,EAAI0qC,EACtChnC,EAAI,IAKN0T,EAAY1T,EACZA,EAAI,IAAImT,KAAK7W,GAAK,IAAM,IACpBoX,IACFF,EAAiBA,EAAe1C,QAAQu1B,GAAO3yB,EAAW,KAAM1T,IAGlE2T,EAAUrX,EACVA,EAAI,IACAqX,IACFH,EAAiBA,EAAe1C,QAAQu1B,GAAO1yB,EAAS,KAAMrX,IAIhEsX,GADAA,EAAOJ,EAAehD,MAAM,OACdoD,EAAK1I,OAAS,EAE5B,IACIg8B,EADEC,EAAer0B,EAAQlE,MAAM+E,GAE/BwzB,EAAa,KACfD,EAAuBC,EAAa,GAAG32B,MAAMq1B,KAG/Cp5B,EAAE2G,OAASA,GAAU,GACrB3G,EAAE4G,QAAUA,GAAW,GACvB5G,EAAEqG,QAAUA,EACZrG,EAAE6G,aAAe4zB,EAAuBA,EAAqBh8B,OAAS,EACtEuB,EAAE8G,WAAaA,GAAWJ,KAAKL,GAC/BrG,EAAE+G,eAAiBA,GAAkB,GACrC/G,EAAEgH,aAAe,IAAI3S,OAAUulC,GAAAA,OAAAA,GAAOrmC,EAAG,MAAM,GAA9B,KAAAgT,OAAuCqzB,GAAO/pC,EAAG,MAAM,IAAS,KACjFmQ,EAAEiH,UAAYA,EACdjH,EAAEkH,QAAUA,EACZlH,EAAEzM,EAAIA,EACNyM,EAAEnQ,EAAIA,EACNmQ,EAAEmH,KAAOA,EAGLwzB,IAAAA,GAAAA,WAUJ,SAAYvzB,EAAAA,EAAYf,EAAS2zB,EAAUT,EAAS5pC,GAAMirC,EAAA1sC,KAAAysC,GACxDzsC,KAAKkZ,WAAaA,EAClBlZ,KAAKmY,QAAUA,EACfnY,KAAKmZ,kBAAoB2yB,GAAY,IACrC9rC,KAAKoZ,iBAAmBiyB,GAAW,IACnCrrC,KAAKyB,KAAOA,GAAQ,UAIpBzB,KAAKqZ,iBAAmB,IAExBrZ,KAAKsZ,cAAgByyB,GAAiB7yB,EAAYlZ,KAAKqZ,kBAEvDrZ,KAAKyZ,mCAGP3E,MAAA,WACE,IAAMxP,EAAI,IAAImnC,EACZzsC,KAAKkZ,WACLlZ,KAAKmY,QACLnY,KAAKmZ,kBACLnZ,KAAKoZ,iBACLpZ,KAAKyB,MAGP,OADA6D,EAAEoU,QAAU1Z,KAAK0Z,QACVpU,kBA8BTwP,MAAA,SAAOA,EAAOqD,EAAS9S,EAAG1D,GAExB,OADA3B,KAAKyZ,QAAQtB,EAAS9S,EAAG1D,GAClB3B,KAAK2Z,YAAY7E,oBAG1BA,MAAA,SAAQqD,EAAS9S,EAAG1D,GAClB,IAAIgrC,EAYJ,QAVuB,IAAZx0B,IACTA,EAAUnY,KAAKmY,cAEA,IAAN9S,IACTA,EAAIrF,KAAKmZ,wBAEM,IAANxX,IACTA,EAAI3B,KAAKoZ,kBAGNjB,EAAL,CAKAnY,KAAK4Z,UAAY,CACfC,SAAU,CACRlY,EAAAA,EACA0D,EAAAA,EACA+S,YAAY,EACZ0B,cAAc,EACdrB,OAAQ,GACRC,QAAS,IAEXqB,SAAU,CACRpY,EAAAA,EACA0D,EAAAA,EACA+S,YAAY,EACZ0B,cAAc,EACdrB,OAAQ,GACRC,QAAS,IAEXsB,KAAM,CACJrY,EAAAA,EACA0D,EAAAA,EACA+S,YAAY,EACZ0B,cAAc,EACdrB,OAAQ,GACRC,QAAS,KAGbi0B,EAAO3sC,KAAK4Z,UAEZzB,EAAUA,EAAQlE,MAAMjU,KAAKqZ,kBAC7BszB,EAAK9yB,SAAS1B,QAAUA,EAAQ,GAChCw0B,EAAK5yB,SAAS5B,QAAUA,EAAQ,GAChCw0B,EAAK3yB,KAAK7B,QAAUA,EAAQ,GACxB8yB,GAAWzyB,KAAKL,EAAQ,MAC1Bw0B,EAAK9yB,SAASC,cAAe,GAE1B3B,EAAQ,GAEF8yB,GAAWzyB,KAAKL,EAAQ,MACjCw0B,EAAK5yB,SAASD,cAAe,GAF7B6yB,EAAK5yB,UAAW,EAIb5B,EAAQ,GAEF8yB,GAAWzyB,KAAKL,EAAQ,MACjCw0B,EAAK3yB,KAAKF,cAAe,GAFzB6yB,EAAK3yB,MAAO,EAKd,IAAM5B,EAA2B,MAAdpY,KAAKyB,KACnBkrC,EAAK9yB,SAASC,cACjBqyB,GAAeQ,EAAK9yB,SAAUxU,EAAG1D,EAAGyW,GAElCu0B,EAAK5yB,WAAa4yB,EAAK5yB,SAASD,cAClCqyB,GAAeQ,EAAK5yB,SAAU1U,EAAG1D,EAAGyW,GAElCu0B,EAAK3yB,OAAS2yB,EAAK3yB,KAAKF,cAC1BqyB,GAAeQ,EAAK3yB,KAAM3U,EAAG1D,EAAGyW,QA1DhCpY,KAAK4Z,UAAY,CAAEzB,SAAS,wBA8DhCrD,MAAA,SAAYA,GACV,IACEmE,EACA2zB,EAEAC,EACAC,EAEAnrC,EACA0D,EACA0M,EACA8G,EACAk0B,EAXEJ,EAAO3sC,KAAK4Z,UAGdozB,EAAO,GAGPC,EAAW,GAMXC,EAAWp4B,EAEb,GAAIxD,MAAMwD,GACR,MAAA,GAAAuD,OAAU60B,GAKZ,GAFAp4B,GAASA,GAEY,IAAjB63B,EAAKx0B,QACP,OAAOrD,EAAMrD,WAGf,GAAc,IAAVqD,GAAe63B,EAAK3yB,KAEtB,OADA2yB,EAAOA,EAAK3yB,MACA7B,QAWd,GATIrD,EAAQ,GAAK63B,EAAK5yB,UACpB4yB,EAAOA,EAAK5yB,SACZjF,GAASA,GAET63B,EAAOA,EAAK9yB,SAEdlY,EAAIgrC,EAAKhrC,EACT0D,EAAIsnC,EAAKtnC,EAELsnC,EAAK7yB,aACPhF,EAAQ22B,GAAiB32B,EAAO63B,EAAKx0B,QAASxW,OACzC,CAKL,GAJIgrC,EAAK/zB,aACP9D,GAAS,KAGP63B,EAAKv0B,WAAY,CACnB,IAGI+0B,EAcAC,EAjBEC,EAAYjrC,OAAOiY,KAAKra,KAAKsZ,eAChCgB,KAAI,SAAC3F,GAAD,OAASnE,SAASmE,EAAK,OAC3B4F,MAAK,SAACvI,EAAGf,GAAJ,OAAUe,EAAIf,KAElBq8B,EAAoBD,EAAU,GAIlC,IAHAt7B,EAAI,EACJ66B,EAAWz4B,OAAOA,OAAOW,GAAOqF,gBAAgBlG,MAAM,KAAK,IAEpDq5B,GAAqBV,GAAY76B,EAAIs7B,EAAU98B,QAEpD+8B,EAAoBD,IADpBt7B,GAIEA,EAAI,IACNo7B,EAAoBE,EAAUt7B,EAAI,IAMhCo7B,GAAqBP,EAAW,GAAKO,EAAoB,EAC3DC,EAAwBD,GAEdP,EAAW,GAAKO,EAAoB,IAAOA,KAEjDG,EAAoB,GAAKA,EAAoBV,GAAYD,EAAKh0B,aAChEy0B,EAAwBE,EAEfH,GAAqBP,KAAcU,EAAoB,IAAMV,GAAYD,EAAKh0B,gBAEvFy0B,EAAwBD,IAGxBC,IACFJ,EAAOhtC,KAAKsZ,cAAc8zB,GAC1Bt4B,GAASvD,KAAAmB,IAAA,GAAM06B,IAcnB,GAVAP,EAAWt7B,KAAKiJ,IAAI1F,GACpBmE,EAAO0zB,EAAK1zB,KAEZ8zB,GADAl0B,EAAiB8zB,EAAK9zB,gBACc5E,MAAMtS,GAAG,GAE3B,MAAd3B,KAAKyB,OACPqT,EAAQvD,KAAKC,MAAMsD,IAErBg4B,EAAMh4B,EAEDi4B,GAAsD,MAAhCl0B,EAAeb,OAAO,GAAG,GAyB7C,GAAI60B,GAAY,MAASA,EAAW,GAAKA,GAAY,MAC1D/3B,EAAQ+3B,EAAWA,EAAS1yB,cAAc,IAAIhE,QAAQ,aAAc,IAAM,QACrE,CACL,IAAMo3B,EAAYp5B,OAChBW,EAAMgB,QAAQvE,KAAKvN,IAAI,GAAI+oC,EAAqBA,EAAmBx8B,OAAS,IAAI0D,MAAM,KAAK,IAEzFu5B,EAAmB30B,EAAe5E,MAAMtS,GAAG,GAK/C,GAFAmT,EAAQiV,GAFRyjB,GAAoB7rC,EAEgB4rC,IAAc,IAE9CR,EAAoB,CACtB,IAAMU,EAAYl8B,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,GAAI+oC,EAAmBx8B,SACxDm9B,EAAUX,EAAmB52B,QAAQ,MAAO,IAAI5F,OAClDo9B,GAA6B,MAAd3tC,KAAKyB,KAAe,EAAIorC,EAAW,GAAG/2B,QAAQ23B,GAAWz1B,MAAM,GAAG7B,QAAQ,MAAO,IAEpG,IAAKpE,EAAI47B,EAAYp9B,OAAQwB,EAAI27B,EAAS37B,IACxC47B,GAAe,IAGbA,IACF74B,GAASnT,EAAIgsC,QAEQ,IAAdJ,IAETT,EAAM,QAjDR,GAAID,GAAQt7B,KAAAmB,IAAI,GAAMuG,IAAQ4zB,EAAW,GAAKA,EAAW,KACzC,IAAV/3B,EACFA,EAAQ,IACC+3B,EAAW,MAAQA,GAAY,MAGxC/3B,GADAA,EAAQg4B,EAAI3yB,cAAc5I,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,GAAIiV,IAAS,IAC9C9C,QAAQ,aAAc,IACpC82B,EAAW,KAEXn4B,EAAQA,EAAM6F,YAAYpJ,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,GAAIiV,MACzCjD,QAAQ,MAAQ,IAExBlB,GADAA,EAAQA,EAAMqB,QAAQrB,EAAMkB,QAAQ,KAAO,EAAI,MAAQ,aAAc,KACvDG,QAAQ,IAAKxU,QAG1B,CAGL,IAFAkX,GAAkBlX,EAClBsX,EAAO1H,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI,GAAIiV,EAAO1H,KAAKqJ,KAAKrJ,KAAKsJ,IAAIgyB,GAAYt7B,KAAKsJ,IAAI,OAC1E9I,EAAI,EAAGA,EAAIkH,EAAMlH,IACpB8G,GAAkB,IAGpB/D,EAAQiV,GAAUlR,EAAgB/D,GA+BtCA,EAAQA,EAAMqB,QAAQw2B,EAAK7zB,cAAc,SAACrD,GACxC,OAAIA,IAAMpQ,EACDsnC,EAAK5zB,UAEVtD,IAAM9T,EACDgrC,EAAK3zB,QAEP,MAEL8zB,EAAM,IAAM,KAAKt0B,KAAK1D,KACxBA,EAAK,IAAAuD,OAAOvD,IAIhB,OAAO63B,EAAKl0B,OAAS3D,EAAQm4B,EAAWD,EAAOL,EAAKj0B,sCAGtD5D,MAAA,WACE,MAAO,CACL2E,QADK,aAELE,YAFK,SAEOtE,GACV,MAAA,GAAAgD,OAAUhD,WA5TZo3B,GAkUS,SAASmB,KAA6B,IAAA,IAAAC,EAAAr7B,UAAAjC,OAANu9B,EAAM,IAAApP,MAAAmP,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,GAAAv7B,UAAAu7B,GACnD,OAAWtB,EAAAA,GAAmBqB,GC/hBjB,SAASE,GAAQC,GAAiB,IAM3CC,EACAjM,EAPgC/d,EAAO1R,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAA,GAC8B0R,EAAAA,EAAjE4N,KAAAA,OAAR,IAAAqc,EAAe,IAAfA,EAAyEjqB,EAAAA,EAApDkqB,kBAAAA,OAArB,IAAAC,GAAAA,EAAyEnqB,EAAAA,EAAzBoqB,MAAAA,OAAQ,IAAAC,EAAA,SAACC,GAAD,OAASA,GAAjED,EACI/O,EAAQp9B,OAAOsD,OAAO,MACtBlC,EAAQpB,OAAOsD,OAAO,MACtB+oC,EAAU,EACVC,EAAO,EAgDX,OA3CER,EADEE,EACO,WAEP,OADAnM,EAAIqM,EAAKvvB,WAAT,EAAAvM,WACI07B,EAAOS,IAAI1M,GACNiM,EAAOjpC,IAAIg9B,GAEbiM,EAAOnU,IAAIkI,EAAGgM,EAAAlvB,WAAA,EAAAvM,aAGd,SAACg8B,GAER,OADAvM,EAAIqM,EAAME,GACNN,EAAOS,IAAI1M,GACNiM,EAAOjpC,IAAIg9B,GAEbiM,EAAOnU,IAAIkI,EAAGgM,EAAKO,MAIvBzU,IAAM,SAACplB,EAAK2K,GAUjB,OATImvB,GAAW3c,WACN0N,EAAMh8B,EAAMkrC,WACZlrC,EAAMkrC,GACbD,IACAC,KAEFlP,EAAM7qB,GAAO2K,EACb9b,EAAMirC,GAAW95B,EACjB85B,IACOnvB,GAGT4uB,EAAOjpC,IAAM,SAAC0P,GAAD,OAAS6qB,EAAM7qB,IAE5Bu5B,EAAOS,IAAM,SAACh6B,GAAD,OAASA,KAAO6qB,GAE7B0O,EAAOrV,MAAQ,WACb2G,EAAQp9B,OAAOsD,OAAO,MACtBlC,EAAQpB,OAAOsD,OAAO,MACtB+oC,EAAU,EACVC,EAAO,GAGTR,EAAOpc,KAAO,WAAA,OAAM2c,GAEbP,EClDM,SAASnkB,GAAU5R,EAAS2zB,EAAUT,EAASuD,EAAO11B,GACnE,IAAM21B,EAAUjB,GAAoB10B,EAAYf,EAAS2zB,EAAUT,EAASuD,GACtEE,EAAWd,GAAQa,EAAQl1B,YAAYo1B,KAAKF,GAAU,CAE1DP,MAAO,SAACx5B,GAAD,OAAYxD,MAAMwD,GAASA,GAASA,KAS7C,SAASk6B,EAAOl6B,GACd,OAAOg6B,EAASh6B,GA8ClB,OAjCAk6B,EAAOA,OAAS,SAAkB75B,EAAGE,EAAGhQ,EAAG1D,GAEzC,OADAmtC,EAASjW,QACFgW,EAAQG,OAAO35B,EAAGF,EAAG9P,EAAG1D,IASjCqtC,EAAO72B,QAAU,SAAmBhD,GAMlC,OALIA,IACF25B,EAASjW,QACTgW,EAAQ12B,QAAUhD,EAClB05B,EAAQp1B,WAEHo1B,EAAQ12B,SAgBV62B,EC7DF,IAAMC,GAAQ,CACnBptC,KAAM,IACNqtC,QAAS,IACTC,OAAQ,IACRC,SAAU,IACVC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,UAAW,KACXC,SAAU,MCTNC,GAAO,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,UAC5EC,GAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDC,GAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEIC,GAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAE5FC,GAAkB,MAExB,SAASC,GAAIn+B,EAAGtM,GACd,IAAK,IAAIyM,EAAIH,EAAErB,OAAQwB,EAAIzM,EAAGyM,IAC5BH,EAAC,IAAAyG,OAAOzG,GAEV,OAAOA,EAGT,SAASo+B,GAAUruC,EAAGsuC,GACpB,IAAIvwC,EAAIiC,EAAEua,cACNM,EAAM7a,EAAEwa,YAAc,EAa1B,OAZI8zB,KACFvwC,GAAK,MAGHA,EAAI,KAIJ8c,EAAM,IACRA,EAAM,GAGD,CACLJ,KAAMza,EAAE0a,iBACRC,MAAO3a,EAAE4a,cACTC,IAAAA,EACAC,KAAM9a,EAAE+a,aACRhd,EAAAA,EACA+V,EAAG9T,EAAEgb,gBACL/K,EAAGjQ,EAAEib,gBACL1H,EAAGvT,EAAEkb,qBACLxX,EAAG1D,EAAEua,eAAiB,GAAK,KAAO,MAItC,SAASg0B,GAAap7B,GACpB,IAAIlD,EAAIkD,EAAMrD,WAAWwC,MAAM,KAC/B,OAAIrC,EAAE,GACJA,EAAIuC,OAAM,KAAAkE,OAAMzG,EAAE,KAEX,EAKX,SAASu+B,GAAkBC,GACzB,IAAMzuC,EAAIyuC,EACJ1wC,EAAI,GAAKwwC,GAAavuC,GACtB8T,EAAI,GAAKy6B,GAAaxwC,GACtBkS,EAAI,GAAKs+B,GAAaz6B,GACtB46B,EAAK,IAAOH,GAAat+B,GAE/B,MAAO,CACLjQ,EAAG4P,KAAK0I,MAAMtY,GACdjC,EAAG6R,KAAK0I,MAAMva,GACd+V,EAAGlE,KAAK0I,MAAMxE,GACd7D,EAAGL,KAAK0I,MAAMrI,GACdsD,EAAG3D,KAAKC,MAAM6+B,IAIlB,SAASC,GAAcF,EAAMj4B,GAC3B,IAOEsE,EAPE8zB,EAAQJ,GAAkBC,GAC5BzuC,EAAI4uC,EAAM5uC,EACVjC,EAAI6wC,EAAM7wC,EACV+V,EAAI86B,EAAM96B,EACV7D,EAAI2+B,EAAM3+B,EACVsD,EAAIq7B,EAAMr7B,EACVwF,EAAI,EAGF,UAAUlC,KAAKL,KACjBsE,EAAO,IAAIR,KACTA,KAAKa,IAAI,KAAM,GAAI,GAAKvL,KAAK0I,MAAMm2B,GAAO,EAAG,EAAG7+B,KAAKC,MAAMs+B,IAAmBM,EAAO7+B,KAAK0I,MAAMm2B,OAE9F9+B,MAAMmL,EAAKM,aACbN,EAAO,OAIN,OAAOjE,KAAKL,KACfzY,GAAS,GAAJiC,GAEF,OAAO6W,KAAKL,KACf1C,GAAS,GAAJ/V,GAEF,OAAO8Y,KAAKL,KACfvG,GAAS,GAAJ6D,GAEH,OAAO+C,KAAKL,KACduC,EAAI+B,EAAOA,EAAKO,SAAW,EAAI,GACvB,IACNtC,EAAI,GAIR,IAAI81B,EAAQ,GAKZ,OAJI/zB,IACF+zB,EAAQ/zB,EAAKP,eAAiB,GAAK,KAAO,MAGrC,CACLE,KAAM,EACNE,MAAO,EACPE,IAAK9B,EACL+B,KAAM9a,EACNjC,EAAAA,EACA+V,EAAAA,EACA7D,EAAAA,EACAsD,EAAAA,EACA7P,EAAGmrC,GAIP,SAASC,GAASC,EAAM/uC,GACtB,MAAO,CACLub,QAAS,CACPvM,EAAMwD,GAAAA,OAAAA,OAAO,GAAAkE,OAAG1W,EAAEya,MAAOpE,OAAO,KAChCmF,GAAI4yB,GAAI,GAAA13B,OAAG1W,EAAEya,MAAOpE,OAAO,GAAI,GAC/BoF,IAAK2yB,GAAI,GAAA13B,OAAG1W,EAAEya,MAAOpE,OAAO,GAAI,GAChCqF,IAJO,SAIH5H,GAEF,OAAOs6B,GAAOpuC,GAAAA,OAAAA,EAAEya,MAAQ3G,EAAElF,UAG9B+M,KAAM,CACJC,EAAG5b,EAAE2a,MAAQ,EACbkB,GAAIuyB,GAAG,GAAA13B,OAAI1W,EAAE2a,MAAQ,GAAK,GAC1BmB,IAAKizB,EAAK70B,mBAAmBla,EAAE2a,OAC/Be,IAAKqzB,EAAK90B,cAAcja,EAAE2a,QAE5BoB,QAAS,CACPhN,EAAG/O,EAAE6a,IACLmB,GAAIoyB,GAAOpuC,GAAAA,OAAAA,EAAE6a,KAAO,GACpBoB,IAAK8yB,EAAK/0B,iBAAiBha,EAAE6a,KAC7Ba,IAAKqzB,EAAKh1B,YAAY/Z,EAAE6a,MAE1BqB,QAAS,CACPpY,EAAG9D,EAAE8a,KACLY,IAFO,SAEH5H,GACF,OAAOs6B,GAAOpuC,GAAAA,OAAAA,EAAE8a,MAAQhH,EAAElF,UAG9BuN,QAAS,CACPpe,EAAGiC,EAAEjC,EACL2d,IAFO,SAEH5H,GACF,OAAOs6B,GAAOpuC,GAAAA,OAAAA,EAAEjC,GAAK+V,EAAElF,UAG3BwN,KAAM,CACJtI,EAAG9T,EAAE8T,EACL4H,IAFI,SAEA5H,GACF,OAAOs6B,GAAOpuC,GAAAA,OAAAA,EAAE8T,GAAKA,EAAElF,UAG3ByN,QAAS,CACPpM,EAAGjQ,EAAEiQ,EACLyL,IAFO,SAEH5H,GACF,OAAOs6B,GAAOpuC,GAAAA,OAAAA,EAAEiQ,GAAK6D,EAAElF,UAG3B0N,QAAS,CACPZ,IADO,SACH5H,GACF,IAAIP,EAAC,GAAAmD,OAAM1W,EAAEuT,GACX5P,EAAImQ,EAAElF,OAAS2E,EAAE3E,OACnB,GAAIjL,EAAI,EACN,IAAK,IAAIyM,EAAI,EAAGA,EAAIzM,EAAGyM,IACrBmD,GAAK,SAEE5P,EAAI,IACb4P,EAAIA,EAAE8C,MAAM,EAAGvC,EAAElF,SAEnB,OAAO2E,IAGXgJ,gBAAiB,CACfb,IADe,SACX5H,GACF,IAAIpQ,EAAI1D,EAAE0D,EAKV,OAJIoQ,EAAE,GAAGsC,gBAAkBtC,EAAE,KAC3BpQ,EAAIA,EAAE0S,eAER1S,EAAIA,EAAE2S,MAAM,EAAGvC,EAAElF,WAOnBogC,IAAAA,GAAAA,WAOJ,SAAAA,EAAYz3B,EAAYf,EAASy4B,GAAOlE,EAAA1sC,KAAA2wC,GACtC,IAiBcE,EAjBRC,EAAO53B,GAAc,GAEtB43B,EAAKz1B,mBACRy1B,EAAKz1B,iBAAmB,CACtBC,cAAeo0B,GACfn0B,UAAWo0B,GACXn0B,gBAAiBo0B,GACjBn0B,YAAao0B,KAIjB7vC,KAAKkZ,WAAa43B,EAClB9wC,KAAK0b,YAAco1B,EAAKz1B,iBAAiBC,cAActD,QACvDhY,KAAK2b,iBAAmBm1B,EAAKz1B,iBAAiBE,UAAUvD,QACxDhY,KAAK4b,cAAgBk1B,EAAKz1B,iBAAiBG,gBAAgBxD,QAC3DhY,KAAK6b,mBAAqBi1B,EAAKz1B,iBAAiBI,YAAYzD,QAEvDG,IAOHA,GANgB44B,EAAAF,EAAA,GACb5B,GAAMM,KAAOuB,EAAKh1B,UAAY,YADjBi1B,EAAAF,EAEb5B,GAAMK,KAAOwB,EAAK/0B,UAAY,cAC9BkzB,EAAAA,EAAAA,GAAMO,UAAYsB,EAAK90B,eAAiB,uBAH3C60B,GAMqBD,IAGvB5wC,KAAKmY,QAAUA,2BAGjBrD,MAAA,WACE,IAAMxP,EAAI,IAAIqrC,EAAc3wC,KAAKkZ,WAAYlZ,KAAKmY,SAElD,OADA7S,EAAEoU,QAAU1Z,KAAK0Z,QACVpU,kBAiBTwP,MAAA,SAAO2H,EAAMtE,GAENA,IACHA,EAAUnY,KAAKmY,QAAUnY,KAAKmY,QAAU,uBAG1CA,EAAUA,EAAQhC,QAAQ,cAAe,IACzC,IACI66B,EADEC,EAAgB,OAAOz4B,KAAKL,GAG9BsE,aAAgBR,KAClB+0B,EAAahB,GAAUvzB,EAAMw0B,IAEzBx0B,EAAO,IAETA,GAAQA,EACRtE,EAAO,IAAAE,OAAOF,IAEhB64B,EAAaV,GAAc7zB,EAAMtE,IAInC,IAAM+4B,EAAQT,GAASzwC,KAAMgxC,GAEvBG,EAAW,GACjB,IAAK,IAAMC,KAAQF,EACb9uC,OAAOmD,UAAUsL,eAAesN,KAAK+yB,EAAOE,IAC9CD,EAAS/yB,KAAKgzB,GAGlB,IAAMC,EAAgB,IAAIlrC,OAAOgrC,EAAS37B,KAAK,KAAM,KAmCrD,OAjCe2C,EAAQhC,QAAQk7B,GAAe,SAAC57B,GAC7C,IAAI9P,EACAyrC,EAYAt8B,EAXJ,IAAKs8B,KAAQF,EACX,GAAI9uC,OAAOmD,UAAUsL,eAAesN,KAAK+yB,EAAOE,KAC9CzrC,EAAI,IAAIQ,OAAOirC,IACT54B,KAAK/C,GACT,MAIN,IAAK9P,EACH,MAAO,GAGT,IAAK,IAAM2rC,KAAWJ,EAAME,GAC1B,GAAIE,IAAY77B,GAAK67B,EAAQjhC,gBAAkBoF,EAAG,MAE3B,KADrBX,EAAQo8B,EAAME,GAAME,MAElBx8B,EAAQo8B,EAAME,GAAME,EAAQjhC,gBAE9B,MAUJ,YAPqB,IAAVyE,IACTA,EAAQo8B,EAAME,GAAM/zB,KAGD,mBAAVvI,IACTA,EAAQA,EAAMW,IAETX,WAzHP67B,GA+HS,SAASY,KAA2B,IAAA,IAAA1D,EAAAr7B,UAAAjC,OAANu9B,EAAM,IAAApP,MAAAmP,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,GAAAv7B,UAAAu7B,GACjD,OAAW4C,EAAAA,GAAiB7C,GC9U9B,IAAM0D,GAAa,MAEZ,SAASC,GAAe38B,GAC7B,OAAO,IAAImH,KACTA,KAAKa,IAAI,KAAM,GAAI,GAAKvL,KAAK0I,MAAMnF,GAAQ,EAAG,EAAG,EAAGvD,KAAKC,MAAMggC,IAAc18B,EAAQvD,KAAK0I,MAAMnF,OAIrF,SAASiV,GAAU5R,GAA0C,IAAjCy4B,EAAQp+B,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAA,KAC7Cq8B,EAAU0C,GADsD/+B,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAA,KACxB2F,EAASy4B,GACjD9B,EAAWd,GAAQa,EAAQG,OAAOD,KAAKF,GAAU,CACnDP,MAAO,SAAC7xB,GAAD,MAA2B,WAAhB8kB,EAAO9kB,IAA6C,mBAAjBA,EAAKM,QAAyBN,EAAKM,UAAYN,KAStG,SAAShD,EAAQ3E,GACf,OAAI87B,IAAU3B,GAAMQ,SACXgC,GAAe38B,GAEjBA,EAST,SAASk6B,EAAOl6B,GAEd,OADAA,EAAQ2E,EAAQ3E,GACTg6B,EAASh6B,GA6ClB,OAlCAk6B,EAAOA,OAAS,SAAkB75B,EAAGE,GAGnC,OAFAy5B,EAASjW,QACTxjB,EAAIoE,EAAQpE,GACLw5B,EAAQG,OAAO35B,EAAGF,IAS3B65B,EAAO0C,OAAS,SAAgBC,GAK9B,OAJA9C,EAAU0C,GAAkBI,EAAIx5B,EAASy4B,GACzC9B,EAAWd,GAAQa,EAAQG,OAAOD,KAAKF,GAAU,CAC/CP,MAAO,SAAC7xB,GAAD,MAA2B,WAAhB8kB,EAAO9kB,GAAoBA,EAAKM,UAAYN,KAEzDzc,MASTgvC,EAAO4B,MAAQ,SAAiBgB,GAK9B,YAJYtvB,IAARsvB,IACFhB,EAAQgB,EACR9C,EAASjW,SAEJ+X,GAGF5B,EC/EF,SAAS6C,GAAmBC,EAAM54B,GACvC,GAAI44B,GAAQA,EAAKC,aAAyE,IAA3D,CAAC,IAAK,IAAK,KAAM,MAAM/7B,QAAQ87B,EAAKC,WAAWnD,OAC5E,OAAOoD,GAAWF,EAAKC,WAAWE,KAAMH,EAAKC,WAAWnD,MAAO11B,GAEjE,IAAIf,EAAU,IACV2zB,EAAW5yB,QAAiD,IAA5BA,EAAWg5B,aAA+Bh5B,EAAWg5B,aAAe,IACpG7G,EAAUnyB,QAAgD,IAA3BA,EAAWi5B,YAA8Bj5B,EAAWi5B,YAAc,IACjG1wC,EAAO,IACP2wC,EAASN,KAAUA,EAAKO,cAgB5B,OAfIP,GAAQA,EAAKC,YACf55B,EAAU25B,EAAKC,WAAWE,MAAQ95B,EAClC2zB,EAAWgG,EAAKC,WAAWO,OAASxG,EACpCT,EAAUyG,EAAKC,WAAWQ,MAAQlH,EAClC5pC,EAAOqwC,EAAKC,WAAWnD,OAASntC,EAChC2wC,EAASA,IAAoD,IAA1C,CAAC,KAAKp8B,QAAQ87B,EAAKC,WAAWnD,QAEjDwD,GAAS,GAGPA,GAAmB,MAAT3wC,KACZ0W,EAAO,IAAAE,OAAOgzB,EAAd,MACA5pC,EAAO,KAGF+wC,GAAar6B,EAAS2zB,EAAUT,EAAS5pC,EAAMyX,GC3BzC,SAASu5B,KAAqF,IACvGC,EADuGlS,EAAAhuB,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAJ,GAAxEs/B,IAAAA,KAAMnyB,IAAAA,GAAIhL,IAAAA,IAAKuE,IAAAA,WAAYy5B,IAAAA,eAAgB79B,IAAAA,MAAOrT,IAAAA,KAAMmxC,EAAoBpS,EAApBoS,YAGjFhL,EAAU9yB,IAAmB,cAATrT,EAAuB,SAACE,GAAD,OAAOA,EAAE+nC,SAAU,SAAC/nC,GAAD,OAAOA,EAAEkxC,SACvEC,EAAU,SAACnxC,GAAD,OAAOA,EAAE8sB,OAAS,IAC5Bka,EAAkB,cAATlnC,EAAuB,QAAU,MAC1CsoB,EAAY8nB,GAAmBC,EAAM54B,GAGrChE,EAAI,CACRyK,GAAI,WAAA,OAAMA,GACVhL,IAAK,WAAA,OAAMA,GACX2sB,IAAK,WAAA,OAAMwQ,GACXxwC,MAAO,WAAA,OAAMwwC,EAAKiB,gBAAkBjB,EAAKlyC,OACzC6B,KAAM,WAAA,OAAMA,GACZg+B,OAAQ,WAAA,OAAMmT,GACd5Q,MAAO,WAIL,OAHK0Q,IACHA,EAASC,EAAez9B,IAEnBw9B,GAET1uC,IAAK,WAAA,OAAM8tC,EAAKjb,MAChB9yB,IAAK,WAAA,OAAM+tC,EAAK9a,MAChBliB,MAAO8yB,EACPhoC,MAAOkzC,EACPnK,OAAAA,EACAC,YApB2B,cAATnnC,EAAuB,QAAU,SAACmsB,EAAQvY,GAAT,OAAe0U,EAAU1U,IAqB5E0U,UAAW,WAAA,OAAMA,GACjBipB,KAAM,WAAA,OAAMlB,EAAKmB,QAGnB,OAAO/9B,EC3BT,SAASg+B,GAAapuC,EAAM85B,EAAKnmB,EAAQ06B,EAAWjvB,GAClD,OAAQ0a,EAAI95B,IAAS,IAAIwV,KAAI,SAACw3B,EAAM//B,GAClC,IAAMqhC,EAAcD,GAAAA,OAAAA,EAAeA,GAAAA,OAAAA,EAAe,KAAA,IAAKruC,OAAAA,EAAQiN,KAAAA,OAAAA,GACzDmD,EAAI,CACR6qB,SAAU3R,GACR7P,EACE,CACEoB,GAAE,GAAAtH,OAAKI,EAAYA,GAAAA,OAAAA,OAAY,IAA7BJ,OAAkC+6B,GACpCz+B,IAAKy+B,EACLtB,KAAAA,GAEF5tB,KAyBN,OArBAhP,EAAE4qB,SAAWoT,GACX,eACApB,EACAr5B,EACA26B,EACA70B,EAAO,GAAI2F,EAAM,CAAEpP,MAAO,SAACO,GAAD,OAAOA,EAAEq0B,SAASjoC,KAAM,eAEpDyT,EAAE8qB,SAAWkT,GACX,gBACApB,EACAr5B,EACA26B,EACA70B,EAAO,GAAI2F,EAAM,CAAEpP,MAAO,SAACO,GAAD,OAAOA,EAAEg+B,MAAM5xC,KAAM,aAEjDyT,EAAEhQ,SAAWguC,GACX,eACApB,EACAr5B,EACA26B,EACA70B,EAAO,GAAI2F,EAAM,CAAEpP,MAAO,SAACO,GAAD,OAAOA,EAAEw9B,QAAQpxC,KAAM,aAE5CyT,KAII,SAASuF,KAAmC,IAAA64B,EAAAC,EAAAC,EAAAhT,EAAAhuB,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAJ,GAA3BmC,IAAAA,IAAKhQ,IAAAA,KAA0B8uC,EAAAjT,EAApB3I,OAAAA,OAAS,IAAA4b,EAAA,GAAWA,EACnDjU,EAAQ,CACZtR,OAAQ,GACR2R,cAAe,GACf2G,UAAW,GACXkN,cAAe,IAGXrS,EAAO18B,EACb,IAAK08B,EACH,MAAM,IAAIriB,MAAM,wBAGlB,IAAKqiB,EAAKhL,eACR,MAAM,IAAIrX,MAAM,qDAGlB,IAAMugB,EAAO9kB,GAAE2a,KAETlR,EAAO,CACXsb,MAAAA,EACA6B,KAAAA,EACAnoB,WAAY2e,EAAO3e,WACnBy5B,eAAgB,KAChBlX,MAAO,KACP+I,UAAW,WAAA,OAAM,MACjBkP,cAAe7b,EAAO6b,eAGlB3jB,EAAU,CACdpb,IAAK,WAAA,OAAMA,GACX2sB,IAAK,WAAA,OAAMD,GACXjT,MAAO,SAACmY,GAAD,OAAWD,GAAUC,EAAOriB,IACnCgK,OAAQ,WAAA,OAAMsR,EAAMtR,OAAOlW,SAC3BuW,QAAS,SAAColB,GAAD,OAAsBzvB,EAAK0vB,UAAUD,EAAkB5jB,EAASyP,EAAOD,IAChFiF,UAAW,SAACqP,GAAD,OAAqB3vB,EAAKsgB,UAAUqP,EAAiB9jB,EAASyP,EAAOD,IAChFuU,OAAQ,WAAA,OAAMtU,IAGG,MAAf6B,EAAK1+B,OAAgC,MAAf0+B,EAAK1+B,QAAmB0+B,EAAK1+B,OAAS0+B,EAAK0S,aACnE7vB,EAAK0vB,UAAYI,GACjB9vB,EAAKsgB,UAAYyP,GACjB/vB,EAAKuX,MAAuB,MAAf4F,EAAK1+B,MAAgB0+B,EAAKnL,kBAAoBmL,EAAK6S,gBACxC,MAAf7S,EAAK1+B,OACduhB,EAAK0vB,UAAYO,EACjBjwB,EAAKuX,MAAQ4F,EAAKtL,WAClB7R,EAAKsgB,UAAYyP,IAEjB/vB,EAAK0vB,UAAY,WAAA,MAAM,IAGzB1vB,EAAKyuB,eAAiB,SAACz9B,GAAD,OAAOgP,EAAK0vB,UAAU,CAAExlB,MAAOlZ,GAAK6a,EAASyP,EAAOD,IAE1E,IAAM6U,EAAwB,MAAf/S,EAAK1+B,MAAgB,SAAChB,GAAD,OAAOA,EAAE8nC,kBAAcnnB,EACrD+xB,EAAyB,MAAfhT,EAAK1+B,MAAgB,SAAChB,GAAD,OAAOA,EAAE0xC,WAAO/wB,EA6CrD,OA3CAkd,EAAAA,EAAMK,eAAczhB,KACf80B,MAAAA,EAAAA,EAAAA,GAAa,iBAAkB7R,EAAM1sB,EAAK,GAAI4J,EAAO,GAAI2F,EAAM,CAAEpP,MAAOs/B,EAAQ3yC,KAAM,kBAE3F+9B,EAAAA,EAAMK,eAAczhB,KACf80B,MAAAA,EAAAA,EAAAA,GAAa,eAAgB7R,EAAM1sB,EAAK,GAAI4J,EAAO,GAAI2F,EAAM,CAAEpP,MAAOu/B,EAAS5yC,KAAM,eAG1F+9B,EAAMtR,OAASsR,EAAMK,cAAcvlB,KAAI,SAACpF,GAAD,OAAOA,EAAE6qB,YAE/B,SAAXuU,EAAY7V,GAChBA,EAAIjlB,SAAQ,SAACtE,GACXsqB,EAAMgH,UAAUpoB,KAAKlJ,EAAE6qB,UACvBuU,EAASp/B,EAAEhQ,UACXovC,EAASp/B,EAAE4qB,UACXwU,EAASp/B,EAAE8qB,aAIfsU,CAAS9U,EAAMK,gBAEdhI,EAAO6b,eAAiB,IAAIl6B,SAAQ,SAACnE,GAMpC,IAAMu9B,EAAc7iB,EAAQ3B,MAAM/Y,EAAEk/B,MAC9Br/B,EAAIkZ,GAAKub,EAAA,CACbmI,KAAMc,EAAYtR,MAClB3hB,GAAE,GAAAtH,OAAK1D,EAAL,KAAA0D,OAAYhD,EAAEV,KAChBi+B,YAAAA,EACAD,eAAgB,SAAC6B,GAAD,OAAQtwB,EAAK0vB,UAAU,CAAExlB,MAAOomB,GAAMzkB,EAASyP,EAAOD,IACtE5qB,IAAKU,EAAEV,IACPlT,KAAMmxC,EAAYnxC,OAClByX,WAAYgL,EAAKhL,WACjBpE,MAAO89B,EAAY99B,OACfO,EAAEo/B,UAAY,KAEpBjV,EAAMkU,cAAct1B,KAAKlJ,OAG3BsqB,EAAAA,EAAMgH,WAAUpoB,KAAQohB,MAAAA,EAAAA,EAAAA,EAAMkU,gBAEvB3jB,EChJT,IAAM2kB,GAAiB,CACrB,CAAC,aAAc,iBACf,CAAC,YAAa,gBACd,CAAC,iBAAkB,eACnB,CAAC,eAAgB,aACjB,CAAC,eAAgB,wBACjB,CAAC,gBAAiB,0BAGdjO,GAAS,+BACTC,GAAO,wBACPE,GAAc,oCACdD,GAAe,yBACfgO,GAAQ,gBACRC,GAAQ,eAERC,GAAa,SAAC/vC,GAAD,MAAA,GAAAuT,OAAavT,EAAKwT,OAAO,EAAGxT,EAAKkR,QAAQ,kBAAoB,MAC1E8+B,GAAa,SAAChwC,GAAD,MAAA,GAAAuT,OAAavT,EAAKwT,OAAO,EAAGxT,EAAKkR,QAAQ,iBAAmB,MAExE,SAAS++B,GAAmBp1B,EAAI7f,GACrC,IAAIgF,EAAO6a,EACPq1B,GAAgB,EAChB5N,GAAc,EACd6N,EAAa,GACbC,EAAc,SAAC//B,GAAD,OAAOA,GACrBw/B,GAAMn8B,KAAKmH,IACbs1B,EAAgBnwC,GAAAA,OAAAA,EAAKwT,OAAO,EAAGxT,EAAKkR,QAAQ,cAAgB,KAC5Dk/B,EAAcL,IACLD,GAAMp8B,KAAKmH,KACpBs1B,EAAgBnwC,GAAAA,OAAAA,EAAKwT,OAAO,EAAGxT,EAAKkR,QAAQ,aAAe,IAC3Dk/B,EAAcJ,IAGhB,IAAIK,GAAc,EAUlB,GARI1O,GAAOjuB,KAAKmH,KACdq1B,GAAgBvO,GAAOn2B,KAAKqP,GAAI,IAG9B+mB,GAAKluB,KAAKmH,KACZynB,GAAcV,GAAKp2B,KAAKqP,GAAI,IAG1BinB,GAAYpuB,KAAKmH,GAAK,CACxBynB,GAAc,EACd4N,EAAe,EACf,IAAMI,GAAWxO,GAAYt2B,KAAKxL,GAAM,GACnCwM,MAAM8jC,KACTJ,EAAeI,EACftwC,EAAOA,EAAKqR,QAAQ,SAAU,KAEhCg/B,GAAc,EAGhB,GAAIxO,GAAanuB,KAAKmH,GAAK,CAGzB,IAAMxc,EAASikC,EACf,GAAItnC,EAAQ,CACVsnC,EAAa,EACb,IAAMiO,EAAK7Y,GAAQyY,EAAYn1C,GAG/BsnC,IAAeiO,EAAGze,cAAgB,IAAIrmB,OAIlCykC,GAAgB,GAClB5N,EAAaiO,EAAGhf,eACbre,MAAM,EAAGg9B,GACTrM,QAAO,SAACtzB,EAAGigC,GAAJ,OAAYjgC,EAAIigC,EAAIC,cAAchlC,SAAQ62B,GACpD4N,GAAgB,IAEhB5N,EAAaiO,EAAGhf,eAAesS,QAAO,SAACtzB,EAAGigC,GAAJ,OAAYjgC,EAAIigC,EAAIC,cAAchlC,SAAQ62B,GAEhFA,EAAaiO,EAAGze,aAAa5e,MAAM,EAAG7U,GAAQwlC,QAAO,SAACtzB,EAAGmgC,GAAJ,OAAangC,EAAImgC,EAAKD,cAAchlC,SAAQ62B,IAInGA,IAAeT,GAAar2B,KAAKxL,GAAM,QAC9BkwC,GAAgB,GACzBA,GAAgB,EAChB5N,GAAcT,GAAar2B,KAAKxL,GAAM,IAEtCsiC,IAAeT,GAAar2B,KAAKxL,GAAM,GAAK,EAgBhD,OAZA4vC,GAAel7B,SAAQ,SAAegnB,GAAA,IAAAE,EAAA+U,EAAAjV,EAAA,GAAbnrB,EAAaqrB,EAAA,GAAVE,EAAUF,EAAA,GACpC57B,EAAOA,EAAKqR,QAAQd,EAAGurB,MAGrBuU,IACFrwC,EAAOowC,EAAYpwC,IAGjBA,GAAoB,MAAZA,EAAK,KACfA,EAAI,IAAAuT,OAAOvT,IAGN,CACLsiC,WAAAA,EACA4N,aAAAA,EACAlwC,KAAAA,GAgBW,SAAS4wC,GAAOloB,GAA0B,IAoKfmoB,EApKJzxB,EAAO1R,UAAAjC,OAAA,QAAA+R,IAAA9P,UAAA,GAAAA,UAAA,GAAA,GAAI1S,EAAQ0S,UAAAjC,OAAA,EAAAiC,UAAA,QAAA8P,EACjDszB,EAAU1xB,EAAK0xB,QACfC,EAAgB3xB,EAAK2xB,cACrBC,EAAa,GACbC,EAAU,GACVC,EAAWxoB,EAAMwoB,WACnBC,GAAY,EAqJhB,OApJAzoB,EAAM0oB,UAAU18B,SAAQ,SAACvI,GACvB,IAAM6/B,EAAOiE,GAAmB9jC,EAAE0O,GAAI7f,GACtC,GAAe,UAAXmR,EAAExP,MAAoBqvC,EAAK1J,YAAc,GAAK0J,EAAKkE,cAAgB,EAAG,CACxE,IAAMmB,EAASllC,EAAEuc,MAAM2oB,SACnBA,EAAO5lC,SACT0lC,GAAY,EACPF,EAAQK,iCACXL,EAAQK,+BAAiC,CACvCtxC,KAAMgsC,EAAKhsC,KACXqxC,OAAQ,KAGZA,EAAO38B,SAAQ,SAACqT,GAAD,OACbkpB,EAAQK,+BAA+BD,OAAO/3B,KAAK,CACjDi4B,WAAYvF,EAAK1J,WACjBkP,aAAcxF,EAAKkE,aACnBuB,OAAQ,CACN1f,KAAMhK,EAAM7oB,IACZgzB,KAAMnK,EAAM9oB,IACZyyC,YAAY,EACZC,YAAY,aAKf,CACL,GAAe,UAAXxlC,EAAExP,MAAoBqvC,EAAK1J,YAAc,EAAG,CAC9C,IAAM+O,EAASllC,EAAEuc,MAAM2oB,SACnBA,EAAO5lC,SACT0lC,GAAY,EACPF,EAAQW,6BACXX,EAAQW,2BAA6B,CACnC5xC,KAAMgsC,EAAKhsC,KACXqxC,OAAQ,KAGZA,EAAO38B,SAAQ,SAACqT,GAAD,OACbkpB,EAAQW,2BAA2BP,OAAO/3B,KAAK,CAC7Ci4B,WAAYvF,EAAK1J,WACjBmP,OAAQ,CACN1f,KAAMhK,EAAM7oB,IACZgzB,KAAMnK,EAAM9oB,IACZyyC,YAAY,EACZC,YAAY,SAMtB,GAAe,UAAXxlC,EAAExP,MAAoBqvC,EAAKkE,cAAgB,EAAG,CAChD,IAAMmB,EAASllC,EAAEuc,MAAM2oB,SACnBA,EAAO5lC,SACT0lC,GAAY,EACPF,EAAQY,iCACXZ,EAAQY,+BAAiC,CACvC7xC,KAAMgsC,EAAKhsC,KACXqxC,OAAQ,KAGZA,EAAO38B,SAAQ,SAACqT,GAAD,OACbkpB,EAAQY,+BAA+BR,OAAO/3B,KAAK,CACjDw4B,OAAQ9F,EAAKkE,aACbuB,OAAQ,CACN1f,KAAMhK,EAAM7oB,IACZgzB,KAAMnK,EAAM9oB,IACZyyC,YAAY,EACZC,YAAY,SAOtB,GAAe,UAAXxlC,EAAExP,MAAoBqvC,EAAKkE,cAAgB,EAC7C,GAAIY,EACF,GACE91C,GACAA,EAAOw1B,aACsB,MAA5Bx1B,EAAOw1B,WAAW3yB,OAA6C,MAA5B7C,EAAOw1B,WAAW3yB,OAA6C,MAA5B7C,EAAOw1B,WAAW3yB,OACzF,CACA,IAAMs4B,EAAYn7B,EAAOw1B,WACnBuhB,EAAe5b,EAAU6b,cACzBC,EAAqB9b,EAAUsM,+BAA+BvxB,QAAQ86B,EAAKkE,cASjF,GAPKe,EAAQiB,mBACXjB,EAAQiB,iBAAmB,CACzBlyC,KAAMgsC,EAAKhsC,KACXyjC,MAAO,KAIPt3B,EAAE0O,KAAOk2B,IAAkBA,EAAe,CAC5C,IAAMoB,EAAchmC,EAAEuc,MACnBklB,SACAp4B,KAAI,SAAC1I,GAAD,OAAQA,KACZ4iB,QAAO,SAACnf,GAAD,OAAQ/D,MAAM+D,OAEF,IAAjBwhC,GAAsBE,GAAsBF,IAAiBA,GAAgB,EAChFI,EAAYz9B,SAAQ,SAAC8F,GACnBy2B,EAAQiB,iBAAiBzO,MAAMnqB,KAAK,CAClCwwB,MAAO,IACPsI,KAAM53B,EACN4hB,KAAM6V,EAAqBF,OAI/BI,EAAYz9B,SAAQ,SAAC8F,GACnBy2B,EAAQiB,iBAAiBzO,MAAMnqB,KAAK,CAClCwwB,MAAO,IACPsI,KAAMpG,EAAKkE,aACX9T,KAAM5hB,OAIZ22B,IAAcF,EAAQiB,iBAAiBzO,MAAMh4B,aAG1CwlC,EAAQoB,uBACXpB,EAAQoB,qBAAuB,CAC7BryC,KAAMgsC,EAAKhsC,KACXsyC,KAAM,KAIVrB,EAAQoB,qBAAqBC,KAAKh5B,KAAK0yB,EAAKkE,cACxC/jC,EAAE0O,KAAOk2B,IAAmBA,GAAkBE,EAAQoB,qBAAqBzE,UAC7EqD,EAAQoB,qBAAqBzE,OAASzhC,EAAEuc,MACrCklB,SACAp4B,KAAI,SAAC1I,GAAD,OAAQA,KACZ4iB,QAAO,SAACnf,GAAD,OAAQ/D,MAAM+D,MACxB4gC,IAAcF,EAAQoB,qBAAqBzE,OAAOniC,YAGjD,CACL,IAAMmiC,EAASzhC,EAAEuc,MACdklB,SACAp4B,KAAI,SAAC1I,GAAD,OAAQA,KACZ4iB,QAAO,SAACnf,GAAD,OAAQ/D,MAAM+D,MACxB4gC,IAAcvD,EAAOniC,OACrBulC,EAAW13B,KAAK,CACdi5B,OAAQ,CAACvG,EAAKhsC,KAAMgsC,EAAKkE,aAActC,GAAQ,GAC/C4E,OAAQ,gCAObrB,GAAaD,EACT,CACL,CACEsB,OAAQ,sBACRD,OAAQ,MAKVtB,EAAQW,4BACVZ,EAAW13B,KAAK,CACdk5B,OAAQ,6BACRD,OAAQ,CACNtB,EAAQW,2BAA2B5xC,KACnCixC,EAAQW,2BAA2BP,OACnC,GACe,QAJTR,EAINzxB,EAAKqzB,cAAU,IAAA5B,GAAAA,KAKjBI,EAAQY,gCACVb,EAAW13B,KAAK,CACdk5B,OAAQ,iCACRD,OAAQ,CAACtB,EAAQY,+BAA+B7xC,KAAMixC,EAAQY,+BAA+BR,UAI7FJ,EAAQoB,sBACVrB,EAAW13B,KAAK,CACdk5B,OAAQ,uBACRD,OAAQ,CACNtB,EAAQoB,qBAAqBryC,KAC7BixC,EAAQoB,qBAAqBzE,OAC7BqD,EAAQoB,qBAAqBC,QAK/BrB,EAAQiB,kBACVlB,EAAW13B,KAAK,CACdk5B,OAAQ,mBACRD,OAAQ,CAACtB,EAAQiB,iBAAiBlyC,KAAMixC,EAAQiB,iBAAiBzO,SAIjEwN,EAAQK,gCACVN,EAAW13B,KAAK,CACdk5B,OAAQ,iCACRD,OAAQ,CAACtB,EAAQK,+BAA+BtxC,KAAMixC,EAAQK,+BAA+BD,UAI1FL,GCpUM,SAAS0B,GAAWrd,GACjCx1B,GAAKywB,KAAO+E,EAAQx1B,KAAK,UAAUywB,KACnC+E,EAAQx1B,KAAK,IAAKA,IAClBw1B,EAAQpQ,UAAU,WAAYyoB,IAC9BrY,EAAQpQ,UAAU,SAAUioB,WAG9BwF,GAAWC,aAAeA,GAC1BD,GAAW1B,WAAa2B,SCbxB,MAAMC,GAAiB,CACrBC,kBAAmB,CACjBC,gBAAiB,EACjBC,iBAAkB,EAClBC,aAiBJ,SAAsBtqB,EAAOwU,GAC3B,MAAM+V,EAAgBvqB,EAAM0oB,UAAU1hB,QAAQvjB,GAAiB,UAAXA,EAAExP,OACtD,IAAIu2C,EAAY,GACZD,EAAcxnC,QAChBwnC,EAAcv+B,SAASvI,IACrB+mC,EAAYA,EAAU3/B,OACpBpH,EAAEuc,MAAMklB,SAASp4B,KAAKjF,IAAO,CAC3BV,IAAK1D,EAAE0O,GACP7K,MAAOO,UAMf,OAAO2iC,EAAU3/B,OAAO2pB,IA9BtBiW,aAgDJ,SAAsB9rB,EAAe6V,GACnC,MAAMhJ,EAAOh5B,KACb,IAAI8xC,EACA1jB,EACJ,MAAM8pB,EAAe,GACrB,IAAIC,EAAc,EAClB,MAAMC,EAAa,GAqBnB,OAnBApW,EAAMxoB,SAAS8Y,IACTA,EAAKxd,QAAUkkB,EAAK4e,gBAAkBtlB,EAAKxd,QAAUkkB,EAAK6e,kBAG9DzpB,EA3BJ,SAAmBjC,EAAemG,GAChC,MAAM+lB,EAAa/lB,EAAK3d,IAAIqB,QAAQ,cAAgB,aAAazF,OAC3D+nC,EAAchmB,EAAK3d,IAAI2D,OAAO,EAAG+/B,GACjCE,EAAYjmB,EAAK3d,IAAI2D,OAAO+/B,EAAa,GAC/C,OAAOlsB,EAAc4D,QAAQuoB,GAAalqB,MAAMmqB,GAuBtCjS,CAAUna,EAAemG,GAEjCwf,EAAO1jB,GAASA,EAAMkT,MAEjBwQ,EAAK0G,SAMRN,EAAa95B,KAAK0zB,GAClBqG,KANAC,EAAWh6B,KAAK,CACdzJ,IAAK2d,EAAK3d,IACVG,MAAOwd,EAAKxd,YAQX,CAAEktB,MAAOoW,EAAYK,eAAgBN,EAAc,GAAKA,IAAgBnW,EAAMzxB,OAAQ2nC,aAAAA,MCxE/F,MAAMQ,GAAkB,CACtB/zC,KAAM,CAAC,UACPqsB,SAAU,CAAC,UACX2nB,uBAAuB,EACvBz5C,MAAO,CACL05C,OAAQ,CACNjrB,YAAa,EACbtM,OAAQ,QAEVw3B,SAAU,CACR3nC,QAAS,MAkBf,SAAS4nC,GAAW73B,GAClB,IAAKA,IAAYA,EAAQkL,gBAAkBlL,EAAQqZ,cACjD,MAAMtb,MAAM,qCAEd,MAAMmN,EAAgBlL,EAAQkL,cACxBmO,EAAgBrZ,EAAQqZ,cACxBS,EAAY9Z,EAAQ8Z,WAAa,CAAC,IAClCge,EAAc93B,EAAQ83B,YACtB51B,EAAQlC,EAAQkC,MAEtB,IAAI61B,EAAoB,GACxB,MAAMC,EAA6B,CAAEC,oBAAqB,IAC1D,IAAIC,GAAK,EACT,MAAMzsB,ECzCR,SAA0BP,EAAemO,EAAe8e,GACtD,SAASx6B,KA8BT,OAHAA,EAAG8e,OAzBH,SAAgB2b,EAAOC,EAAS9rB,GACzB8M,EAAc0b,YACjB1b,EAAcif,MAAMH,GAEHI,GAAS/B,aAAajqB,GAC9BhU,SAAS5H,IAClB0oB,EAAcmf,OAAO7nC,OAoBzBgN,EAAG86B,aAhBH,SAAsB1X,EAAOxU,EAAOmrB,GAClC,MAAMgB,EAAejC,GAAeC,kBAAkBM,aAAa9rB,EAAe6V,GAC5E4X,EAAOD,EAAa3X,MAU1B,OANK1H,EAAc0b,YAAe2D,EAAalB,kBAAmBE,GAAyBiB,EAAKrpC,OAAS,KACvG+pB,EAAcif,MAAMH,GACpB5rB,EAAMgW,QACNhW,EAAMxE,KAAK,SAAU,GAAI,KAGpB4wB,GAMFh7B,EDUSi7B,CAAQ1tB,EAAemO,EAAeye,GAGhDn6B,EAAK,GAEX,IAAIk7B,GAAY,EAChB,SAASC,EAAY30C,GA9BT,KA+BNA,EAAE40C,SAAqB50C,EAAE60C,WAAaH,IACxCA,EAAY10C,EAAE60C,SACd92B,EAAM+2B,UAIV,SAASC,EAAyBC,GAChC,MAAMzlC,EAAMylC,EAAMJ,QAxCP,KAyCPrlC,EACF2lB,EAAc+f,SAzCN,KA0CC1lC,GACT2lB,EAAcggB,UAsKlB,SAASC,IACPvB,EAAkBx/B,SAASqW,IACzBA,EAAQ2qB,UAAU9c,OAAS,SAAU2b,EAAOC,GAGrCzpB,EAAQ4qB,OACX/tB,EAAQgR,OAAO2b,EAAOC,EAASzpB,EAAQrC,QAG3CqC,EAAQrC,MAAM2rB,GAAG,SAAUtpB,EAAQ2qB,UAAU9c,QAC7C7N,EAAQrC,MAAM2rB,GAAG,QAAStpB,EAAQ2qB,UAAUhX,UAIhD,SAASkX,IACP1B,EAAkBx/B,SAASqW,IACzBA,EAAQrC,MAAMmtB,eAAe,SAAU9qB,EAAQ2qB,UAAU9c,QACzD7N,EAAQrC,MAAMmtB,eAAe,QAAS9qB,EAAQ2qB,UAAUhX,UAuF5D,OA/NAlJ,EAAc6e,GAAG,WAAW,KAC1BH,EAAkBx/B,SAASqW,IACzBA,EAAQrC,MAAMqL,QAEdhJ,EAAQ+qB,oBAAoBphC,SAASuX,IACnC,MAAMgP,EAAW5T,EAActtB,UAAUkyB,EAAKpR,IAC1CogB,GACFA,EAAS/W,KAAK+H,EAAK8H,gBAqB3Bja,EAAGi8B,MAAQ,SAAU55B,GACnBrC,EAAGk8B,WAEH,MAAMllB,EAAS51B,KAAK+6C,WAAW95B,GAM/B,OAJIk4B,GACFoB,IAGK3kB,GAEThX,EAAGm8B,WAAa,SAAU95B,GACxB,MAAMiD,EAAO3F,GAAO,EAAM,GAAIm6B,GAAiBz3B,GAEzC+5B,EAAmB,CACvB7B,GAAI,MACJ5nB,OAAOnsB,GACEA,EAAE61C,SAAWh6B,EAAQi6B,eAAiB,MAAQ,SAEvDlqB,SAAU9M,EAAK8M,SACfrsB,KAAMuf,EAAKvf,KACXw2C,kBAAmB,QAGfC,EAAoB,CACxBvrB,QAAS3L,EAAK8M,SAAS,GACvBrsB,KAAMuf,EAAKvf,KACXzF,MAAOglB,EAAKhlB,OAGR2wB,EAgMV,SAAuB5O,EAASkL,GAC9B,MAAO,CACLqB,MAAOrB,EAAcqB,MAAMvM,EAAQ+P,SAAS,IAC5CwpB,UAAW,GACXI,oBAAqB,GACrBj7B,GAAIsB,EAAQ+P,SAAS,IArMLqqB,CAAcn3B,EAAMiI,GAqCpC,OAnCA0D,EAAQ2qB,UAAUN,OAAS,SAAUlY,GACnC,IAAKmX,EACH,MAAO,GAET,MAAMmC,EA3FV,WACE,MAAMpD,EAAe,GACrB,IAAIqD,EAAYxgB,EAAUzgB,KAAKkhC,GAC7BrvB,EACG4D,QAAQyrB,GACRttB,SACAsG,QAAQpG,GAA2B,cAAjBA,EAAM3sB,WAI7B85C,EAAY,GAAGljC,OAAO0G,MAAM,GAAIw8B,GAEhC,IAAK,IAAIxpC,EAAI,EAAGA,EAAIwpC,EAAUhrC,OAAQwB,IAChCwpC,EAAUxpC,GAAGuvB,MAAMkX,SACrBN,EAAa95B,KAAKm9B,EAAUxpC,GAAGuvB,OAGnC,MAAO,CACLpT,OAAQgqB,EACRuD,mBAAoBvD,EAAa3nC,QAAU2nC,EAAa3nC,SAAWgrC,EAAUhrC,QAwExDmrC,GACrB,OAAIx3B,EAAKy0B,uBAA0C,IAAjB3W,EAAMzxB,QAAgB+qC,EAAaG,mBAE5D,GAEF/uB,EAAQgtB,aAAa1X,EAAOnS,EAAQrC,MAAOtJ,EAAKy0B,wBAIzD9oB,EAAQrC,MAAMmuB,UAAU,gBAAiB9rB,EAAQ2qB,UAAUN,QAC3DrqB,EAAQrC,MAAMmuB,UAAU,aAAc9rB,EAAQ2qB,UAAUN,QACxDrqB,EAAQrC,MAAMmuB,UAAU,gBAAiB9rB,EAAQ2qB,UAAUN,QAC3DrqB,EAAQrC,MAAMmuB,UAAU,aAAc9rB,EAAQ2qB,UAAUN,QAExDrqB,EAAQ2qB,UAAUhX,MAAQ,WACpBwV,EAAkBzoC,OAAS,GAC7ByoC,EAAkBx/B,SAAS7F,IACrBA,IAAMkc,GACRlc,EAAE6Z,MAAMsC,UAWhBkpB,EAAkB56B,KAAKyR,GAEhB,CAAEpC,QAASutB,EAAkBttB,QAAS0tB,IAE/Cx8B,EAAGg9B,WAAa,WACdh9B,EAAGk8B,YAELl8B,EAAGi9B,UAAY,WACT1C,GACFoB,KAIJ37B,EAAGk8B,SAAW,WACR3B,GACFuB,IAEF1B,EAAkBx/B,SAASqW,IACzBA,EAAQrC,MAAMsuB,kBAAkB,gBAAiBjsB,EAAQ2qB,UAAUN,QACnErqB,EAAQrC,MAAMsuB,kBAAkB,aAAcjsB,EAAQ2qB,UAAUN,QAChErqB,EAAQrC,MAAMsuB,kBAAkB,gBAAiBjsB,EAAQ2qB,UAAUN,QACnErqB,EAAQrC,MAAMsuB,kBAAkB,aAAcjsB,EAAQ2qB,UAAUN,WAElElB,EAAoB,IAwBtBp6B,EAAGm9B,iBAAmB,SAAUp8B,GAC9Bq5B,EAAkBx/B,SAASqW,IACrBA,EAAQlQ,KAAOA,IACjBkQ,EAAQ4qB,OAAQ,OAKtB77B,EAAGo9B,kBAAoB,SAAUr8B,EAAIs8B,GACnCjD,EAAkBx/B,SAASqW,IACrBA,EAAQlQ,KAAOA,IACjBkQ,EAAQ4qB,OAAQ,EACZwB,GACFpsB,EAAQ2qB,UAAU9c,OAAO,GAAI,SAMrC9e,EAAGiH,aAAe,SAAUlG,EAAIoR,GAC9BioB,EAAkBx/B,SAASqW,IACrBA,EAAQlQ,KAAOA,GACjBkQ,EAAQ+qB,oBAAoBx8B,KAAK2S,OAKvCnS,EAAGu6B,GAAK,WACN,GAAIA,EACF,OAEFA,GAAK,EAELoB,IAEA2B,SAASC,iBAAiB,UAAWpC,GACrCmC,SAASC,iBAAiB,QAASpC,GAEnC,MAAMqC,EAAgB,KACpBpD,EAAkBx/B,SAASqW,IACzBA,EAAQrC,MAAMsC,SAEhBosB,SAASG,oBAAoB,QAASlC,GAClCh3B,EAAMy1B,UACRz1B,EAAM+2B,UAGV5f,EAAc6e,GAAG,cAAeiD,GAChCnD,EAA2BqD,kBAAoB,KAC7ChiB,EAAcqgB,eAAe,cAAeyB,IAG9C,MAAMG,EAAc,KAClBL,SAASC,iBAAiB,QAAShC,IAErC7f,EAAc6e,GAAG,YAAaoD,GAC9BtD,EAA2BuD,gBAAkB,KAC3CliB,EAAcqgB,eAAe,YAAa4B,KAG9C39B,EAAG69B,KAAO,IAAMtD,EAChBv6B,EAAGkf,IAAM,WACFqb,IAGLA,GAAK,EACLuB,IAEAwB,SAASG,oBAAoB,UAAWtC,GACxCmC,SAASG,oBAAoB,QAAStC,GACtCmC,SAASG,oBAAoB,QAASlC,GAEtClB,EAA2BuD,kBAC3BvD,EAA2BqD,sBAG7B19B,EAAG89B,WAAa,WACd,OAAOv5B,EAAMy1B,YA5NN33B,EAAQ+c,iBAAmB/c,EAAQ+c,oBA8N5Cpf,EAAG+9B,gBAAkB,WACnB,OAtQF,WACE,IAAIpB,EAAYxgB,EAAUzgB,KAAKkhC,GAC7BrvB,EACG4D,QAAQyrB,GACRttB,SACAsG,QAAQpG,GAA2B,cAAjBA,EAAM3sB,WAM7B,OAFA85C,EAAY,GAAGljC,OAAO0G,MAAM,GAAIw8B,GAEzBA,EAAUhrC,QAAUgrC,EAAUxkB,OAAO3I,GAAUA,EAAMkT,MAAMkX,UA2P3DiD,IAGF78B,EAGT,MAAMg+B,GAEJH,OACE,OAAO,EAITtD,KACEhd,QAAQ0gB,KAAK,6CAIf/e,QAGF,IAAegf,GAAA,CACbp3C,OAAOub,GACAA,EAAQqZ,cAGNwe,GAAW73B,GAFT,IAAI27B,IEhWjB,SAASG,GAAe5wB,EAAe6wB,EAAcr4C,EAAMkrB,EAASotB,GAClE,IAAIC,GAAU,EAEdrtB,EAAUA,GAAW,UACrBlrB,EAAOA,GAAQ,CAAC,QAEhB,MAAM6oB,EAAQrB,EAAcqB,MAAMqC,GAE5BjR,EAAK,GAOX,SAASu+B,IACP,GAAID,EAAS,CACK/wB,EAActtB,UAAUo+C,GAChCj0B,KAAK,QAEfk0B,GAAU,EAsDZ,OA/DAt+B,EAAGw+B,OAAS,WACV,OAAOF,GAmBTt+B,EAAGu+B,aAAeA,EAyClBv+B,EAAG8e,OAlCH,WACE,MAAMwY,EAAU1oB,EAAM0oB,UAGhB10C,EAAS2qB,EAAckxB,kBAAkBxtB,EAAS,MAAOlrB,EAAMq4C,GAEjE9G,EAAQ3lC,QAAU,GACpB2sC,GAAU,EAtBd,SAAqB17C,GACnB07C,GAAU,EACV,MAEMv4C,EAAO,CAAEs+B,MAAOzhC,GAFN2qB,EAActtB,UAAUo+C,GAGhCj0B,KAAK,OAFH,GAEcrkB,GAkBtB24C,CAAY97C,IAEZ27C,KAyBJv+B,EAAG2+B,kBArBH,SAA2Bvb,GAGzB,GAAIr9B,EAAK4L,OAAS,EAAG,CACnB,MAAMitC,EAAQ,GACR1+B,EAAM,GAUZ,OATAkjB,EAAMxoB,SAAS8Y,IACRkrB,EAAMlrB,EAAK3d,OACd6oC,EAAMlrB,EAAK3d,KAAO,IAEf6oC,EAAMlrB,EAAK3d,KAAK2d,EAAKxd,SACxB0oC,EAAMlrB,EAAK3d,KAAK2d,EAAKxd,QAAS,EAC9BgK,EAAIV,KAAKkU,OAGNxT,EAET,OAAOkjB,GAKFpjB,EAGT,IAAe6+B,GAAA,CACb/3C,OAAM,IAAIooC,IACDiP,MAAkBjP,ICrFd4P,GAAA,CACbC,mBAGF,SAA4BvvB,EAAOwvB,GACjC,GAAIxvB,EAAMkT,MAAMuc,kBACd,OAAOzvB,EAAMrE,WAANqE,CAAkBwvB,EAAe9oC,MAAM2Z,OAEhD,MAAM3Z,OAAsCwN,IAA9Bs7B,EAAe9oC,MAAMu+B,KAAqBuK,EAAe9oC,MAAMu+B,KAAOuK,EAAe9oC,MAAM+9B,OACzG,OAAOzkB,EAAMrE,WAANqE,CAAkBtZ,KCSpB,MAGMgpC,GACVjuB,GACD,EAAGnwB,EAAAA,EAAGiF,KAAAA,EAAMzF,MAAAA,MACV,MAAMkzB,EAUV,SAAwB2rB,EAAaC,GACnC,MAAMjuB,EAAUguB,EAAY5xB,cAAc4D,QAAQguB,EAAYvC,UAGxDppB,EAAU,GAEV6rB,EAAiBD,EAAaztC,OAxCZ,EAyClB2tC,EAAW3sC,KAAKvN,IAzCE,EAyCqBg6C,EAAaztC,QAC1D,IAAK,IAAIjK,EAAI,EAAGA,EAAI43C,EAAU53C,IAAK,CACjC,MAAMssB,EAAQorB,EAAa13C,GACrB63C,EAAe,CACnBC,KAAM,IAGR,GAAIL,EAAYM,UAAW,CACzB,MAAMzwB,EAAS,GACT0wB,EAAWP,EAAYM,UAC7B,IAAIE,GAAc,EAClB,IAAK,IAAIxsC,EAAI,EAAGA,EAAIusC,EAAS/tC,OAAQwB,IAAK,CACxC,MAAMysC,EAAc5rB,EAAMjuB,KAAK25C,EAASvsC,IAAI+C,MAC5C,IApDY,IAoDR0pC,EAAY9U,UApDJ,IAoD+B8U,EAAY/U,YAA6B,CAElF8U,GAAc,EACd,MAEF3wB,EAAOxP,KAAKwU,EAAMjuB,KAAK25C,EAASvsC,IAAI+C,MAAM2Z,OAG5C,GAAI8vB,EACF,OAGFJ,EAAaM,OAASV,EAAYW,eAAe9wB,GACjDuwB,EAAaC,KAAOL,EAAYY,YAC7BrkC,KAAKskC,IACJ,MAAMC,EAAUjsB,EAAMjuB,KACtB,OAAOo5C,EAAYe,YAAY/uB,EAAQ3B,MAAMywB,EAAQD,GAAYx4B,OAAOgI,OAAQywB,EAAQD,GAAaC,MAEtGrqB,QAAQyL,KAAUA,IAErB,MAAM8e,EAAcC,GAAkBjB,EAAanrB,GAC/CmsB,GACFZ,EAAaC,KAAKa,QAAQF,GAE5B3sB,EAAQhU,KAAK+/B,IAGbF,EAAiB,IACnB7rB,EAAQ6rB,eAAiBA,GAI3B,OADA7rB,EAAQ8sB,SAAW9sB,EAAQ,GAAKA,EAAQ7hB,OAAS6hB,EAAQ,GAAGgsB,KAAK7tC,OAAS,EACnE6hB,EA9DW+sB,CAAetvB,EAASlrB,GAClCy6C,EAAiB,CACrB1/C,EAAAA,EACAR,MAAAA,EACAW,IAA2B,QAAtBgwB,EAAQ9P,UACblb,WAAYgrB,EAAQhrB,YAEtB,OAAOgrB,EAAQtwB,SAAS6/C,EAAgBhtB,IA4E5C,SAAS4sB,GAAkBjB,EAAanrB,GAAO,IAAAysB,EAAAC,EAAAC,EAC7C,MAAMC,EAAY5sB,EAAMjuB,KAAKhE,MACvB8+C,EAAgB,UAAA1B,EAAYtgB,oBAAZ,IAAA4hB,GAAH,QAAGC,EAAAD,EAA0B13B,mBAA7B,IAAA23B,OAAG,EAAAA,EAAtBnhC,KAAAkhC,GAEA,IAAKI,GAAwC,UAAvBA,EAAch+C,OAAqB+9C,IAAcC,EAAcC,UACnF,OAGF,MAAMC,EAAM,GACZ5B,EAAYp5C,KAAK6U,SAASomC,IACxB,MAAMC,EAAYjtB,EAAMjuB,KAAKi7C,GACzBC,GACFF,EAAIvhC,KAAKyhC,EAAU/qC,UAGvB,MAAMgrC,EAjCR,SAAwBpN,GACtB,IAAIlvC,GAAS,EACb,IAAK,IAAIuO,EAAI,EAAGA,EAAI2gC,EAAOniC,OAAQwB,KA1Ff,IA2Fd2gC,EAAO3gC,KACTvO,EAAQuO,GAGZ,OAAOvO,EA0Bau8C,CAAeJ,IAE7B96C,WAAEA,GAAek5C,EACjBn+C,EAAQ6/C,EAAc7/C,MAG5B,MAAO,CAAEe,MAFE,QAAGiyB,EAAAA,EAAMlxB,aAAT,IAAA69C,OAAA,EAAGA,EAAar9B,KAEXtiB,MAAAA,EAAOkV,OADQ,IAAjBgrC,EAAqBj7C,EAAWI,IAAI,qCAAuCu6C,EAAU5/C,OC3HrG,SAASogD,KACP,IAAK9D,SAAS+D,cAHoB,sBAGuB,CACvD,MAAMna,EAAYoW,SAASgE,cAAc,OACzCpa,EAAUnmB,GANe,oBAOzBmmB,EAAU5mC,MAAMkB,SAAW,SAC3B0lC,EAAU5mC,MAAMg1B,SAAW,QAC3B4R,EAAU5mC,MAAMC,cAAgB,OAChC2mC,EAAU5mC,MAAMkxB,KAAO,MACvB0V,EAAU5mC,MAAMwzB,IAAM,MACtBoT,EAAU5mC,MAAM4B,MAAQ,OACxBglC,EAAU5mC,MAAM6B,OAAS,OACzB+kC,EAAU5mC,MAAME,OAAS,KACzB88C,SAASiE,KAAKC,YAAYta,IAcf,SAASua,IAAQ1rC,IAAEA,EAAM,UAAR9U,IAAmBA,EAAnBsiB,WAAwBA,EAAxBqS,OAAoCA,EAApCpC,QAA4CA,IAC1E,MAAO,CACLxuB,MAAM,EACN+Q,IAAAA,EACAlT,KAAM,UACN3B,OAAQ,CACNsjB,aAAc,GAEhBk9B,cACEN,MAEFO,eACEP,MAEFQ,aAxBJ,WACE,MAAMC,EAAMvE,SAAS+D,cAnBa,sBAoB9BQ,GAAOA,EAAIC,eAAiBD,EAAIE,kBAAoB,GACtDF,EAAIC,cAAcE,YAAYH,GAsB5BI,IAEFlhD,SAAU,CACRmhD,SAAU,IAAM5E,SAAS+D,cA9CK,sBA+C9B7tB,QAAAA,EACAoC,OAAAA,EACAjG,QAAUsB,GAAYA,EAAQyG,KAC9BvW,UAAWlgB,EAAM,MAAQ,MACzBkhD,UAAW,UAEb7hD,MAAO,CACL8hD,MAAO,CACLrgD,MAAO,WAETyxB,QAAS,CACP5xB,QAAS,QACTygD,iBAAkB,MAClBC,WAAY,wBACZhwC,QAAS,IACTrQ,SAAU,OACVshB,WAAAA,EACAg/B,cAAe,QAEjB5gB,KAAM,CACJ6gB,YAAa,QACbC,aAAc,aACdC,YAAa,aACbC,gBAAiB,aACjBC,QAAS,UCtEjB,MAAQ1gC,oBAAqB2gC,IAAiB9gC,GCI9C,MAAM+3B,GAAkB,CACtBuE,WAAY,UACZt4C,KAAM,CAAC,IACPqsB,SAAU,CAAC,WACX0tB,eAAehM,GACNA,EAAOl9B,KAAK,MAErBspC,YAAW,CAAC1wB,EAAOwvB,KACV,CACL9oC,MAAO4oC,GAAWC,mBAAmBvvB,EAAOwvB,GAC5Ch+C,MAAOwuB,EAAM9sB,UAGjBye,UAAW,MACXxgB,SDhBa,SAAgBI,EAAUyyB,GACvC,MAAM1yB,EAAEA,EAAFR,MAAKA,EAAL2F,WAAYA,EAAZhF,IAAwBA,GAAQF,EAChCi2B,EAAS,GACT8rB,EAAiB7hD,EAAM,QAAU,OAyCvC,GAxCAuyB,EAAQ5Y,SAAS8Y,IACf,GAAIA,EAAKmsB,OAAQ,CACf,MAAMkD,EAAc,IACfziD,EAAMqhC,KACTr/B,UAAWwgD,EACXE,WAAY,OACZ7hC,UAAW0hC,GAAanvB,EAAKmsB,SAE/B7oB,EAAOxX,KACL1e,EACE,KAAA,KAAAA,EAAA,KAAA,CAAIR,MAAOyiD,EAAaE,QAAS,GAC9BvvB,EAAKmsB,UAKdnsB,EAAK8rB,KAAK5kC,SAASymB,IACjB,IAAI6hB,EAAe7hB,EAAInrB,MACvB,GAAImrB,EAAIt/B,MAAO,CACb,MAAMohD,EAAc,CAClBvhD,QAAS,eACTM,MAAO,GACPC,OAAQ,GACRihD,mBAAoB/hB,EAAIt/B,MACxB8xB,OAAQ,SAEJwvB,EAASviD,EAAA,MAAA,CAAKR,MAAO6iD,IAC3BD,EAAejiD,EAAM,CAACogC,EAAInrB,MAAOmtC,GAAU,CAACA,EAAQhiB,EAAInrB,OAE1D,MAAMlV,EAAQC,EAAM,CAAC,IAAKogC,EAAIrgC,OAAS,CAACqgC,EAAIrgC,MAAO,KAC7CsiD,EAAa,IAAKhjD,EAAMqhC,KAAMr/B,UAAWwgD,EAAgB3hC,UAAW0hC,GAAaxhB,EAAIrgC,QACrFuiD,EAAa,IAAKjjD,EAAMqhC,KAAMr/B,UAAWrB,EAAM,OAAS,QAASkgB,UAAW0hC,GAAaxhB,EAAInrB,QACnG8gB,EAAOxX,KACL1e,EACE,KAAA,KAAAA,EAAA,KAAA,CAAIR,MAAOgjD,GAAatiD,GACxBF,EAAA,KAAA,CAAIR,MAAOijD,GAAaL,WAK5B1vB,EAAQ6rB,eAAgB,CAC1B,MAAMmE,EAAWv9C,EAAWI,IAAI,4BAA6BmtB,EAAQ6rB,gBAC/DoE,EAAY,IAAKnjD,EAAMqhC,KAAMr/B,UAAWwgD,EAAgB3hC,UAAW0hC,GAAaW,IACtFxsB,EAAOxX,KACL1e,EACE,KAAA,KAAAA,EAAA,KAAA,CAAIR,MAAOmjD,EAAWR,QAAS,GAC5BO,KAKT,OAAOxsB,IC7BT,SAAS0sB,GAASn2B,EAAeiO,EAAUmoB,GACzC,IAAKp2B,EACH,MAAMnN,MAAM,mCAGd,IAAIwjC,EAAkB,GAClBrJ,GAAK,EAGT,MAAMv6B,EAAK,GA8DX,SAAS6jC,EAAgB5yB,GACvBA,EAAQ2qB,UAAU9c,OAAS,SAAU2b,EAAOC,GAC1CzpB,EAAQ0B,OAAOmM,OAAO2b,EAAOC,EAASzpB,IAExCA,EAAQ2qB,UAAU1qB,IAAM,WACtBD,EAAQ0B,OAAO4rB,gBAGjBttB,EAAQrC,MAAM2rB,GAAGtpB,EAAQ6yB,eAAiB,SAAW,aAAc7yB,EAAQ2qB,UAAU9c,QACrF7N,EAAQrC,MAAM2rB,GAAG,MAAOtpB,EAAQ2qB,UAAU1qB,KAE1CD,EAAQrC,MAAMmuB,UAAU,aAAc9rB,EAAQ0B,OAAOgsB,mBAGvD,SAAS7C,IACPt4C,OAAOiY,KAAKmoC,GAAiBhpC,SAAS7E,IACpCguC,EAAaH,EAAgB7tC,OAIjC,SAASguC,EAAa9yB,GACpBA,EAAQrC,MAAMmtB,eAAe9qB,EAAQ6yB,eAAiB,SAAW,aAAc7yB,EAAQ2qB,UAAU9c,QACjG7N,EAAQrC,MAAMmtB,eAAe,MAAO9qB,EAAQ2qB,UAAU1qB,KACtDD,EAAQrC,MAAMsuB,kBAAkB,aAAcjsB,EAAQ0B,OAAOgsB,mBAG/D,SAASJ,IACP/6C,OAAOiY,KAAKmoC,GAAiBhpC,SAAS7E,IACpC6tC,EAAgB7tC,GAAK4c,OAAO4rB,kBAIhC,SAASyF,IACPzF,IAEA,IAAK,MAAMvc,KAAQ4hB,EACjBA,EAAgB5hB,GAAMpT,MAAMqL,QAiChC,OA5HAja,EAAGi8B,MAAQ,SAAU55B,GACnB,MAAMiD,EAAO3F,GAAO,EAAM,GAAIm6B,GAAiBz3B,GAE/C,IAAKiD,EAAK84B,aACR,MAAMh+B,MAAM,kDAGVwjC,EAAgBt+B,EAAK8M,SAAS,KAAOmoB,GACvCwJ,EAAaH,EAAgBt+B,EAAK8M,SAAS,KAG7C,MAAMnB,EA0HV,SAAuB5O,EAASkL,GAC9B,MAAO,CACLqB,MAAOrB,EAAcqB,MAAMvM,EAAQ+P,SAAS,IAC5CO,OAAQksB,GAAc/3C,OACpBymB,EACAlL,EAAQ+7B,aACR/7B,EAAQtc,KACRsc,EAAQ+P,SAAS,GACjB/P,EAAQg8B,YAEVzC,UAAW,GACXruB,cAAAA,EACAqvB,SAAUv6B,EAAQu6B,SAClBj8C,SAAU0hB,EAAQ1hB,SAClBoF,KAAMsc,EAAQtc,KACd+5C,eAAgBz9B,EAAQy9B,eACxBI,YAAa79B,EAAQ69B,YACrBrhB,aAAcxc,EAAQwc,aACtBolB,YAAa5hC,EAAQ4hC,YACrBlE,YAAa19B,EAAQ09B,YACrBN,UAAWp9B,EAAQo9B,UACnByE,aAAc7hC,EAAQ6hC,aAEtB/iC,UAAWkB,EAAQ2X,YAAY3X,QAAQlB,UACvCuB,MAAOL,EAAQ2X,YAAYtX,MAC3Bzc,WAAYoc,EAAQ2X,YAAY/zB,WAChC69C,eAAmD,UAAnCzhC,EAAQ2X,YAAYmqB,YApJpB1H,CAAcn3B,EAAMiI,GACpCq2B,EAAgBt+B,EAAK8M,SAAS,IAAMnB,EAEhCspB,GACFsJ,EAAgB5yB,GAGlB,MAAMhxB,EAAYmkD,GAAc,CAC9BruC,IAAKuP,EAAK+4B,WACVp9C,IAA2B,QAAtBgwB,EAAQ9P,UACboC,WAAY0N,EAAQvO,MAAMngB,SAASohD,EAAW,UAAW,cACzD/tB,QHnDuBsuB,EGmDFjzB,EAAQizB,aHnDYthD,GAC7CshD,EAAeA,EAAathD,GAb9B,SAA+BA,GAC7B,MAAMyhD,EAAU,GAQhB,OANAzhD,EAAOgY,SAASoZ,KACkB,IAA5BqwB,EAAQjtC,QAAQ4c,IAAgC,cAAfA,EAAMnxB,MACzCwhD,EAAQ7kC,KAAKwU,MAIVqwB,EAI+BC,CAAsB1hD,IGmDxD4wB,QAAS0rB,GAAcjuB,EAAS3L,EAAKs3B,YHpDdsH,IAAAA,EG0DzB,OAHiB5+B,EAAKD,aAAa0D,cAC1BmJ,WAAW1S,KAAKvf,GAElB,CACL4uB,QAAS,CACP0rB,GAAItpB,EAAQ6yB,eAAiB,OAAS,MACtCnxB,OAAQ,MACRP,SAAU9M,EAAK8M,SACfrsB,KAAMuf,EAAKvf,KACXw2C,kBAAmB,QAErBztB,QAASxJ,EAAK8M,SAAS1W,KAAK3G,IAAO,CAAEkc,QAASlc,MAC9C9U,UAAAA,IAIJ+f,EAAGk8B,SAAW,WACR3B,GACFuB,IAEF8H,EAAkB,IAiDpB5jC,EAAGu+B,aAAeA,EAElBv+B,EAAG69B,KAAO,IAAMtD,EAChBv6B,EAAGu6B,GAAK,WACFA,IAGJA,GAAK,EApDL/2C,OAAOiY,KAAKmoC,GAAiBhpC,SAAS7E,IACpC8tC,EAAgBD,EAAgB7tC,OAuD9BylB,GACFA,EAAS+e,GAAG,aAAcyJ,KAI9BhkC,EAAGkf,IAAM,WACFqb,IAGLA,GAAK,EACLuB,IAEItgB,GACFA,EAAS0D,IAAI,aAAc8kB,GAE7BzF,MAGKv+B,EAGT,IAAeukC,GAAA,CACbz9C,OAAM,CAACymB,EAAeiO,EAAUmoB,IACvBD,GAASn2B,EAAeiO,EAAUmoB,IC9K7C,MAAMa,GAAO,CACXC,aAUF,SAAsBC,GACpB,OCXa,SAAwBpqB,GACrC,IAAIkqB,EAAO,EAEX,IAAKlqB,IAAQA,EAAI3oB,OACf,OAAO6yC,EAGT,IAAK,IAAIrxC,EAAI,EAAGA,EAAImnB,EAAI3oB,OAAQwB,IAG9BqxC,GAAQA,GAAQ,GAAKA,EAFTlqB,EAAI3Z,WAAWxN,GAG3BqxC,GAAQA,EAGV,OAAOA,EDHAG,CAAeC,KAAKC,UAAUH,KAVrCI,WAaF,SAAoBphD,EAAYghD,GACzBhhD,EAAWqhD,eACdrhD,EAAWqhD,aAAe,IAG5BrhD,EAAWqhD,aAAaC,SAAWR,GAAKC,aAAaC,KEpBvD,MAAMO,GAAc,CAClBC,+BASF,SAAwCC,EAAc9oB,EAAW+oB,GAC/D,OAOF,SAA+BD,EAAcC,GAC3C,MAAMC,EAAO,GAEb,IAAKF,EAAarhD,UAChB,OAAO65B,QAAQC,QAAQynB,GAWzB,OARAF,EAAarhD,UAAU8W,SAASyQ,IAC1BA,EAAQi6B,WACVD,EAAK7lC,KASX,SAAuC+lC,EAAWH,GAChD,OAAOA,EAAII,WAAWD,GAAW3oB,MAAMlJ,GAASA,EAAK+xB,gBAAgB7oB,MAAMhN,GAAUA,EAAM81B,SAASC,SAVtFC,CAA8Bv6B,EAAQi6B,WAAYF,IAE5DC,EAAK7lC,KAAKme,QAAQC,cAIfD,QAAQkoB,IAAIR,GAtBZS,CAAsBX,EAAcC,GAAKxoB,MAAMmpB,IAAwB,CAC5EC,WAAYC,GAAgB5pB,GAC5B6pB,qBAAsBC,GAAwB9pB,GAC9C0pB,mBAAAA,QA0BJ,SAASI,GAAwB9pB,GAC/B,OAAOA,EAAU5E,eAAe/b,KAAK0qC,GAAkBA,EAAcC,kBAGvE,SAASJ,GAAgB5pB,GAEvB,OAGF,SAAuBA,GACrB,OAAOuC,GAASvC,EAAW,iBAAkB,IAL1BiqB,CAAcjqB,GACf3gB,KAAKg7B,GAAQA,EAAI6P,YC7CrC,MAAMC,GAAY,GAEZ7mC,GAAS8mC,EAAetW,KAAK,MAAM,GACzC,SAASuW,GAASjwC,GAChB,OAAY,MAALA,IAAcqpB,MAAMF,QAAQnpB,IAAmB,iBAANA,EAElD,MAAMmpB,GAAUE,MAAMF,QAEhB+mB,GAAU,SAAUlwC,GACxB,YAAoB,IAANA,GA8BhB,SAASmwC,GAAkB5mB,EAAKjqB,GAC9B,MA3BoB,mBA2BFiqB,EAAIjqB,IAAiC,OAAxBA,EAAIW,UAAU,EAAG,IAAuC,MAAxBX,EAAIW,UAAU,EAAG,GAYlF,SAASmwC,GAAU9gD,EAAMu0B,GACvB,MACMkT,EAAQlT,EAAI5jB,UAAU,GAAGrB,MADb,KAC8B+D,MAAM,GAAI,GAC1D,IAAI0tC,EAWJ,OATAtZ,EAAM5yB,SAAQ,CAACmsC,EAAM5zC,KACfA,IAAMq6B,EAAM77B,SAGhBm1C,GAAWC,EACXhhD,EAAK+gD,GAAWC,GAAQJ,GAAQ5gD,EAAK+gD,GAAWC,IAAWxxC,OAAO7C,OAAOo0C,GAAgB,GAAL,GAAW/gD,EAAKghD,GACpGhhD,EAAOA,EAAK+gD,GAAWC,OAGlBhhD,EA2BT,SAAS0+B,GAAQrxB,EAAGf,GAClB,GAAIq0C,GAAStzC,IAAMszC,GAASr0C,GAAI,CAC9B,GAAI7O,OAAOiY,KAAKrI,GAAGzB,SAAWnO,OAAOiY,KAAKpJ,GAAGV,OAC3C,OAAO,EAET,IAAK,MAAMoE,KAAOvS,OAAOiY,KAAKrI,GAC5B,IAAKqxB,GAAQrxB,EAAE2C,GAAM1D,EAAE0D,IACrB,OAAO,EAGX,OAAO,EAET,GAAI6pB,GAAQxsB,IAAMwsB,GAAQvtB,GAAI,CAC5B,GAAIe,EAAEzB,SAAWU,EAAEV,OACjB,OAAO,EAET,IAAK,IAAIwB,EAAI,EAAGF,EAAIG,EAAEzB,OAAQwB,EAAIF,EAAGE,IACnC,IAAKsxB,GAAQrxB,EAAED,GAAId,EAAEc,IACnB,OAAO,EAGX,OAAO,EAET,OAAOC,IAAMf,EA+Ffm0C,GAAUQ,SAAW,SAAU1Y,EAAU2Y,EAASC,GAChDA,EAAWA,GAAY,GACvB,IAAIC,EAAU,GA0Cd,OAxCA3jD,OAAOiY,KAAKwrC,GAASrsC,SAAS7E,IAC5B,MAAM2K,EAjMV,SAAuBA,GAIrB,OAHIA,IACFA,EAAMf,GAAO,GAAI,CAAEe,IAAAA,IAAOA,KAErBA,EA6LO0mC,CAAcH,EAAQlxC,IAC5BsxC,EAAS/Y,EAASv4B,GAClBuxC,EAAW,GAAEJ,KAAYnxC,IAE3B0uB,GAAQ/jB,EAAK2mC,IAAWT,GAAkBK,EAASlxC,KAGnD4wC,GAAQU,GAEVF,EAAQ3nC,KAAK,CACX+nC,GAAI,MACJrhD,KAAMohD,EACNpxC,MAAOwK,IAEAgmC,GAAShmC,IAAQgmC,GAASW,GAEnCF,EAAUA,EAAQ1tC,OAAO+sC,GAAUQ,SAASK,EAAQ3mC,EAAK4mC,IAChD1nB,GAAQlf,IAAQkf,GAAQynB,GACjCF,EAAUA,EAAQ1tC,OA3GxB,SAAoB60B,EAAUkZ,EAAMN,GAClC,IAAIC,EAAU,GACd,MAAMM,EAAOnZ,EAASl1B,QACtB,IAAIjG,EACAF,EACAy0C,GAAU,EAEd,SAASC,EAAUv0C,EAAG2N,EAAIwqB,GACxB,GAAIn4B,EAAEm4B,IAAQob,GAAQvzC,EAAEm4B,GAAKqc,OAC3B,OAAO,KAET,GAAIx0C,EAAEm4B,IAAQn4B,EAAEm4B,GAAKqc,MAAMC,MAAQ9mC,EAEjC,OAAOwqB,EAET,IAAK,IAAIp4B,EAAI,EAAGF,EAAIG,EAAEzB,OAAQwB,EAAIF,EAAGE,IACnC,GAAIC,EAAED,IAAMC,EAAED,GAAGy0C,MAAMC,MAAQ9mC,EAC7B,OAAO5N,EAGX,OAAQ,EAGV,GAAIsxB,GAAQ+iB,EAAMC,GAEhB,OAAON,EAGT,GAAgB,OAAZK,EAAK,KAAiBb,GAAQa,EAAK,KAAOb,GAAQa,EAAK,GAAGI,OAO5D,OALAT,EAAQ3nC,KAAK,CACX+nC,GAAI,UACJrhD,KAAMghD,EACNhxC,MAAOsxC,IAEFL,EAGT,IAAKh0C,EAAIs0C,EAAK91C,OAAS,EAAGwB,GAAK,IAAKA,EAClCu0C,EAASC,EAAUH,EAAMC,EAAKt0C,IAAMs0C,EAAKt0C,GAAGy0C,OAASH,EAAKt0C,GAAGy0C,MAAMC,IAAK10C,IACxD,IAAZu0C,GACFP,EAAQ3nC,KAAK,CACX+nC,GAAI,SACJrhD,KAAO,GAAEghD,KAAY/zC,MAEvBs0C,EAAKziB,OAAO7xB,EAAG,IAEfg0C,EAAUA,EAAQ1tC,OAAO+sC,GAAUQ,SAASS,EAAKt0C,GAAIq0C,EAAKE,GAAU,GAAER,KAAY/zC,MAItF,IAAKA,EAAI,EAAGF,EAAIu0C,EAAK71C,OAAQwB,EAAIF,IAAKE,EACpCu0C,EAASC,EAAUF,EAAMD,EAAKr0C,IAAMq0C,EAAKr0C,GAAGy0C,OAASJ,EAAKr0C,GAAGy0C,MAAMC,MACnD,IAAZH,GACFP,EAAQ3nC,KAAK,CACX+nC,GAAI,MACJrhD,KAAO,GAAEghD,KAAY/zC,IACrB+C,MAAOsxC,EAAKr0C,KAEds0C,EAAKziB,OAAO7xB,EAAG,EAAGq0C,EAAKr0C,KACdu0C,IAAWv0C,IACpBg0C,EAAQ3nC,KAAK,CACX+nC,GAAI,OACJrhD,KAAO,GAAEghD,KAAY/zC,IACrBwiC,KAAO,GAAEuR,KAAYQ,MAEvBD,EAAKziB,OAAO7xB,EAAG,EAAGs0C,EAAKziB,OAAO0iB,EAAQ,GAAG,KAG7C,OAAOP,EAsCsBW,CAAWT,EAAQ3mC,EAAK4mC,IAGjDH,EAAQ3nC,KAAK,CACX+nC,GAAI,UACJrhD,KAAO,GAAEghD,KAAYnxC,IACrBG,MAAOwK,QAKbld,OAAOiY,KAAK6yB,GAAU1zB,SAAS7E,IACzB4wC,GAAQM,EAAQlxC,MAAU6wC,GAAkBtY,EAAUv4B,IAExDoxC,EAAQ3nC,KAAK,CACX+nC,GAAI,SACJrhD,KAAO,GAAEghD,KAAYnxC,SAKpBoxC,GASTX,GAAUrmC,MAAQ,SAAUmuB,EAAU6Y,GACpCA,EAAQvsC,SAASmtC,IACf,MAAMhjB,EAAS8hB,GAAUvY,EAAUyZ,EAAM7hD,MACzC,IAAI6P,EAAMgyC,EAAM7hD,KAAKmP,MAAM,KAAK2vB,QAAQ,GAAG,GAC3C,MAAM3S,EAAStc,GAAOR,OAAO7C,OAAOqD,GAAOgvB,EAAOhvB,GAAOgvB,GAAQhvB,IAAQgvB,EACnE4Q,EAAOoS,EAAMpS,KAAOoS,EAAMpS,KAAKtgC,MAAM,KAAK2vB,QAAQ,GAAG,GAAK,KAEhE,GAAiB,QAAb+iB,EAAMR,IAA6B,YAAbQ,EAAMR,GAC9B,GAAI3nB,GAAQmF,GAEE,MAARhvB,IACFA,EAAMgvB,EAAOpzB,QAEfozB,EAAOC,QAAQjvB,EAAkB,QAAbgyC,EAAMR,GAAe,EAAI,EAAGQ,EAAM7xC,YACjD,GAAI0pB,GAAQvN,IAAWuN,GAAQmoB,EAAM7xC,OAAQ,CAClD,MAAM8xC,EAAYD,EAAM7xC,MAAMkD,QAE9BiZ,EAAO1gB,OAAS,EAChB0gB,EAAO7S,KAAKW,MAAMkS,EAAQ21B,QACjBtB,GAASr0B,IAAWq0B,GAASqB,EAAM7xC,QA/M/B8pB,EAiND3N,EAhNlB7uB,OAAOiY,KAAKukB,GAAKplB,SAAS7E,IACTvS,OAAOm8B,yBAAyBK,EAAKjqB,GAEzCH,eAAiBgxC,GAAkB5mB,EAAKjqB,WAC1CiqB,EAAIjqB,MA6MT4J,GAAO0S,EAAQ01B,EAAM7xC,QAGrB6uB,EAAOhvB,GAAOgyC,EAAM7xC,WAEjB,GAAiB,SAAb6xC,EAAMR,GAAe,CAC9B,MAAMU,EAAYpB,GAAUvY,EAAUyZ,EAAMpS,MACxC/V,GAAQmF,GACVA,EAAOC,QAAQjvB,EAAK,EAAGkyC,EAAUjjB,QAAQ2Q,EAAM,GAAG,KAElD5Q,EAAOhvB,GAAOkyC,EAAUtS,UACjBsS,EAAUtS,QAEG,WAAboS,EAAMR,KACX3nB,GAAQmF,GACVA,EAAOC,QAAQjvB,EAAK,UAEbgvB,EAAOhvB,IAnOtB,IAAqBiqB,MA+OrBwmB,GAAUhmB,MAAQ,SAAUR,GAC1B,OAAOrgB,GAAO,GAAIqgB,IAWpBwmB,GAAU0B,YAAc,SAAUX,EAAI7mC,EAAKxa,GACzC,MAAM6hD,EAAQ,CACZR,GAAIA,EAAG91C,cACPvL,KAAAA,GAOF,MALiB,SAAb6hD,EAAMR,GACRQ,EAAMpS,KAAOj1B,OACW,IAARA,IAChBqnC,EAAM7xC,MAAQwK,GAETqnC,GAgBTvB,GAAU2B,aAAe,SAAU7Z,EAAU2Y,GACtCzjD,OAAOiY,KAAK6yB,GAAU38B,OAI3B60C,GAAUrmC,MAAMmuB,EAAUkY,GAAUQ,SAAS1Y,EAAU2Y,IAHrDtnC,GAAO2uB,EAAU2Y,ICnWrB,MAAMmB,GACJxhD,YAAYyhD,GACVjnD,KAAKknD,OAASD,EAGhBE,SAASF,GACPjnD,KAAKknD,OAASD,EAGhBG,mBAAmBC,EAAyBC,GAC1C,IAAKtnD,KAAKknD,OACR,OAAO3qB,QAAQC,SAAQ,GAGzB,IAAIupB,EAAUX,GAAUQ,SAASyB,EAAyBC,GAG1D,OAFA/oC,GAAO,EAAM8oC,EAAyBC,GAElCvB,GAAWA,EAAQx1C,QACrBw1C,EAAUA,EAAQzrC,KAAKnF,IAAO,CAC5BoyC,IAAKpyC,EAAEgxC,GACPtT,OAAQ2Q,KAAKC,UAAUtuC,EAAEL,OACzB0yC,MAAOryC,EAAErQ,SAGJ9E,KAAKknD,OAAOO,aAAa1B,GAAS,GAAMvqB,MAAK,KAAM,KAErDe,QAAQC,SAAQ,GAGHkrB,yBACpB,IAAK1nD,KAAKknD,OACR,OAGF,MAAMS,EAAoB3nD,KAAKknD,OAAO7C,gBAChCuD,EAAmB5nD,KAAKknD,OAAOW,yBAE/BvlD,QAAmBqlD,EACnBG,QAAkBF,EAExB,GAAItlD,EAAWylD,WACb,OAEF,MAAMhC,EAAUX,GAAUQ,SAAStjD,EAAYwlD,GAC/C1C,GAAUrmC,MAAMzc,EAAYyjD,GAE5B,MAAM/sB,EAAOh5B,KACbg5B,EAAKkuB,OAAOc,cAAc1lD,GAAYk5B,MAAK,KACzCxC,EAAKkuB,OAAOe,uBCnDlB,IAAeC,GAAA,CACbC,wBAGF,SAAiCroD,GAC/B,GAAIA,EAAOsoD,iBAAmBtoD,EAAOioD,WACnC,OAAO,EAET,GAAIjoD,EAAOo9B,YACT,OAAOp9B,EAAOo9B,YAAYQ,OAE5B,OAAsD,IAA/C59B,EAAOuoD,MAAMC,WAAWtyC,QAAQ,YCRzC,IAAeuyC,GAAA,CACbC,sBAOF,SAA+BvB,EAAOnnD,EAAQwC,EAAYmmD,GAGxD,GAAIP,GAAsBC,wBAAwBroD,GAChD,OAAOmnD,EAAMe,cAAc1lD,GAI7B,OAD4B,IAAI0kD,GAAoBC,GACzBG,mBAAmBqB,EAAgBnmD,KCnBhE,IAAeomD,GAAA,CACbC,SAOF,SAAkBhpD,GAChB,KACGA,GACAA,EAASG,QACTH,EAAS2C,YACT3C,EAASsnD,OACTtnD,EAAS2jD,UACT3jD,EAASipD,2BAEV,MAAM5pC,MAAM,uCCXhB,SAAS6pC,KACP7oD,KAAK8oD,uBAAwB,EAS/B,SAASC,GAAkBppD,GACzB+oD,GAAeC,SAAShpD,GAExB,MAAM2C,EAAa3C,EAAS2C,WACtB8gD,EAAO4F,GAAK3F,aAAa1jD,EAAS2jD,UAExC,SAAKhhD,EAAWqhD,cAAgBrhD,EAAWqhD,aAAaC,WAAaR,GAZvEyF,GAAkBtjD,UAAUwjD,kBAAoBA,GAChDF,GAAkBtjD,UAAU0jD,wBAmB5B,SAAiCtpD,GAG/B,GAFA+oD,GAAeC,SAAShpD,GAEpBK,KAAK8oD,sBACP,OAAOvsB,QAAQC,SAAQ,GAGzB,GAAIusB,GAAkBppD,GAAW,CAC/B,MAAMupD,EACJvpD,EAASG,OAAO6jD,cAChBhkD,EAASG,OAAO6jD,aAAaC,WAAajkD,EAAS2C,WAAWqhD,aAAaC,SAC7E,OAAOrnB,QAAQC,SAAS0sB,GAG1B,MAAMlwB,EAAOh5B,KACPinD,EAAQtnD,EAASsnD,MACjBnnD,EAASH,EAASG,OAClBwC,EAAaic,GAAO,EAAM,GAAI5e,EAAS2C,YACvCmmD,EAAiBlqC,GAAO,EAAM,GAAIjc,GAMxC,OAJAtC,KAAK8oD,uBAAwB,EAE7BE,GAAKtF,WAAWphD,EAAY3C,EAAS2jD,UAE9B3jD,EAASipD,0BAA0B9oD,EAAQwC,GAAYk5B,MAAK,IACjE+sB,GAAKC,sBAAsBvB,EAAOnnD,EAAQwC,EAAYmmD,GAAgBjtB,MAAK,KACzExC,EAAK8vB,uBAAwB,EAEtBvsB,QAAQC,SAAQ,SA9C7BqsB,GAAkBtjD,UAAU4jD,wBAmD5B,SAAiCpF,EAAc9oB,EAAW+oB,EAAKrkD,GAC7D,OAAOypD,GAAYtF,+BAA+BC,EAAc9oB,EAAW+oB,GAAKxoB,MAAMra,GACpF5C,GAAO,EAAM5e,EAAUwhB,MCjE3B,MAAMkoC,GAAoB,CACxBC,eAGF,SAAwBC,GACtB,MAAM3zB,EAAS2zB,EAAWpzC,QAAQ,MAAO,MAEzC,OAAOyf,EAAU,IAAGA,KAAY,KCLlC,MAAM4zB,GAAqB,CACzBC,wBAIF,SAAiCF,EAAYG,EAAeC,GAC1D,MAAMC,EAAc,CAClBpmB,MAAQmmB,GAAoBA,EAAiBnmB,OAAU,KACvD1T,IAAM65B,GAAoBA,EAAiB75B,KAAQ,MAGrD,IACI+5B,EACAC,EAFAC,EAAmBR,EAIvB,IAAK,MAAM50C,KAAO+0C,EAChBG,EAAkBH,EAAc/0C,GAChCm1C,EAAcF,EAAYpmB,MAAQ7uB,EAAMi1C,EAAY95B,IAEpDi6B,EAAmBA,EAAiB5zC,QAAQ01B,GAAaie,GAAa,GAAOD,GAG/E,OAAOE,GApBPle,aAAAA,IAuBF,SAASA,GAAame,EAAQC,EAAUC,GACtC,MAAMC,EAA6BH,EAMxB7zC,QAAQ,wBAAyB,QAL5C,MAAMi0C,EAAeF,EAAa,IAAGC,KAAmBA,EACxD,OAAOF,EAAW,IAAI9jD,OAAOikD,EAAc,KAAO,IAAIjkD,OAAOikD,GCzB/D,MAAMC,GAAsB,CAC1BC,mBASF,SAA4BC,EAAUC,GACpC,MAAMC,EAAmB,GAEzB,GAAID,EACF,IAAK,MAAM71C,KAAO61C,EAAU,CAC1B,MAAM5K,EAAU4K,EAAS71C,GAEnB40C,EAAa3J,EAAQ8K,KAAOrB,GAAkBC,eAAe1J,EAAQ9qC,OAAS8qC,EAAQ9qC,MAE5F21C,EAAiB91C,GAAO40C,GAEL3J,EAAQ+K,YAAc,IAE9BnxC,SAASoxC,IAClB,MAAMC,EAAuBC,GAAkBF,EAAWrB,EAAY50C,GACtE81C,EAAiBG,GAAaC,KAKpC,OAAOrB,GAAmBC,wBAAwBc,EAAUE,KAK9D,SAASK,GAAkBF,EAAW91C,EAAOH,GAC3C,GAAc,KAAVG,EACF,MAAO,GAGT,MAAMi2C,EAASvB,GAAmB3d,aAAal3B,GAAK,GAAM,GACpDq2C,EAAcJ,EAAU32C,MAAM82C,GACpC,IAAIxB,EAAa,GAMjB,OAJAyB,EAAYxxC,SAASlE,IACnBi0C,GAAcj0C,IAAcX,EAAMW,EAAYR,KAGzCy0C,EClDT,MAAM0B,GAAqB,CACzBC,qBAMF,SAA8BX,EAAUxG,EAAc9oB,EAAW+oB,EAAKwG,GAEpE,OA8EF,SAA0BA,EAAUzG,EAAc9oB,EAAW+oB,GAC3D,MAAMmH,EAAgB,GACtB,IAAIC,EACAC,EACJ,MAAMpH,EAAO,GAsBb,IAAIqH,EApBJd,EAAShxC,SAASomC,IAChBwL,EAAmBG,GAAwB3L,EAAQ/pC,MAAM21C,GAAiB,SAC1EJ,EAAiB5xC,SAAShW,IACxBygD,EAAK7lC,KACHqtC,GAA2B1H,EAAathD,YAAYe,GAAQwgD,EAAKxgD,EAAOy3B,GAAWO,MAAM+tB,IACvF4B,EAAe,OAAM3nD,MAAY,CAAEsR,MAAOy0C,EAAYmB,MAAM,UAKlEW,EAAiBE,GAAwB3L,EAAQ/pC,MAAM21C,GAAiB,SACxEH,EAAe7xC,SAAShW,IACtBygD,EAAK7lC,KACHstC,GAAyB3H,EAAarhD,UAAUc,GAAQwgD,GAAKxoB,MAAM+tB,IACjE4B,EAAe,OAAM3nD,MAAY,CAAEsR,MAAOy0C,aAQhD+B,EADErH,EAAK1zC,OACSgsB,QAAQkoB,IAAIR,GAAMzoB,MAAK,IAAMe,QAAQC,QAAQ2uB,KAE7C5uB,QAAQC,QAAQ2uB,GAElC,OAAOG,EA9GAK,CAAiBpB,EAASxlD,WAAWsT,OAAOkyC,EAASrlD,UAAW6+C,EAAc9oB,EAAW+oB,GAAKxoB,MAClG2vB,IACC,MAAMS,EAAcrtC,EAAO,GAAI4sC,EAAeX,GAExCqB,EAAwBttC,GAAO,EAAM,GAAIwlC,GAqB/C,OAnBA8H,EAAsBppD,YAAc,GACpCopD,EAAsBnpD,UAAY,GAElC6nD,EAASxlD,WAAWyU,SAASsyC,IAC3BD,EAAsBppD,YAAY2b,KAAK,CACrCmmC,KAAM,CACJwH,WAAY,CAAE,IAAG1B,GAAoBC,mBAAmBwB,EAAmBF,UAKjFrB,EAASrlD,SAASsU,SAASwyC,IACzBH,EAAsBnpD,UAAU0b,KAAK,CACnCmmC,KAAM,CACJA,KAAM8F,GAAoBC,mBAAmB0B,EAAiBJ,SAK7DC,MAhCXI,2BAqCFC,eAA0CnI,EAAc9oB,EAAW+oB,GACjE,MAAMj/C,EAAag/C,EAAathD,YAAY6X,KAAI,CAACuN,EAAWrkB,IAC1DioD,GAA2B5jC,EAAWm8B,EAAKxgD,EAAOy3B,KAE9C/1B,EAAW6+C,EAAarhD,UAAU4X,KAAK2P,GAAYyhC,GAAyBzhC,EAAS+5B,KAE3F,MAAO,CACLj/C,iBAAkBw3B,QAAQkoB,IAAI1/C,GAC9BG,eAAgBq3B,QAAQkoB,IAAIv/C,MAIhC,SAASumD,GAA2B5jC,EAAWm8B,EAAKxgD,EAAOy3B,GACzD,GAAIpT,EAAUq8B,WACZ,OAAOiI,GAA6BtkC,EAAUq8B,WAAY,YAAaF,EAAKxgD,EAAOy3B,GAErF,MAAMmxB,EAAanxB,EAAU5E,eAAe7yB,GAAO2hD,UACnD,OAAO5oB,QAAQC,QAAQ3U,EAAU08B,KAAKwH,WAAWK,IAGnD,SAASV,GAAyBzhC,EAAS+5B,GACzC,OAAI/5B,EAAQi6B,WACHiI,GAA6BliC,EAAQi6B,WAAY,UAAWF,GAE9DznB,QAAQC,QAAQvS,EAAQs6B,KAAKA,MAKtC,SAAS4H,GAA6BxsC,EAAIle,EAAMuiD,EAAKxgD,EAAOy3B,GAC1D,IAAK+oB,EAEH,OADA7nB,QAAQ0gB,KAAK,yCACNl9B,EAKT,OAAOqkC,EAFgB,cAATviD,EAAuB,eAAiB,cAEpCke,GAAI6b,MAAMlJ,GAC1BA,EAAK+xB,gBAAgB7oB,MAAMhN,GACZ,cAAT/sB,EACK+sB,EAAM69B,KAAKN,WAAW9wB,EAAU5E,eAAe7yB,GAAO2hD,WAExD32B,EAAM81B,SAASC,SAyC5B,SAASiH,GAAiBxB,GACxB,OAAO,IAAI7jD,OAAQ,SAAQ6jD,mBAAyB,KAGtD,SAASuB,GAAwBe,GAC/B,OAAKA,EAGEA,EAAQhyC,KAAKzE,GAAUA,EAAMyC,OAAO,EAAG,KAFrC,GCnII,SAASi0C,GAAUl3C,GAChC,OAAQlB,OAAO7C,MAAM0iB,WAAW3e,KAAOlB,OAAOq4C,UAAUn3C,GCD3C,SAASo3C,GAAUp3C,GAChC,OAAQlB,OAAO7C,MAAMd,SAAS6E,EAAG,MAAQ2e,WAAW3e,EAAG,MAAQ7E,SAAS6E,EAAG,IC+D7E,MAAMq3C,GAAiB,CACrBC,WApDF,SAAoB7sD,GAClB,OAAO09B,GAAS19B,EAAQ,eAAgB8B,EAAiBG,WAoDzD6qD,kBAjDF,SAA2B9sD,GACzB,OAAO09B,GAAS19B,EAAQ,4BAA6B8B,EAAiBG,WAiDtE8qD,oBA9CF,SAA6B/sD,GAC3B,OAAO09B,GAAS19B,EAAQ,2BAA4B8B,EAAiBK,SA8CrE6qD,mBA3CF,SAA4BhtD,GAC1B,MAAMmD,EAAWu6B,GAAS19B,EAAQ,6BAA8B8B,EAAiBE,WAEjF,OAAKyqD,GAAUtpD,GAIXA,EAAW,EACN,EAIJwpD,GAAUxpD,GAIRA,EAHEsO,KAAKqJ,KAAK3X,GATVrB,EAAiBE,uBAe5B,SAAqBhC,GACnB,OAAO09B,GAAS19B,EAAQ,qBAAiBwiB,IAyBzCyqC,aAtBF,SAAsBjtD,GACpB,OAAO09B,GAAS19B,EAAQ,cAAe8B,EAAiBK,SAsBxD+qD,UAnBF,SAAmBltD,GACjB,OAAO09B,GAAS19B,EAAQ,YAAa8B,EAAiBC,OAmBtDorD,gBAhBF,SAAyBntD,GACvB,OAAO09B,GAAS19B,EAAQ,qBAAsB8B,EAAiBM,iBAgB/DgrD,WAhEF,SAAoBptD,GAClB,OAAO09B,GAAS19B,EAAQ,eAAgB8B,EAAiBO,WAgEzDgrD,QAdF,SAAiB93C,GACf,OAAOA,MAAAA,GAAuC,KAANA,IC1DpC+3C,GAAQ77C,KAAKsJ,IAAI,IAEjBwyC,GAAgB,CAAC,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IACxCC,GAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCC,GAAuB,CAAC,EAAG,EAAG,EAAG,IA8BvC,SAASC,GAAc14C,EAAO24C,GAC5B,GAAc,IAAV34C,EACF,OAAO,EAET,IAAI44C,EACJ,MAAMC,EAAYp8C,KAAK0I,MAAM1I,KAAKsJ,IAAItJ,KAAKiJ,IAAI1F,IAAUs4C,IACnDQ,EAAW94C,EAAQ,IAAM64C,EAC/B,IAAK,IAAI57C,EAAI,EAAGA,EAAI07C,EAAYl9C,OAAQwB,IACtC,GAAI67C,GAAYH,EAAY17C,GAAI,CAC9B27C,EAAkBD,EAAY17C,GAC9B,MAKJ,OACG47C,GAAa,EAAID,EAAkB,IAAMC,EAAYD,EAAkB,KAAOC,IAAc74C,EAAQ,GAAK,EAAI,GAIlH,SAAS+4C,GAAsB7pD,EAAKD,EAAK+pD,EAAW5qD,EAAS6qD,EAAQC,GACnE,OAAOz8C,KAAK0I,MAAM1I,KAAKiJ,IAAIxW,EAAM+pD,GAAU7qD,GAAWqO,KAAK0I,MAAM1I,KAAKiJ,IAAIwzC,EAASjqD,GAAOb,GAwG5F,MAAM+qD,GAAoB,CACxBC,iBAXF,SAA6BlqD,EAAKD,EAAKd,GAOrC,OAlJF,SAAuBe,EAAKD,EAAKd,GAC/B,IAAKspD,GAAUvoD,KAASuoD,GAAUxoD,KAASwoD,GAAUtpD,GACnD,MAAM+b,MAAM,uDAGd,GAAIhb,EAAMD,EACR,MAAMib,MAAM,6EAuIdmvC,CAAcnqD,EAAKD,EAAKd,GA7F1B,SAA0Be,EAAKD,EAAK+pD,GAClC,IAAIC,EACAC,EACAnhC,EACA3pB,EACAkrD,EACAT,EACAz4C,EACA+sB,EAEAosB,EACA/oD,EACAgpD,EACAjpD,EAJA0M,GAAK,EAKL07C,EAAcJ,GAElB,GADAS,EAAYv8C,KAAKxN,IAAI,EAAG+pD,GACpB/pD,IAAQC,EACV,GAAY,IAARD,GAEF,GADAb,EAAU,EACQ,IAAd4qD,EACF,MAAO,CACL9pD,IAAAA,EACAD,IAAAA,EACA+pD,UAAAA,EACAS,WAAY1hC,EAAQihC,EACpB3qD,QAAS,GACT6qD,OAAQ,GACR9qD,QAAS,EACTsrD,aAAc,QAGK,IAAdV,GACT5qD,EAAUa,EAzFA,KA0FV0pD,EAAcH,IAEdpqD,EAAUqO,KAAKiJ,IAAIzW,EAAM+pD,QAI3BjhC,GADA9oB,GA/FY,MAgGEC,EACdd,EAAU2pB,EAAQihC,EAEpB,EAAG,CAGD,GAFA7rB,EAAI,EACJqsB,EAAO,EACHv8C,GAAK,EAIP,IAHAs8C,EAAQ,EAAId,GAAqBx7C,GACjCzM,EAAI,EACJmoD,EAAc,GACPnoD,GAAK,IACVmoD,EAAYrvC,KAAK7M,KAAKC,MAAU,IAAJlM,GAAY,KACxCA,GAAK+oD,EAGTD,EAAclrD,EACd,EAAG,CACDkrD,EAAcZ,GAAcY,EAAcnsB,EAAGwrB,GAC7CE,EAAYp8C,KAAK0I,MAAM1I,KAAKsJ,IAAIuzC,GAAehB,IAC/Cl4C,EAAI,IAAMy4C,EAERK,EADEjqD,IAAQC,GACAuN,KAAKqJ,KAAK7W,EAAMqqD,GAAe78C,KAAK0I,MAAM6zC,EAAY,IAAMM,EAE7D78C,KAAKqJ,KAAK7W,EAAMqqD,GAAeA,EAE1CL,EAASC,EAASF,EAAYM,EAC9B,IAAI9nD,EAAI,EAER,IADAjB,EAAI6P,GACI64C,EAAS/pD,GAAOgqD,EAASjqD,IAAQuC,EAAIinD,GAAqBh9C,QAChEw9C,EAASx8C,KAAK0I,MAAMjW,EAAMqB,GAAKA,EAC/B2oD,EAASD,EAASD,EAAYM,EAC9B/oD,EAAI6P,EAAIq4C,GAAqBjnD,KAI3BqnD,EAAY,IACdz4C,EAAI,KAAO3D,KAAKiJ,IAAImzC,GAAa,GACjCK,EAASz8C,KAAKC,MAAMw8C,EAAS94C,GAAKA,EAClC64C,EAASx8C,KAAKC,MAAMu8C,EAAS74C,GAAKA,GAEpC+sB,EAAI,IACJqsB,WACQP,EAAS/pD,GAAOgqD,EAASjqD,IAAQuqD,EAAO,IAClDv8C,UACO87C,GAAsB7pD,EAAKD,EAAK+pD,EAAW5qD,EAAS6qD,EAAQC,GAAU,GAAKj8C,EAAIw7C,GAAqBh9C,QAC7G,MAAO,CACLtN,SAAU6qD,EACV3qD,OAAQ4qD,EACR7qD,QAASkrD,GAWJF,CAAiBlqD,EAAKD,EAF7Bd,EAtIF,SAAqBA,GAEnB,OAAIA,EAAW,EACN,EAIJwpD,GAAUxpD,GAIRA,EAHEsO,KAAKqJ,KAAK3X,GA8HRwrD,CAAYxrD,MCtFzB,MAAMyrD,GAAoB,CACxBC,iBA7BF,SAA0B7uD,GACxB,MAAMkD,EAAO0pD,GAAeM,UAAUltD,GAChCuD,EAAUqpD,GAAeQ,WAAWptD,GAC1C,IAAIoD,EACA0rD,EACA3rD,EACA4rD,EACJ,MAAMC,EAAWpC,GAAeO,gBAAgBntD,GAahD,OAXIkD,GAAoB,aAAZK,GACVwrD,EAtBJ,SAAoB/uD,GAClB,MAAMivD,EAAUvxB,GAAS19B,EAAQ,8BAA+B,IAChE,IAAI+2B,EAAOk4B,EAAQl4B,KACfG,EAAO+3B,EAAQ/3B,KAEnBH,EAAO01B,GAAU11B,GAAQA,EAAO,EAChCG,EAAOu1B,GAAUv1B,GAAQA,EAAO,EAChC,MAAM/zB,EAAWypD,GAAeI,mBAAmBhtD,GAEnD,OAAOmuD,GAAkBC,iBAAiBr3B,EAAMG,EAAM/zB,GAa1C+rD,CAAWlvD,GAErBoD,EAAU2rD,EAAQ3rD,QAClB0rD,EAAYC,EAAQ1rD,OACpBF,EAAW4rD,EAAQ5rD,WAEnBC,EAAUwpD,GAAeC,WAAW7sD,GACpC8uD,EAAYlC,GAAeK,aAAajtD,IAGnC,CACLoD,QAAAA,EACA0rD,UAAAA,EACA3rD,SAAAA,EACA6rD,SAAAA,IAMFG,YAhEF,SAAqBvc,GACnB,MAAM8X,EAAW,GAkBjB,OAhBAA,EAAS0E,QAAU,CACjBp6C,MAAQ,IAAG49B,EAAOxvC,SAGpBsnD,EAAS2E,MAAQ,CACfr6C,MAA4B,IAArB49B,EAAOkc,UAAkB,GAAK,QAGvCpE,EAAS4E,OAAS,CAChBt6C,MAA4B,IAArB49B,EAAOkc,UAAkB,GAAM,IAAGlc,EAAOkc,WAGlDpE,EAAS6E,SAAW,CAClBv6C,MAAO49B,EAAOoc,SAAW,YAAc,IAGlCtE,IC2CT,MAAM8E,GAAiB,CACrBC,mBAlEFrD,eAAkCpsD,EAAQwC,EAAYs2B,GACpD,MAAMorB,IAAEA,EAAFn/C,WAAOA,GAAe+zB,EACtB42B,EAAgBd,GAAkBC,iBAAiB7uD,GACnD0qD,EAAWkE,GAAkBO,YAAYO,GAUzCC,EAAqBC,GAAsBzD,2BAC/C3pD,EAAWE,cACX1C,EAAOw1B,WACP0uB,GAEI2L,EAAoBD,GAAsBxE,qBAbtB,CACxBnmD,WAAY,CAAC,oEACbG,SAAU,CAAC,kCAaX5C,EAAWE,cACX1C,EAAOw1B,WACP0uB,EACAwG,GAGIoF,QAAoBH,EACpBI,QAAmBF,EACzB,IAAIG,EAGFA,EADEpD,GAAeM,UAAUltD,GACZ,CACbiwD,iBAAkB,CAChBC,MAAO3F,GAAoBC,mBAtBR,iDAsB6C,CAC9D2F,SAAU,CAAEn7C,MAAO86C,EAAY7qD,WAAW,GAAI2lD,MAAM,OAIX,aAAtCgC,GAAeQ,WAAWptD,IAA0B4sD,GAAeS,QAAQ7qD,EAAWS,KAAKE,UAErFypD,GAAeI,mBAAmBhtD,GAElCwC,EAAWS,KAAKE,SAIjCitD,GAASL,EAAY,oCAAqC,CAAC,CAAEM,eAAgB,KAG7ED,GAASL,EAAY,kCAAmC,CAAC/vD,EAAOw1B,WAAWe,eAAe,GAAG0c,iBAC7Fmd,GACEL,EACA,0BACA/vD,EAAO+D,YAAYjE,OAASiF,EAAWI,IAAI,6CAI7CirD,GAAS5tD,EAAY,iCAAkCutD,GAGvDK,GAAS5tD,EAAY,4BAA6BktD,EAActsD,SAChEgtD,GAAS5tD,EAAY,2BAA4BktD,EAAcZ,WAC/DsB,GAAS5tD,EAAY,6BAA8BwtD,KCzBrD,IAAeM,GAAA,CACbC,sBArCF,SAA+BjrD,EAAGkrD,EAASC,GACzC,QACInrD,KACAmrD,EAAiB5nC,MAChBC,oBAAoB,CACnBjT,EAAGvQ,EAAEojB,OAAO7S,EACZD,EAAGtQ,EAAEojB,OAAO9S,IAEb8e,QAAQ7gB,IAA2C,IAArC28C,EAAQt6C,QAAQrC,EAAEhU,SAASgV,OAAa,IA8B3D67C,sBAnBF,SAA+BprD,EAAGqrD,EAAgBC,GAChD,OACEtrD,GACAsrD,EAAa/nC,MACVC,oBAAoB,CACnBjT,EAAGvQ,EAAEojB,OAAO7S,EACZD,EAAGtQ,EAAEojB,OAAO9S,IAEb8e,QAAQ7gB,GAAMA,EAAEhU,SAASgV,MAAQ87C,EAAep2C,KAAK2iC,eAAc,IAYxE2T,uBARF,SAAgCvrD,EAAGwrD,EAAgBC,GAEjD,OADmBA,EAAcloC,MAAMC,oBAAoBxjB,EAAEojB,QAC3CnD,MAAM1R,GAAMA,EAAEhU,SAASgV,MAAQi8C,MC+BnD,IAAeF,GAAA,CACbI,iBA5DF,SAA0Bz+B,EAAO0+B,EAAaN,GAC5C,MAAO,CACLhvD,KAAM,MACNwf,QAAS,CACPlB,UAAWixC,EAAOC,cAClBC,UAAW,EACXroC,OAAOP,EAASljB,GACd,GAAIitB,EAAM8+B,SACR,OAAOJ,EAAYK,qBAErB,MAAMC,EAAUjB,GAAmBI,sBAAsBprD,EAAGqrD,EAAgBzwD,MAC5E,OACE+wD,EAAYK,sBAAwBhsD,KArBvBksD,EAqB2Cb,EAAea,UApB/DC,iBAAiB7U,eAAiB4U,EAASC,iBAAiB5U,mBAoBgBtqB,EAAM8+B,WAAaE,EArBjH,IAAuBC,GAwBjBlX,MAAO,SAEToX,cAAef,EAAea,SAASG,cAAgB,OAAS,KAChE3oC,OAAQ,CACN4oC,WAAWtsD,GACOgrD,GAAmBI,sBAAsBprD,EAAGqrD,EAAgBzwD,QAI5E+wD,EAAYY,SAAS,QAAS3xD,KAAK2oB,MAAOvjB,GAC1CitB,EAAM8+B,UAAW,EACjBV,EAAea,SAASC,iBAAiBxV,iBAAiB0U,EAAep2C,KAAKu3C,eAC9ExsD,EAAEysD,QAAUzsD,EAAE0sD,SAAS,GAAGD,QAC1BzsD,EAAE2sD,QAAU3sD,EAAE0sD,SAAS,GAAGC,QAC1BhB,EAAYiB,OAAOhyD,KAAK2oB,MAAO,QAAS,aAAcvjB,KAExD6sD,UAAU7sD,GACHitB,EAAM8+B,WAGX/rD,EAAEysD,QAAUzsD,EAAE0sD,SAAS,GAAGD,QAC1BzsD,EAAE2sD,QAAU3sD,EAAE0sD,SAAS,GAAGC,QAC1BhB,EAAYiB,OAAOhyD,KAAK2oB,MAAO,QAAS,YAAavjB,KAEvD8sD,SAAS9sD,GACFitB,EAAM8+B,WAIX/rD,EAAEysD,QAAUzsD,EAAE0sD,SAAS,GAAGD,QAC1BzsD,EAAE2sD,QAAU3sD,EAAE0sD,SAAS,GAAGC,QAC1BhB,EAAYiB,OAAOhyD,KAAK2oB,MAAO,QAAS,WAAYvjB,GACpDqrD,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKu3C,eAAe,GAC9Fv/B,EAAM8+B,UAAW,IAEnBgB,YAAY/sD,GACVitB,EAAM8+B,UAAW,EACjBJ,EAAYiB,OAAOhyD,KAAK2oB,MAAO,QAAS,cAAevjB,GACvDqrD,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKu3C,eAAe,QCWtG,IAAeQ,GAAA,CACbC,wBAnEF,SAAiChgC,EAAO0+B,EAAaN,EAAgB5sD,GACnE,MAAMyuD,EAAmB7B,EAAep2C,KAAKk4C,iBAAmB,aAAe,YAE/E,MAAO,CACL9wD,KAAM,MACNwf,QAAS,CACPlB,UAAW0wC,EAAexoC,aAAe+oC,EAAOwB,qBAAuBxB,EAAOyB,mBAC9ErY,MAAO,eACPvxB,OAAOP,EAASljB,GACd,IAAKqrD,EAAeiC,eAAeC,UACjC,OAAO,EAGT,GAAItgC,EAAMugC,iBACR,OAAO7B,EAAYK,qBAErB,MAAMd,EAC8B,iBAAlCG,EAAe7X,OAAOia,QAClB,CAAChvD,EAAa4sD,EAAep2C,KAAK2iC,cAClC,CAACn5C,GACDwtD,EAAUjB,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,MAGrE,OADAqyB,EAAMugC,iBAAmB7B,EAAYK,wBAA0BhsD,KAAOisD,EAC/Dh/B,EAAMugC,oBAAsBnC,EAAep2C,KAAKy4C,uBAG3DC,eAAiB,SAAQT,EACzBd,cAAef,EAAea,SAASG,cAAgB,OAAS,KAChE3oC,OAAQ,CACNkqC,kBAAkB5tD,GAChB,MAAMkrD,EAC8B,iBAAlCG,EAAe7X,OAAOia,QAClB,CAAChvD,EAAa4sD,EAAep2C,KAAK2iC,cAClC,CAACn5C,GACSusD,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,QAKrEqyB,EAAMugC,kBAAmB,EACzB7B,EAAYY,SAAS,eAAgB3xD,KAAK2oB,MAAOvjB,GACjD2rD,EAAYiB,OAAOhyD,KAAK2oB,MAAO,eAAgB,aAAcvjB,GAC7DqrD,EAAea,SAASC,iBAAiBxV,iBAAiB0U,EAAep2C,KAAKy4C,wBAEhFG,iBAAiB7tD,GACVitB,EAAMugC,kBAGX7B,EAAYiB,OAAOhyD,KAAK2oB,MAAO,eAAgB,YAAavjB,IAE9D8tD,gBAAgB9tD,GACTitB,EAAMugC,mBAGXnC,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKy4C,sBAAsB,GACrG/B,EAAYiB,OAAOhyD,KAAK2oB,MAAO,eAAgB,WAAYvjB,GAC3DitB,EAAMugC,kBAAmB,IAE3BO,qBACE1C,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKy4C,sBAAsB,GACrGzgC,EAAMugC,kBAAmB,OCnEjC,SAASQ,GAAmBpmC,EAAM1I,GAChC,IAAIrkB,EAMJ,OAJEA,EADW,WAAT+sB,EACoB,eAAhB1I,EAA+B0sC,EAAOyB,mBAAqBzB,EAAOwB,qBAElD,eAAhBluC,EAA+B0sC,EAAOwB,qBAAuBxB,EAAOyB,mBAErExyD,EA2ET,IAAeozD,GAAA,CACbC,qBAlEF,SAA8BjhC,EAAO0+B,EAAaN,EAAgBzjC,GAChE,MAAMslC,EAAmB7B,EAAep2C,KAAKk4C,iBAAmB,aAAe,eAE/E,MAAO,CAEL9wD,KAAM,MACNwf,QAAS,CACPlB,UAAWqzC,GAAmBpmC,EAAMyjC,EAAexoC,cACnDmyB,MAAO,YACPvxB,OAAOP,EAASljB,GACd,IAAKqrD,EAAeiC,eAAea,UACjC,OAAO,EAGT,GAAIlhC,EAAMmhC,SACR,OAAOzC,EAAYK,qBAErB,MAAMd,EAC8B,cAAlCG,EAAe7X,OAAOia,QAA0B,CAAC7lC,EAAMyjC,EAAep2C,KAAK2iC,cAAgB,CAAChwB,GACxFqkC,EAAUjB,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,MAGrE,OADAqyB,EAAMmhC,SAAWzC,EAAYK,wBAA0BhsD,KAAOisD,EACvDh/B,EAAMmhC,WAGjBT,eAAiB,SAAQT,EACzBd,cAAef,EAAea,SAASG,cAAgB,OAAS,KAChE3oC,OAAQ,CACN2qC,eAAeruD,GACb,MAAMkrD,EAC8B,cAAlCG,EAAe7X,OAAOia,QAA0B,CAAC7lC,EAAMyjC,EAAep2C,KAAK2iC,cAAgB,CAAChwB,GAC9EojC,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,QAKrEqyB,EAAMmhC,UAAW,EACjBzC,EAAYY,SAAS,YAAa3xD,KAAK2oB,MAAOvjB,GAC9C2rD,EAAYiB,OAAOhyD,KAAK2oB,MAAO,aAAc,YAAavjB,GAC1DqrD,EAAea,SAASC,iBAAiBxV,iBAAiB0U,EAAep2C,KAAKq5C,gBAEhFC,cAAcvuD,GACPitB,EAAMmhC,WAIXxzD,KAAK2oB,MAAM6E,MAAMijC,EAAep2C,KAAKq5C,cAAc76B,QACnDk4B,EAAYiB,OAAOhyD,KAAK2oB,MAAO,aAAc,WAAYvjB,KAE3DwuD,aAAaxuD,GACNitB,EAAMmhC,WAGX/C,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKq5C,cAAc,GAC7F3C,EAAYiB,OAAOhyD,KAAK2oB,MAAO,aAAc,UAAWvjB,GACxDitB,EAAMmhC,UAAW,IAEnBK,kBACEpD,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKq5C,cAAc,GAC7FrhC,EAAMmhC,UAAW,OCTzB,IAAeM,GAAA,CACbC,0BA7DF,SAAmC1hC,EAAO0+B,EAAaN,EAAgBuD,GACrE,MAAM1B,EAAmB7B,EAAep2C,KAAKy4C,qBAAuB,eAAiB,YACrF,MAAO,CACLrxD,KAAM,MACNwf,QAAS,CACPlB,UAAW0wC,EAAexoC,aAAe+oC,EAAOyB,mBAAqBzB,EAAOwB,qBAC5EpY,MAAO,aACPvxB,OAAOP,EAASljB,GACd,IAAKqrD,EAAeiC,eAAea,UACjC,OAAO,EAET,GAAIlhC,EAAM4hC,SACR,OAAOlD,EAAYK,qBAErB,MAAMd,EAC8B,eAAlCG,EAAe7X,OAAOia,QAA2B,CAACmB,EAASvD,EAAep2C,KAAK2iC,cAAgB,CAACgX,GAC5F3C,EAAUjB,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,MAGrE,OADAqyB,EAAM4hC,SAAWlD,EAAYK,wBAA0BhsD,KAAOisD,EACvDh/B,EAAM4hC,YAAcxD,EAAep2C,KAAKk4C,mBAGnDQ,eAAiB,SAAQT,EACzBd,cAAef,EAAea,SAASG,cAAgB,OAAS,KAChE3oC,OAAQ,CACNorC,gBAAgB9uD,GACd,MAAMkrD,EAC8B,eAAlCG,EAAe7X,OAAOia,QAA2B,CAACmB,EAASvD,EAAep2C,KAAK2iC,cAAgB,CAACgX,GAClF5D,GAAmBC,sBAAsBjrD,EAAGkrD,EAAStwD,QAKrEqyB,EAAM4hC,UAAW,EACjBlD,EAAYY,SAAS,aAAc3xD,KAAK2oB,MAAOvjB,GAC/C2rD,EAAYiB,OAAOhyD,KAAK2oB,MAAO,WAAY,aAAcvjB,GACzDqrD,EAAea,SAASC,iBAAiBxV,iBAAiB0U,EAAep2C,KAAKk4C,oBAEhF4B,eAAe/uD,GACRitB,EAAM4hC,UAGXlD,EAAYiB,OAAOhyD,KAAK2oB,MAAO,WAAY,YAAavjB,IAE1DgvD,cAAchvD,GACPitB,EAAM4hC,WAGXxD,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKk4C,kBAAkB,GACjGxB,EAAYiB,OAAOhyD,KAAK2oB,MAAO,WAAY,WAAYvjB,GACvDitB,EAAM4hC,UAAW,IAEnBI,mBACE5D,EAAea,SAASC,iBAAiBvV,kBAAkByU,EAAep2C,KAAKk4C,kBAAkB,GACjGlgC,EAAM4hC,UAAW,OCEzB,IAAeK,GAAA,CACbC,gBA3DF,SAAyBliC,EAAO0+B,EAAaN,EAAgB+D,EAAex0C,GAC1E,IAAIy0C,EAAY,GAChB,MAAO,CACLhzD,KAAM,MACNwf,QAAS,CACPlB,UAAW0wC,EAAexoC,aAAe+oC,EAAOyB,mBAAqBzB,EAAOwB,qBAC5EpY,MAAO,OACPvxB,OAAOP,EAASljB,GACd,OAAIitB,EAAMqiC,SACD3D,EAAY4D,uBAGrBtiC,EAAMqiC,SACJ3D,EAAY4D,yBACVvvD,KACApF,KAAK2oB,MACJC,oBAAoB,CAAEjT,EAAGvQ,EAAEojB,OAAO7S,EAAGD,EAAGtQ,EAAEojB,OAAO9S,IACjD8e,QAAQ7gB,GAAMA,EAAEhU,SAASgV,MAAQ87C,EAAep2C,KAAK2iC,eAAc,GACjE3qB,EAAMqiC,YAGjB3B,eAAgByB,EAAiB,SAAQzD,EAAY6D,iBAAqB,GAC1E9rC,OAAQ,CACN+rC,UAAUzvD,GACRqvD,EAAY,CAAE9+C,EAAGvQ,EAAEqjB,OAAQ/S,EAAGtQ,EAAEsjB,QAChC,IAAIosC,IACArE,EAAexoC,aAAe7iB,EAAEsjB,OAAStjB,EAAEqjB,QAAUgoC,EAAea,SAASG,cAAcsD,eAC1FtE,EAAexoC,cAAgBjI,IAClC80C,GAAUA,GAEZrE,EAAea,SAASG,cAAcuD,eAAeC,KAAKH,IAE5DI,SAAS9vD,GACP,IAAKitB,EAAMqiC,SACT,OAEF,IAAII,IACArE,EAAexoC,aAAe7iB,EAAEsjB,OAAS+rC,EAAU/+C,EAAItQ,EAAEqjB,OAASgsC,EAAU9+C,GAC9E86C,EAAea,SAASG,cAAcsD,eACnCtE,EAAexoC,cAAgBjI,IAClC80C,GAAUA,GAEZrE,EAAea,SAASG,cAAcuD,eAAeC,KAAKH,GAC1DL,EAAY,CAAE9+C,EAAGvQ,EAAEqjB,OAAQ/S,EAAGtQ,EAAEsjB,SAElCysC,UACO9iC,EAAMqiC,WAGXriC,EAAMqiC,UAAW,IAEnBU,aACE/iC,EAAMqiC,UAAW,OCrBzB,IAAe7D,GAAA,CACbwE,kBA9BF,SAA2BjtC,EAAawoC,GACtC,MAAO,CACLnvD,KAAM,MACNwf,QAAS,CACPm5B,MAAO,YACPvxB,OAAOP,EAASljB,GACd,SAAKA,IAAMgjB,MAIJgoC,GAAmBO,uBAAuBvrD,EAAGwrD,EAAgB5wD,QAGxE8oB,OAAQ,CACNwsC,UAAUlwD,GAERpF,KAAK2oB,MAAMC,oBAAoBxjB,EAAEojB,QAAQhP,SAAS7F,IAChD,MAAM4hD,EAAMnwD,EAAE6rB,OACRukC,EAAOD,EAAMA,EAAIE,aAAa,eAAiB,GACrD,GAAID,EACF,OAAO7hD,EAAEqV,KAAKwsC,WC6J1B,IAAeE,GAAA,CACbhwD,OAjLF,SAA+B4rD,EAAUhtC,EAAatE,EAAO3F,EAAMq4C,GACjE,MAAM5zC,EAAM,GAEZwF,EAAcA,GAAe,WAE7B,MAAMstC,EAAgBv3C,EAAKu3C,eAAiB,SACtCW,EAAmBl4C,EAAKk4C,kBAAoB,KAC5CO,EAAuBz4C,EAAKy4C,sBAAwB,KACpDY,EAAer5C,EAAKq5C,cAAgB,KACpC9C,EAAiBv2C,EAAKu2C,gBAAkB,KAExC4D,IAAkBlD,EAASC,kBAAoBD,EAASC,iBAAiB9U,OAEzEpqB,EAAQ,CACZqiC,UAAU,EACVvD,UAAU,EACV8C,UAAU,EACVT,UAAU,EACVZ,kBAAkB,GAGdha,EAAS,CACbia,QAAS,GACTpxD,KAAM,IAGFwmB,EAA+B,eAAhB3D,EAEf0vC,EAAU/rC,EAAe,SAAW,SACpCpkB,EAAcokB,EAAe,SAAW,SAE9C,SAAS0pC,EAASkB,EAASlqC,EAAOvjB,GAChC,GAAIwzC,EAAOia,UAAYA,EACrB,OAEF,IAAI8C,EAAW/D,EACf,MAAMgE,EAAcjtC,GAASiwB,EAAOjwB,MAEpC,OAAQiwB,EAAOia,SACb,IAAK,aACHb,EAAO4D,EAAa,WAAY,aAAcxwD,GAC9CuwD,EAAWpD,EACX,MACF,IAAK,eACHP,EAAO4D,EAAa,eAAgB,aAAcxwD,GAClDuwD,EAAW7C,EACX,MACF,IAAK,YACHd,EAAO4D,EAAa,aAAc,YAAaxwD,GAC/CuwD,EAAWjC,EAMf9a,EAAOia,QAAUA,EACjB,MAAMgD,EAAsB,UAAZhD,EAAsB,QAAU,OAE5Cja,EAAOn3C,MAAQm3C,EAAOn3C,OAASo0D,GACjCD,EAAYpoC,MAAMmoC,GAAU98B,QAG9B+f,EAAOjwB,MAAQA,EACfiwB,EAAOn3C,KAAOo0D,EAIhB,SAAS7D,EAAOrpC,EAAOoI,EAAM+kC,EAAM1wD,GACjC,GAAIujB,EAAO,CACT,MAAM+nB,EAAO/nB,EAAM9pB,UAAUkyB,GACzB2f,GACFA,EAAK1nB,KAAK8sC,EAAM1wD,IAetB,IAAIonB,EAAW,GAEf,MAAMukC,EAAc,CAClBK,mBAAoB,IAAME,EAASC,kBAAoBD,EAASC,iBAAiB9U,OACjFkY,oBAAqB,IAAMrD,EAASG,eAAiBH,EAASG,cAAchV,OAC5EuV,OAAAA,EACAL,SAAAA,EACAiD,eAjBF,WACE,OAAKrC,EAGAO,EAGE,0BAFE,uBAHA,2BAkBLrC,EAAiB,CACrBa,SAAAA,EACAj3C,KAAAA,EACA4N,aAAAA,EACA2wB,OAAAA,EACA8Z,eAAAA,GA0DF,SAASqD,IACPpE,EAAS,QACTt/B,EAAM4hC,UAAW,EACjB5hC,EAAMugC,kBAAmB,EACzBvgC,EAAMmhC,UAAW,EAUnB,OArEIgB,IACFhoC,EAAW,CACT,CACE/qB,KAAM,MACNwf,QAAS,CACPm5B,MAAO,iBAETtxB,OAAQ,CACNktC,cAAc5wD,GACZusD,EAAS,OAAQ3xD,KAAK2oB,MAAOvjB,GAE7BitB,EAAM4hC,UAAW,EACjB5hC,EAAMugC,kBAAmB,EACzBvgC,EAAMmhC,UAAW,MAQzBhnC,EAASyyB,QAAQ4R,GAAcwE,kBAAkBtE,EAAY4D,oBAAqB/D,IAElFpkC,EAASpO,KAAKsyC,GAAaI,iBAAiBz+B,EAAO0+B,EAAaN,IAG3D8B,EAOOO,GAOVtmC,EAASpO,KAAK01C,GAAsBC,0BAA0B1hC,EAAO0+B,EAAaN,EAAgBuD,IAClG1C,EAASC,iBAAiB1rC,aAAa0sC,EAAkB,CAAE5yC,GAAI,WAAYkZ,MAAO,eAElFrM,EAASpO,KAAKg0C,GAAoBC,wBAAwBhgC,EAAO0+B,EAAaN,EAAgB5sD,IAC9FytD,EAASC,iBAAiB1rC,aAAaitC,EAAsB,CAAEnzC,GAAI,eAAgBkZ,MAAO,iBAV1FrM,EAASpO,KAAK01C,GAAsBC,0BAA0B1hC,EAAO0+B,EAAaN,EAAgBuD,IAClG1C,EAASC,iBAAiB1rC,aAAa0sC,EAAkB,CAAE5yC,GAAI,WAAYkZ,MAAO,eAElFrM,EAASpO,KAAKi1C,GAAiBC,qBAAqBjhC,EAAO0+B,EAAaN,EAAgB5sD,IACxFytD,EAASC,iBAAiB1rC,aAAa6tC,EAAc,CAAE/zC,GAAI,aAAckZ,MAAO,gBAXhFrM,EAASpO,KAAKg0C,GAAoBC,wBAAwBhgC,EAAO0+B,EAAaN,EAAgB5sD,IAE9FytD,EAASC,iBAAiB1rC,aAAaitC,EAAsB,CAAEnzC,GAAI,eAAgBkZ,MAAO,eAE1FrM,EAASpO,KAAKi1C,GAAiBC,qBAAqBjhC,EAAO0+B,EAAaN,EAAgBuD,IACxF1C,EAASC,iBAAiB1rC,aAAa6tC,EAAc,CAAE/zC,GAAI,aAAckZ,MAAO,gBAgBhFy4B,EAASG,gBACXjlC,EAASpO,KAAKk2C,GAAYC,gBAAgBliC,EAAO0+B,EAAaN,EAAgB+D,EAAex0C,IAG7FsxC,EAASG,cAAcuD,eAAe7b,GAAG,SAAU4c,IAUrDj3C,EAAI0N,SAAWA,EACf1N,EAAI+e,QAAU,WACRyzB,EAASG,eACXH,EAASG,cAAcuD,eAAera,eAAe,SAAUob,IAI5Dj3C,IChLT,SAASm3C,GAA2Bn2D,GAClC,MAAMo2D,EAAqB14B,GAAS19B,EAAQ,kEAAmE,GAC/G,OAAOyR,KAAKvN,IARU,GAQWkyD,GAanC,MAAMC,GAAgB,CACpBC,eAXF,SAAqCt2D,GACnC,MAAO,CACLH,SAAU,CACRiuB,OAAQ,CACNyoC,cAAeJ,GAA2Bn2D,QCqBlD,MAAMw2D,GAAiB,CACrBF,eAhCF,SAAsCt2D,GACpC,MAAMy2D,EAAa7J,GAAeM,UAAUltD,GACtCuD,EAAUqpD,GAAeQ,WAAWptD,GACpCoD,EAAUwpD,GAAeE,kBAAkB9sD,GACjD,IAAIkE,EACAD,EAEJ,GAAIwyD,GAA0B,aAAZlzD,EAAwB,CAGxC,MAAMF,EAASupD,GAAeG,oBAAoB/sD,GAIlDkE,EAAMb,EACNY,EAAMZ,EAHWupD,GAAeI,mBAAmBhtD,GAGzBoD,MACrB,CACL,MAAM6rD,EAAUvxB,GAAS19B,EAAQ,+CAAgD,IACjFkE,EAAM+qD,EAAQl4B,MAAQ,EACtB9yB,GAAOgrD,EAAQ/3B,MAAQ,GAAK9zB,EAG9B,MAAO,CACLrE,UAAW,CACT4C,KAAM,SACNuC,IAAAA,EACAD,IAAAA,MCjCAyyD,GAAc,CAClB9vD,UAAW,CAAEf,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCtK,aAAc,CAAEhB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACnCrK,KAAM,CAAEjB,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KACzBpK,WAAY,CAAElB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCnK,MAAO,CAAEnB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BlK,MAAO,CAAEpB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BjK,OAAQ,CAAErB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC7BhK,MAAO,CAAEtB,EAAG,EAAGqL,EAAG,EAAGC,EAAG,GACxB/J,eAAgB,CAAEvB,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACrC9J,KAAM,CAAExB,EAAG,EAAGqL,EAAG,EAAGC,EAAG,KACvB7J,WAAY,CAAEzB,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KAChC5J,MAAO,CAAE1B,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC3B3J,UAAW,CAAE3B,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC1J,UAAW,CAAE5B,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KAC/BzJ,WAAY,CAAE7B,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GACjCxJ,UAAW,CAAE9B,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAChCvJ,MAAO,CAAE/B,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAC5BtJ,eAAgB,CAAEhC,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACrCrJ,SAAU,CAAEjC,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/BpJ,QAAS,CAAElC,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC7BnJ,KAAM,CAAEnC,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KACzBlJ,SAAU,CAAEpC,EAAG,EAAGqL,EAAG,EAAGC,EAAG,KAC3BjJ,SAAU,CAAErC,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KAC7BhJ,cAAe,CAAEtC,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IACpC/I,SAAU,CAAEvC,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/B9I,UAAW,CAAExC,EAAG,EAAGqL,EAAG,IAAKC,EAAG,GAC9B7I,SAAU,CAAEzC,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/B5I,UAAW,CAAE1C,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC3I,YAAa,CAAE3C,EAAG,IAAKqL,EAAG,EAAGC,EAAG,KAChC1I,eAAgB,CAAE5C,EAAG,GAAIqL,EAAG,IAAKC,EAAG,IACpCzI,WAAY,CAAE7C,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GACjCxI,WAAY,CAAE9C,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KAChCvI,QAAS,CAAE/C,EAAG,IAAKqL,EAAG,EAAGC,EAAG,GAC5BtI,WAAY,CAAEhD,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCrI,aAAc,CAAEjD,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACnCpI,cAAe,CAAElD,EAAG,GAAIqL,EAAG,GAAIC,EAAG,KAClCnI,cAAe,CAAEnD,EAAG,GAAIqL,EAAG,GAAIC,EAAG,IAClClI,cAAe,CAAEpD,EAAG,GAAIqL,EAAG,GAAIC,EAAG,IAClCjI,cAAe,CAAErD,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KAClChI,WAAY,CAAEtD,EAAG,IAAKqL,EAAG,EAAGC,EAAG,KAC/B/H,SAAU,CAAEvD,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KAC9B9H,YAAa,CAAExD,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KAChC7H,QAAS,CAAEzD,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9B5H,QAAS,CAAE1D,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9B3H,WAAY,CAAE3D,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KAChC1H,UAAW,CAAE5D,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC/BzH,YAAa,CAAE7D,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAClCxH,YAAa,CAAE9D,EAAG,GAAIqL,EAAG,IAAKC,EAAG,IACjCvH,QAAS,CAAE/D,EAAG,IAAKqL,EAAG,EAAGC,EAAG,KAC5BtH,UAAW,CAAEhE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCrH,WAAY,CAAEjE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCpH,KAAM,CAAElE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GAC3BnH,UAAW,CAAEnE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAChClH,KAAM,CAAEpE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3BjH,MAAO,CAAErE,EAAG,EAAGqL,EAAG,IAAKC,EAAG,GAC1BhH,YAAa,CAAEtE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAClC/G,KAAM,CAAEvE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3B9G,SAAU,CAAExE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/B7G,QAAS,CAAEzE,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9B5G,UAAW,CAAE1E,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC/B3G,OAAQ,CAAE3E,EAAG,GAAIqL,EAAG,EAAGC,EAAG,KAC1B1G,MAAO,CAAE5E,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BzG,MAAO,CAAE7E,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BxG,SAAU,CAAE9E,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/BvG,cAAe,CAAE/E,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACpCtG,UAAW,CAAEhF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GAChCrG,aAAc,CAAEjF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACnCpG,UAAW,CAAElF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCnG,WAAY,CAAEnF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjClG,UAAW,CAAEpF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCjG,qBAAsB,CAAErF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3ChG,UAAW,CAAEtF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC/F,WAAY,CAAEvF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjC9F,UAAW,CAAExF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC7F,UAAW,CAAEzF,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC5F,YAAa,CAAE1F,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAClC3F,cAAe,CAAE3F,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KACnC1F,aAAc,CAAE5F,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACnCzF,eAAgB,CAAE7F,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACrCxF,eAAgB,CAAE9F,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACrCvF,eAAgB,CAAE/F,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACrCtF,YAAa,CAAEhG,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAClCrF,KAAM,CAAEjG,EAAG,EAAGqL,EAAG,IAAKC,EAAG,GACzBpF,UAAW,CAAElG,EAAG,GAAIqL,EAAG,IAAKC,EAAG,IAC/BnF,MAAO,CAAEnG,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BlF,QAAS,CAAEpG,EAAG,IAAKqL,EAAG,EAAGC,EAAG,KAC5BjF,OAAQ,CAAErG,EAAG,IAAKqL,EAAG,EAAGC,EAAG,GAC3BhF,iBAAkB,CAAEtG,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACvC/E,WAAY,CAAEvG,EAAG,EAAGqL,EAAG,EAAGC,EAAG,KAC7B9E,aAAc,CAAExG,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KAClC7E,aAAc,CAAEzG,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACnC5E,eAAgB,CAAE1G,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KACpC3E,gBAAiB,CAAE3G,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACtC1E,kBAAmB,CAAE5G,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KACtCzE,gBAAiB,CAAE7G,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KACrCxE,gBAAiB,CAAE9G,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KACrCvE,aAAc,CAAE/G,EAAG,GAAIqL,EAAG,GAAIC,EAAG,KACjCtE,UAAW,CAAEhH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCrE,UAAW,CAAEjH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCpE,SAAU,CAAElH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/BnE,YAAa,CAAEnH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAClClE,KAAM,CAAEpH,EAAG,EAAGqL,EAAG,EAAGC,EAAG,KACvBjE,QAAS,CAAErH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9BhE,MAAO,CAAEtH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GAC5B/D,UAAW,CAAEvH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAChC9D,OAAQ,CAAExH,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GAC7B7D,UAAW,CAAEzH,EAAG,IAAKqL,EAAG,GAAIC,EAAG,GAC/B5D,OAAQ,CAAE1H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC7B3D,cAAe,CAAE3H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACpC1D,UAAW,CAAE5H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCzD,cAAe,CAAE7H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACpCxD,cAAe,CAAE9H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACpCvD,WAAY,CAAE/H,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCtD,UAAW,CAAEhI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCrD,KAAM,CAAEjI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IAC3BpD,KAAM,CAAElI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3BnD,KAAM,CAAEnI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3BlD,WAAY,CAAEpI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCjD,OAAQ,CAAErI,EAAG,IAAKqL,EAAG,EAAGC,EAAG,KAC3B/C,IAAK,CAAEvI,EAAG,IAAKqL,EAAG,EAAGC,EAAG,GACxB9C,UAAW,CAAExI,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChC7C,UAAW,CAAEzI,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KAC/B5C,YAAa,CAAE1I,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IACjC3C,OAAQ,CAAE3I,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC7B1C,WAAY,CAAE5I,EAAG,IAAKqL,EAAG,IAAKC,EAAG,IACjCzC,SAAU,CAAE7I,EAAG,GAAIqL,EAAG,IAAKC,EAAG,IAC9BxC,SAAU,CAAE9I,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC/BvC,OAAQ,CAAE/I,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC5BtC,OAAQ,CAAEhJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC7BrC,QAAS,CAAEjJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9BpC,UAAW,CAAElJ,EAAG,IAAKqL,EAAG,GAAIC,EAAG,KAC/BnC,UAAW,CAAEnJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChClC,UAAW,CAAEpJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAChCjC,KAAM,CAAErJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC3BhC,YAAa,CAAEtJ,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KAChC/B,UAAW,CAAEvJ,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KAC/B9B,IAAK,CAAExJ,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC1B7B,KAAM,CAAEzJ,EAAG,EAAGqL,EAAG,IAAKC,EAAG,KACzB5B,QAAS,CAAE1J,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC9B3B,OAAQ,CAAE3J,EAAG,IAAKqL,EAAG,GAAIC,EAAG,IAC5BwlD,YAAa,CACX9wD,EAAG,IACHqL,EAAG,IACHC,EAAG,IACHe,EAAG,GAELzC,UAAW,CAAE5J,EAAG,GAAIqL,EAAG,IAAKC,EAAG,KAC/BzB,OAAQ,CAAE7J,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC7BxB,MAAO,CAAE9J,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BvB,MAAO,CAAE/J,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KAC5BtB,WAAY,CAAEhK,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KACjCrB,OAAQ,CAAEjK,EAAG,IAAKqL,EAAG,IAAKC,EAAG,GAC7BpB,YAAa,CAAElK,EAAG,IAAKqL,EAAG,IAAKC,EAAG,KC1I9BlB,GAAM,0CAEN2mD,GAAO,wDACPpkD,GAAM,8CACNqkD,GAAW,qCACXC,GAAM,4EACNC,GAAO,0FACP58C,GAAQ1I,KAAK0I,MACbzI,GAAQD,KAAKC,MAgBbslD,GAAQx4C,GAAMC,OACoD,CACpE5f,OACE,IAIIe,EACAkS,EACAmlD,EACAllD,EACAwD,EACA1B,EACAqjD,EACArhD,EACAshD,EACAxhD,EACA62C,EACA4K,EAfAvxD,EAAI,EACJqL,EAAI,EACJC,EAAI,EACJe,EAAI,EAgBR,GAFAhS,KAAKm3D,UAAW,EAEZ3kD,UAAU,aAAcskD,GAC1BnxD,EAAI6M,UAAU,GAAG4kD,GACjBpmD,EAAIwB,UAAU,GAAG6kD,GACjBpmD,EAAIuB,UAAU,GAAG8kD,GACjBtlD,EAAIQ,UAAU,GAAG+kD,GACjBv3D,KAAKm3D,SAAW3kD,UAAU,GAAG2kD,cACxB,GAAI3kD,UAAUjC,OAAS,EAC5B,GAA4B,iBAAjBiC,UAAU,GAGnB,GAFA0kD,EAAc1kD,UAAU,GAEnB85C,EAAU,4DAA4Dh8C,KAAK4mD,GAC9EvxD,EAAI6K,SAAS87C,EAAQ,GAAI,IACzBt7C,EAAIR,SAAS87C,EAAQ,GAAI,IACzBr7C,EAAIT,SAAS87C,EAAQ,GAAI,SACpB,GACJA,EAAU,gFAAgFh8C,KACzF4mD,GAIFvxD,EAAI6K,SAAS87C,EAAQ,GAAI,IACzBt7C,EAAIR,SAAS87C,EAAQ,GAAI,IACzBr7C,EAAIT,SAAS87C,EAAQ,GAAI,IACzBt6C,EAAIgiB,WAAWs4B,EAAQ,SAClB,GAAKA,EAAU,8CAA8Ch8C,KAAK4mD,GAEvEvxD,EAAI6K,SAAS87C,EAAQ,GAAI,IACzBt7C,EAAIR,SAAS87C,EAAQ,GAAI,IACzBr7C,EAAIT,SAAS87C,EAAQ,GAAI,IACzBt6C,EAAI,OACC,GAAKs6C,EAAU,qCAAqCh8C,KAAK4mD,GAE9DvxD,EAAI6K,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,IACtCt7C,EAAIR,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,IACtCr7C,EAAIT,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,IACtCt6C,EAAI,OACC,GACJs6C,EAAU,4EAA4Eh8C,KAAK4mD,GAC5F,CAqBA,OAnBAx3D,EAAIs0B,WAAWs4B,EAAQ,IACvB16C,EAAIoiB,WAAWs4B,EAAQ,IACvBz6C,EAAImiB,WAAWs4B,EAAQ,IAEvB5sD,GAAK,IACLkS,GAAK,IACLC,GAAK,IAELnS,EAAIA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,EAChCkS,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAC5BC,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAE5B8B,EAAI9B,GAAK,GAAM,EAAIA,EAAID,GAAK,EAAI,EAAIC,GAAKD,EACzColD,EAAKt3D,EAAI,GACTiW,EAAIhC,GAAK,EAAIpC,KAAKiJ,IAAKw8C,EAAK,EAAK,IAEjCC,EAAO,GAEPD,EAAKzlD,KAAK0I,MAAM+8C,GACRA,GACN,KAAK,EACHC,EAAO,CAACtjD,EAAGgC,EAAG,GACd,MACF,KAAK,EACHshD,EAAO,CAACthD,EAAGhC,EAAG,GACd,MACF,KAAK,EACHsjD,EAAO,CAAC,EAAGtjD,EAAGgC,GACd,MACF,KAAK,EACHshD,EAAO,CAAC,EAAGthD,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACthD,EAAG,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACtjD,EAAG,EAAGgC,GACd,MACF,QACEshD,EAAO,CAAC,EAAG,EAAG,GAGlBxhD,EAAI5D,EAAI,GAAM8B,EAEdhO,EAAIsxD,EAAK,GAAKxhD,EACdzE,EAAIimD,EAAK,GAAKxhD,EACdxE,EAAIgmD,EAAK,GAAKxhD,EAEd9P,EAAI6L,GAAM,IAAM7L,GAChBqL,EAAIQ,GAAM,IAAMR,GAChBC,EAAIO,GAAM,IAAMP,GAChBe,EAAI,OACC,GACJs6C,EAAU,0FAA0Fh8C,KACnG4mD,GAEF,CAsBA,OApBAx3D,EAAIs0B,WAAWs4B,EAAQ,IACvB16C,EAAIoiB,WAAWs4B,EAAQ,IACvBz6C,EAAImiB,WAAWs4B,EAAQ,IACvBt6C,EAAIgiB,WAAWs4B,EAAQ,IAEvB5sD,GAAK,IACLkS,GAAK,IACLC,GAAK,IAELnS,EAAIA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,EAChCkS,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAC5BC,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAE5B8B,EAAI9B,GAAK,GAAM,EAAIA,EAAID,GAAK,EAAI,EAAIC,GAAKD,EACzColD,EAAKt3D,EAAI,GACTiW,EAAIhC,GAAK,EAAIpC,KAAKiJ,IAAKw8C,EAAK,EAAK,IAEjCC,EAAO,GAEPD,EAAKzlD,KAAK0I,MAAM+8C,GACRA,GACN,KAAK,EACHC,EAAO,CAACtjD,EAAGgC,EAAG,GACd,MACF,KAAK,EACHshD,EAAO,CAACthD,EAAGhC,EAAG,GACd,MACF,KAAK,EACHsjD,EAAO,CAAC,EAAGtjD,EAAGgC,GACd,MACF,KAAK,EACHshD,EAAO,CAAC,EAAGthD,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACthD,EAAG,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACtjD,EAAG,EAAGgC,GACd,MACF,QACEshD,EAAO,CAAC,EAAG,EAAG,GAGlBxhD,EAAI5D,EAAI,GAAM8B,EAEdhO,EAAIsxD,EAAK,GAAKxhD,EACdzE,EAAIimD,EAAK,GAAKxhD,EACdxE,EAAIgmD,EAAK,GAAKxhD,EAEd9P,EAAI6L,GAAM,IAAM7L,GAChBqL,EAAIQ,GAAM,IAAMR,GAChBC,EAAIO,GAAM,IAAMP,QACX,GACJq7C,EAAU,4EAA4Eh8C,KAAK4mD,GAC5F,CAqBA,OAnBAx3D,EAAIs0B,WAAWs4B,EAAQ,IACvB16C,EAAIoiB,WAAWs4B,EAAQ,IACvBj3C,EAAI2e,WAAWs4B,EAAQ,IAEvB5sD,GAAK,IACLkS,GAAK,IACLyD,GAAK,IAEL3V,EAAIA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,EAChCkS,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAC5ByD,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAE5B1B,EAAI0B,EAAIzD,EACRolD,EAAKt3D,EAAI,GACTiW,EAAIhC,GAAK,EAAIpC,KAAKiJ,IAAKw8C,EAAK,EAAK,IAEjCC,EAAO,GAEPD,EAAKzlD,KAAK0I,MAAM+8C,GACRA,GACN,KAAK,EACHC,EAAO,CAACtjD,EAAGgC,EAAG,GACd,MACF,KAAK,EACHshD,EAAO,CAACthD,EAAGhC,EAAG,GACd,MACF,KAAK,EACHsjD,EAAO,CAAC,EAAGtjD,EAAGgC,GACd,MACF,KAAK,EACHshD,EAAO,CAAC,EAAGthD,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACthD,EAAG,EAAGhC,GACd,MACF,KAAK,EACHsjD,EAAO,CAACtjD,EAAG,EAAGgC,GACd,MACF,QACEshD,EAAO,CAAC,EAAG,EAAG,GAGlBxhD,EAAIJ,EAAI1B,EAERhO,EAAIsxD,EAAK,GAAKxhD,EACdzE,EAAIimD,EAAK,GAAKxhD,EACdxE,EAAIgmD,EAAK,GAAKxhD,EAEd9P,EAAI6L,GAAM,IAAM7L,GAChBqL,EAAIQ,GAAM,IAAMR,GAChBC,EAAIO,GAAM,IAAMP,GAChBe,EAAI,OACKwlD,GAAUN,EAAY7mD,gBAC/B0mD,EAAMG,EAAY7mD,cAClB1K,EAAI6xD,GAAUT,GAAKpxD,EACnBqL,EAAIwmD,GAAUT,GAAK/lD,EACnBC,EAAIumD,GAAUT,GAAK9lD,EACnBe,EAAgC,iBAArBwlD,GAAUT,GAAK/kD,EAAiBwlD,GAAUT,GAAK/kD,EAAI,GAE9DhS,KAAKm3D,UAAW,MAEe,iBAAjB3kD,UAAU,IAAmBA,UAAU,IAAM,GAAsB,SAAjBA,UAAU,IAC5ER,GAAK,WAAaQ,UAAU,MAAQ,GACpCR,GAAK,IACLrM,GAAK,SAAW6M,UAAU,KAAO,GACjCxB,GAAK,MAAWwB,UAAU,KAAO,EACjCvB,EAAI,IAAWuB,UAAU,IACQ,iBAAjBA,UAAU,IAAmBA,UAAU,IAAM,GAC7D7M,GAAK,SAAW6M,UAAU,KAAO,GACjCxB,GAAK,MAAWwB,UAAU,KAAO,EACjCvB,EAAI,IAAWuB,UAAU,IAEzBxS,KAAKm3D,UAAW,OAET3kD,UAAUjC,QAAU,GAC7B5K,EAAI6M,UAAU,GACdxB,EAAIwB,UAAU,GACdvB,EAAIuB,UAAU,GACdR,EAAIQ,UAAUjC,QAAU,EAAIiC,UAAU,GAAK,GAE3CxS,KAAKm3D,UAAW,EAGdhjD,OAAO7C,OAAO3L,EAAIqL,EAAIC,EAAIe,KAC5BhS,KAAKm3D,UAAW,GAGlBn3D,KAAKo3D,GAAKn9C,GAAMtU,GAChB3F,KAAKq3D,GAAKp9C,GAAMjJ,GAChBhR,KAAKs3D,GAAKr9C,GAAMhJ,GAChBjR,KAAKu3D,GAAKvlD,EAGVhS,KAAKy3D,QAAU,IAEjBC,YACE,OAAO13D,KAAKm3D,UAMdQ,SAAS3lD,GACPhS,KAAKu3D,GAAKvlD,EACVhS,KAAKy3D,QAAU,IAMjBG,WACE,OAAO53D,KAAKu3D,IAMdM,MAAO,WAIL,OAHK73D,KAAKy3D,QAAQ1nD,MAChB/P,KAAKy3D,QAAQ1nD,IAAM+mD,GAAMe,MAAM73D,OAE1BA,KAAKy3D,QAAQ1nD,KAMtB+nD,OAAQ,WAIN,OAHK93D,KAAKy3D,QAAQf,OAChB12D,KAAKy3D,QAAQf,KAAOI,GAAMgB,OAAO93D,OAE5BA,KAAKy3D,QAAQf,MAEtBjlD,WAIE,OAHKzR,KAAKy3D,QAAQ1nD,MAChB/P,KAAKy3D,QAAQ1nD,IAAM+mD,GAAMe,MAAM73D,OAE1BA,KAAKy3D,QAAQ1nD,KAMtBgoD,MAAO,WAIL,OAHK/3D,KAAKy3D,QAAQnlD,MAChBtS,KAAKy3D,QAAQnlD,IAAMwkD,GAAMiB,MAAM/3D,OAE1BA,KAAKy3D,QAAQnlD,KAOtB0lD,MAAO,SAAeC,GAIpB,OAHKj4D,KAAKy3D,QAAQb,MAChB52D,KAAKy3D,QAAQb,IAAME,GAAMkB,MAAMh4D,KAAMi4D,IAEhCj4D,KAAKy3D,QAAQb,KAOtBsB,OAAQ,SAAgBD,GAItB,OAHKj4D,KAAKy3D,QAAQZ,OAChB72D,KAAKy3D,QAAQZ,KAAOC,GAAMoB,OAAOl4D,KAAMi4D,IAElCj4D,KAAKy3D,QAAQZ,MAOtBsB,QACE,MAAMC,EAAUp4D,KAAKq4D,kBACrB,MAAQ,OAAMD,EAAQ14D,KAAK04D,EAAQxmD,KAAKwmD,EAAQ/iD,MAOlDgjD,gBAAiB,WAIf,OAHKr4D,KAAKy3D,QAAQW,UAChBp4D,KAAKy3D,QAAQW,QAAUtB,GAAMuB,gBAAgBr4D,OAExCA,KAAKy3D,QAAQW,SAMtBE,SAAU,WAIR,OAHKt4D,KAAKy3D,QAAQ3qB,MAChB9sC,KAAKy3D,QAAQ3qB,IAAMgqB,GAAMwB,SAASt4D,OAE7BA,KAAKy3D,QAAQ3qB,KAMtByrB,SACE,OAAOv4D,KAAK03D,aAAe13D,KAAKw4D,eAAiB,KAOnDA,eASE,YAP0B,IAAfx4D,KAAKy4D,QAGdz4D,KAAKy4D,MAAQ,KAAQz4D,KAAKo3D,GAAK,KAAQp3D,KAAKq3D,GAAK,KAAQr3D,KAAKs3D,IAIzDt3D,KAAKy4D,OAOdC,eAAe5jD,GACb,MAAM6jD,EAAQ34D,KAAKk4D,SACb5L,EAAU,0FAA0Fh8C,KACxGqoD,GAGIj5D,EAAIs0B,WAAWs4B,EAAQ,IACvB16C,EAAIoiB,WAAWs4B,EAAQ,IAC7B,IAAIz6C,EAAImiB,WAAWs4B,EAAQ,IAC3B,MAAMt6C,EAAIgiB,WAAWs4B,EAAQ,IAU7B,OAPAz6C,GAAKiD,EACLjD,EAAIN,KAAKxN,IAAI,EAAGwN,KAAKvN,IAAI6N,EAAG,MAMpB,QAAOnS,KAAKkS,KAAKC,KAAKG,MAOhC4mD,QAAQjlD,GACN,OAAIA,aAAamjD,KAIjBnjD,EAAI,IAAImjD,GAAMnjD,IAHL3T,KAAKo3D,KAAOzjD,EAAEyjD,IAAMp3D,KAAKq3D,KAAO1jD,EAAE0jD,IAAMr3D,KAAKs3D,KAAO3jD,EAAE2jD,IAYjEuB,MAAMC,EAAIzzD,GAMR,MAAQ,QAAO,CALL4U,GAAMja,KAAKo3D,IAAM0B,EAAG1B,GAAKp3D,KAAKo3D,IAAM/xD,GACpC4U,GAAMja,KAAKq3D,IAAMyB,EAAGzB,GAAKr3D,KAAKq3D,IAAMhyD,GACpC4U,GAAMja,KAAKs3D,IAAMwB,EAAGxB,GAAKt3D,KAAKs3D,IAAMjyD,GACpC4U,GAAMja,KAAKu3D,IAAMuB,EAAGvB,GAAKv3D,KAAKu3D,IAAMlyD,IAElBmQ,KAAK,SAGnCujD,mBAAmB1jD,SACPiN,IAANjN,GAAmBlB,OAAO7C,OAAO+D,MACnCA,EAAI,GAEN,MAAM2jD,EAAOh5D,KAAKw4D,eACZS,EAAkBj5D,KAAKq3D,GAAK,IAAM,EAAI,EAAIr3D,KAAKq3D,GAAK,IACpD6B,EAAcl5D,KAAK04D,eACmE,IAAzFM,EAAOC,EAAkB,IAAM,GAAW,GAAKD,EAAO,GAAjB,IAAyB,GAAWA,EAAO,IAAZ,IAA0B3jD,GAGjG,OAAO,IAAIyhD,GAAMoC,MAUvBpC,GAAMe,MAAQ,SAAelkD,GAC3B,GAAIA,aAAamjD,GACf,MAAQ,OAAM,CAACnjD,EAAEyjD,GAAIzjD,EAAE0jD,GAAI1jD,EAAE2jD,IAAI9hD,KAAK,QAGvB,iBAAN7B,IACTA,EAAImjD,GAAMwB,SAAS3kD,IAOrB,MAAQ,QAJO,SAAJA,IAAiB,OACb,MAAJA,IAAiB,KACd,IAAJA,MAUZmjD,GAAMgB,OAAS,SAAenkD,EAAG3B,GAC/B,GAAI2B,aAAamjD,GACf,MAAQ,QAAO,CAACnjD,EAAEyjD,GAAIzjD,EAAE0jD,GAAI1jD,EAAE2jD,QAAiB,IAANtlD,EAAoBA,EAAI2B,EAAE4jD,IAAI/hD,KAAK,QAG7D,iBAAN7B,IACTA,EAAImjD,GAAMwB,SAAS3kD,IAOrB,MAAQ,SAJO,SAAJA,IAAiB,OACb,MAAJA,IAAiB,KACd,IAAJA,UAEiC,IAAN3B,EAAoBA,EAAI2B,EAAE4jD,OAOjET,GAAMiB,MAAQ,SAAepkD,GAC3B,IAAIhO,EACAqL,EACAC,EACJ,OAAI0C,aAAamjD,IACfnxD,EAAIgO,EAAEyjD,GAAG3lD,SAAS,IAClBT,EAAI2C,EAAE0jD,GAAG5lD,SAAS,IAClBR,EAAI0C,EAAE2jD,GAAG7lD,SAAS,IACD,IAAb9L,EAAE4K,SACJ5K,EAAK,IAAGA,GAEO,IAAbqL,EAAET,SACJS,EAAK,IAAGA,GAEO,IAAbC,EAAEV,SACJU,EAAK,IAAGA,GAEF,IAAG,CAACtL,EAAGqL,EAAGC,GAAGuE,KAAK,MAGX,iBAAN7B,IACTA,EAAImjD,GAAMwB,SAAS3kD,IAGrBhO,IAAU,SAAJgO,IAAiB,IAAIlC,SAAS,IACpCT,IAAU,MAAJ2C,IAAiB,GAAGlC,SAAS,IACnCR,GAAS,IAAJ0C,GAAclC,SAAS,IAEX,IAAb9L,EAAE4K,SACJ5K,EAAK,IAAGA,GAEO,IAAbqL,EAAET,SACJS,EAAK,IAAGA,GAEO,IAAbC,EAAEV,SACJU,EAAK,IAAGA,GAGF,IAAGtL,IAAIqL,IAAIC,MAQrB6lD,GAAMkB,MAAQ,SAAUrkD,EAAGskD,GACzB,IACIrmD,EACAC,EACAsnD,EAHAz5D,EAAI,EAIS,iBAANiU,IACTA,EAAI,IAAImjD,GAAMnjD,IAIhB,MAAMhO,EAAIgO,EAAEyjD,GAAK,IACXpmD,EAAI2C,EAAE0jD,GAAK,IACXpmD,EAAI0C,EAAE2jD,GAAK,IAEXvzD,EAAMwN,KAAKxN,IAAI4B,EAAGqL,EAAGC,GACrBjN,EAAMuN,KAAKvN,IAAI2B,EAAGqL,EAAGC,GAS3B,GALEY,EAHEomD,EAGE,IAAOtyD,EAAI,IAAOqL,EAAI,IAAOC,GAE5BlN,EAAMC,GAAO,EAGhBD,IAAQC,EAEV4N,EAAI,EACJlS,EAAI,MACC,CAGL,OAFAy5D,EAAKp1D,EAAMC,EACX4N,EAAIC,EAAI,GAAMsnD,GAAM,EAAIp1D,EAAMC,GAAOm1D,GAAMp1D,EAAMC,GACzCD,GACN,KAAK4B,EACHjG,GAAKsR,EAAIC,GAAKkoD,GAAMnoD,EAAIC,EAAI,EAAI,GAChC,MACF,KAAKD,EACHtR,GAAKuR,EAAItL,GAAKwzD,EAAK,EACnB,MACF,KAAKloD,EACHvR,GAAKiG,EAAIqL,GAAKmoD,EAAK,EAKvBz5D,GAAK,EAGP,MAAQ,OAAU,IAAJA,KAAe,IAAJkS,KAAe,IAAJC,MAQtCilD,GAAMoB,OAAS,SAAUvkD,EAAGskD,GAC1B,IACIrmD,EACAC,EACAsnD,EAHAz5D,EAAI,EAIS,iBAANiU,IACTA,EAAI,IAAImjD,GAAMnjD,IAIhB,MAAMhO,EAAIgO,EAAEyjD,GAAK,IACXpmD,EAAI2C,EAAE0jD,GAAK,IACXpmD,EAAI0C,EAAE2jD,GAAK,IACXtlD,EAAI2B,EAAE4jD,GAENxzD,EAAMwN,KAAKxN,IAAI4B,EAAGqL,EAAGC,GACrBjN,EAAMuN,KAAKvN,IAAI2B,EAAGqL,EAAGC,GAS3B,GALEY,EAHEomD,EAGE,IAAOtyD,EAAI,IAAOqL,EAAI,IAAOC,GAE5BlN,EAAMC,GAAO,EAGhBD,IAAQC,EAEV4N,EAAI,EACJlS,EAAI,MACC,CAGL,OAFAy5D,EAAKp1D,EAAMC,EACX4N,EAAIC,EAAI,GAAMsnD,GAAM,EAAIp1D,EAAMC,GAAOm1D,GAAMp1D,EAAMC,GACzCD,GACN,KAAK4B,EACHjG,GAAKsR,EAAIC,GAAKkoD,GAAMnoD,EAAIC,EAAI,EAAI,GAChC,MACF,KAAKD,EACHtR,GAAKuR,EAAItL,GAAKwzD,EAAK,EACnB,MACF,KAAKloD,EACHvR,GAAKiG,EAAIqL,GAAKmoD,EAAK,EAKvBz5D,GAAK,EAGP,MAAQ,QAAW,IAAJA,KAAe,IAAJkS,KAAe,IAAJC,KAAWG,MAOlD8kD,GAAMuB,gBAAkB,SAAU1kD,GAChC,IACI/B,EACAunD,EAFAz5D,EAAI,EAGS,iBAANiU,IACTA,EAAI,IAAImjD,GAAMnjD,IAIhB,MAAMhO,EAAIgO,EAAEyjD,GAAK,IACXpmD,EAAI2C,EAAE0jD,GAAK,IACXpmD,EAAI0C,EAAE2jD,GAAK,IAEXvzD,EAAMwN,KAAKxN,IAAI4B,EAAGqL,EAAGC,GACrBjN,EAAMuN,KAAKvN,IAAI2B,EAAGqL,EAAGC,GAErBoE,EAAItR,EAEV,GAAIA,IAAQC,EAEV4N,EAAI,EACJlS,EAAI,MACC,CAGL,OAFAy5D,EAAKp1D,EAAMC,EACX4N,EAAW,IAAPunD,EAAW,EAAIA,EAAK9jD,EAChBtR,GACN,KAAK4B,EACHjG,GAAKsR,EAAIC,GAAKkoD,GAAMnoD,EAAIC,EAAI,EAAI,GAChC,MACF,KAAKD,EACHtR,GAAKuR,EAAItL,GAAKwzD,EAAK,EACnB,MACF,KAAKloD,EACHvR,GAAKiG,EAAIqL,GAAKmoD,EAAK,EAKvBz5D,GAAK,EAGP,MAAO,CAAEA,EAAQ,IAAJA,EAAW,IAAKkS,EAAO,IAAJA,EAASyD,EAAO,IAAJA,IAO9CyhD,GAAMwB,SAAW,WACf,GAAyB,IAArB9lD,UAAUjC,QAAgBiC,UAAU,aAAcskD,GACpD,OAAQtkD,UAAU,GAAG4kD,IAAM,KAAO5kD,UAAU,GAAG6kD,IAAM,GAAK7kD,UAAU,GAAG8kD,GAGzE,IAGIhL,EACA4K,EAJAvxD,EAAI,EACJqL,EAAI,EACJC,EAAI,EAuBR,OAnByB,IAArBuB,UAAUjC,QACgB,iBAAjBiC,UAAU,KACnB0kD,EAAc1kD,UAAU,IAEnB85C,EAAU,0CAA0Ch8C,KAAK4mD,KAC5DvxD,EAAI6K,SAAS87C,EAAQ,GAAI,IACzBt7C,EAAIR,SAAS87C,EAAQ,GAAI,IACzBr7C,EAAIT,SAAS87C,EAAQ,GAAI,MACfA,EAAU,8CAA8Ch8C,KAAK4mD,KACvEvxD,EAAI6K,SAAS87C,EAAQ,GAAI,IACzBt7C,EAAIR,SAAS87C,EAAQ,GAAI,IACzBr7C,EAAIT,SAAS87C,EAAQ,GAAI,MACfA,EAAU,qCAAqCh8C,KAAK4mD,MAC9DvxD,EAAI6K,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,IACtCt7C,EAAIR,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,IACtCr7C,EAAIT,SAAS87C,EAAQ,GAAKA,EAAQ,GAAI,OAIpC3mD,GAAK,KAAOqL,GAAK,GAAKC,GAEhC6lD,GAAM+B,MAAQ,SAAeO,EAAIN,EAAIzzD,GAInC,MAAMg0D,GAAW,UAHjBD,EAAKtC,GAAMwB,SAASc,MAGU,GACxBE,GAAW,MAALF,IAAkB,EACxBG,EAAU,IAALH,EAQX,OAJUC,KAHO,UALjBP,EAAKhC,GAAMwB,SAASQ,MAKU,IAGTO,GAAMh0D,GAId,KAHHi0D,KAHO,MAALR,IAAkB,GAGTQ,GAAMj0D,GAGF,IAFfk0D,IAHM,IAALT,GAGUS,GAAMl0D,IAI7ByxD,GAAM0C,SAAW,SAAkBJ,EAAIN,EAAIzzD,GACzC,MAAMM,EAAIyzD,EAAGhC,IAAM0B,EAAG1B,GAAKgC,EAAGhC,IAAM/xD,EAC9B2L,EAAIooD,EAAG/B,IAAMyB,EAAGzB,GAAK+B,EAAG/B,IAAMhyD,EAC9B4L,EAAImoD,EAAG9B,IAAMwB,EAAGxB,GAAK8B,EAAG9B,IAAMjyD,EAC9B2M,EAAIonD,EAAG7B,IAAMuB,EAAGvB,GAAK6B,EAAG7B,IAAMlyD,EAEpC,OAAO,IAAIyxD,GAAMnxD,EAAGqL,EAAGC,EAAGe,IAE5B8kD,GAAM2C,WAAa,SAAU94D,GAC3B,QAAI6R,UAAUjC,OAAS,GAAsB,iBAAV5P,KAIjCoP,GAAIyI,KAAK7X,IACT+1D,GAAKl+C,KAAK7X,IACV2R,GAAIkG,KAAK7X,IACTg2D,GAASn+C,KAAK7X,IACdi2D,GAAIp+C,KAAK7X,IACTk2D,GAAKr+C,KAAK7X,IACV62D,GAAU72D,EAAM0P,iBAIpBymD,GAAM4C,gBAAkB,SAAU/4D,EAAOg5D,EAAIC,GAC3C,MAAMC,EAAMl5D,EAAM63D,eAClB,OAAOjnD,KAAKiJ,IAAIq/C,EAAMF,EAAGnB,gBAAkBjnD,KAAKiJ,IAAIq/C,EAAMD,EAAGpB,gBAAkBmB,EAAKC,GAGtF9C,GAAMgD,YAAc,SAAUC,EAAQC,GACpC,IAAKD,IAAWC,EACd,OAGF,MAAMC,EAAKF,EAAOvB,eAAiB,IAC7B0B,EAAKF,EAAOxB,eAAiB,IAEnC,OAAIyB,EAAKC,GACCD,EAAK,MAASC,EAAK,MAGrBA,EAAK,MAASD,EAAK,MAG7BnD,GAAMyB,OAAS,WACb,MAAMzmD,EAAI,CACR0mD,aAAc1B,GAAMvxD,UAAUizD,aAC9Bd,UAAWZ,GAAMvxD,UAAUmyD,WAG7B,OADAZ,GAAMvxD,UAAU5G,KAAKogB,MAAMjN,EAAG,GAAGkG,MAAMmG,KAAK3L,YACrCskD,GAAMvxD,UAAUgzD,OAAOp6C,KAAKrM,IAGrCglD,GAAMqD,aAAe,SAAUC,EAAWC,GACxC,OAAOD,EAAU7C,GAAK,IAAO6C,EAAU7B,UAAY8B,GCz1BrD,MAAMC,GAAa,CACjBC,kBAAmB,oBACnBC,kBAAmB,0BACnBC,WAAY,OACZC,UAAW,OACXC,MAAO,OACPC,MAAO,OAEPC,WAAWl6D,GACT,MAAMm6D,EAAW,IAAIhE,GAAMn2D,GAG3B,OAAc,IAFAm6D,EAASlD,WAGd53D,KAAK26D,MAEPG,EAASvC,SAAWv4D,KAAK46D,MAAQ56D,KAAK26D,OAG/CI,mBAAmBp6D,GACjB,MAAMm6D,EAAW,IAAIhE,GAAMn2D,GAG3B,OAAc,IAFAm6D,EAASlD,WAGd53D,KAAK06D,UAEP5D,GAAM4C,gBAAgBoB,EAAU,IAAIhE,GAAMwD,GAAWG,YAAa,IAAI3D,GAAMwD,GAAWI,aAGhGhB,gBAAe,CAAC/4D,EAAOo5D,EAAQC,IACtBlD,GAAM4C,gBAAgB,IAAI5C,GAAMn2D,GAAQ,IAAIm2D,GAAMiD,GAAS,IAAIjD,GAAMkD,IAG9EgB,0BAA0Br6D,GACxB,MAAMm6D,EAAW,IAAIhE,GAAMn2D,GAG3B,OAAc,IAFAm6D,EAASlD,YAEM,SAAVj3D,EACVX,KAAKu6D,kBAEPO,EAASvC,SAAWv4D,KAAKw6D,kBAAoBx6D,KAAKu6D,oBCyD7D,MAAMU,GAAY,CAChB7E,eA5FF,SACE8E,EACAp7D,EACAq7D,EACAC,EACAC,EACAC,GAEA,MAAMh6C,MAAEA,GAAU45C,EAAUtiC,YACtB2iC,EAAej6C,EAAMC,oBAAoBzhB,EAAOa,MAAM2C,IAAIC,cAC1DL,EAAUwpD,GAAeE,kBAAkB9sD,GAE3C07D,EAAe,GACfC,EAAe,CACnBN,EAAuBztC,QACvB0tC,EAA2B1tC,QAC3B2tC,EAAyB3tC,SAU3B,OAPIwtC,EAAUQ,gBAAgBjf,SAC5B+e,EAAap9C,KAAKk9C,EAAgBK,IAAIluC,SACtCguC,EAAar9C,KAAKW,MAAM08C,EAAcH,EAAgBK,IAAIjuC,UAG5D8tC,EAAap9C,KAAK+8C,EAAuB1tC,SAElC,CACL9Y,IAAK,aACLhV,SAAU,CACRg8D,IAAK,CACHz5C,KAAMq5C,EACNl6C,OAAQu6C,GAAgBb,mBAAmBQ,GAAcxD,QACzDpqC,YAAa,EACbvL,WAAYy5C,EAAAA,EACZC,WAAYhrD,IACZirD,SAAU,GAEZ3oC,MAAO,CACL5N,MAAO,YACPpkB,IAAK,CACHoiC,MAAO,WACP1T,IAAK,WAGTW,MAAO,CAAEjL,MAAO,WAChBw2C,UAAU,EACV13C,YAAa,YAEfkJ,MAAO,CACLC,QAAS+tC,EACT9tC,QAAS+tC,GAEX92D,KAAM,CACJ4pB,QAAS,CACPH,MAAO,mBACPI,MAAO,CACLgV,MAAO,EACP1T,IAAK,CAAE1B,MAAO,kBACdnE,QAAS,CACPmE,MAAO,iBACPua,OAAQ,QACR7zB,MAAMO,GACGA,EAETuzB,YAAa,QAEfvX,SAAU,CACRjD,MAAO,mBACPtZ,MAAMO,GACGA,EAAEg+B,MAGb/hB,OAAQ,CACNlD,MAAO,mBACPtZ,MAAMO,GACGA,EAAEg+B,KAAOnwC,GAGpB+4D,OAAQ,CAAE7tC,MAAO,oBACjB2c,IAAK,CACH3c,MAAO,mBACPtZ,MAAMO,GACGA,SC7DrB,MAAM85C,GAAQ,CACZiH,eAvBF,SAA6Bt2D,EAAQwhB,GACnC,MAAMi6C,EAAej6C,EAAMC,oBAAoBzhB,EAAOa,MAAM2C,IAAIC,cAEhE,MAAO,CACL5D,SAAU,CACRk0B,QAAS,CACP,CACEE,SAAU,CACRp0B,SAAU,CACRiuB,OAAQ,CACN,CACEqG,WAAY,CAAC,GAAI,CAAE/R,KAAM05C,GAAgBf,WAAWU,eCoCtE,SAASrgB,GAAep7C,GACtB,OAAO09B,GAAS19B,EAAQ,gDAAgD,GAoL1E,MAAMo8D,GAAgB,CACpBjgC,oBAlLF,SAA6Bi/B,EAAWp7D,GACtC,MAAMkgB,EAAQk7C,EAAUl7C,QAElBm8C,EADa3+B,GAAS19B,EAAQ,8BAA+B,IACvCizC,gBAAkB,IACxCzxB,MAAEA,EAAFzc,WAASA,GAAeq2D,EAAUtiC,YAGlC3U,EAAemQ,GAAa1uB,OAAO,SAvD3B,mBAyDZ4b,MAAAA,EACAtB,MAAAA,IAGF,IAAIm7C,EAAyB,GACzBC,EAA6B,GAC7BC,EAA2B,GAC3BH,EAAUkB,kBAAkB3f,SAC9Bye,EAAUkB,kBAAkBxgB,aAE5Buf,EAAyBD,EAAUkB,kBAAkBrhB,WAAW,CAC9D/pB,SAAU,CAAC,UACXrsB,KAAM,CAAC,UACP62C,SAAU,qBAGZ4f,EAA6BF,EAAUkB,kBAAkBrhB,WAAW,CAClE/pB,SAAU,CAAC,oBACXrsB,KAAM,CAAC,UACP62C,SAAU,mBACVN,eAAgBA,GAAep7C,KAGjCu7D,EAA2BH,EAAUkB,kBAAkBrhB,WAAW,CAChES,SAAU,mBACVxqB,SAAU,CAAC,kBACXrsB,KAAM,CAAC,SAGTu2D,EAAUkB,kBAAkBvgB,aAG9B,MAAMyf,EAAkB,CAAEK,IAAK,IAC3BT,EAAUQ,gBAAgBjf,SAC5B6e,EAAgBK,IAAMT,EAAUQ,gBAAgB7gB,MAAM,CACpD52B,aAAAA,EACA2U,YAAasiC,EAAUtiC,YACvBj0B,KAAM,CAAC,IACPqsB,SAAU,CAAC,UACXgsB,aAAc,aACd2B,YAAa,CAAC,WACdN,UAAW,CAAC,UAIhB,MACMqU,EAvER,SAAgC2J,GAC9B,MAAM3J,EAAiB,GAQvB,OAPI2J,GACF3J,EAAea,WAAY,EAC3Bb,EAAeC,WAAY,IAE3BD,EAAea,WAAY,EAC3Bb,EAAeC,WAAY,GAEtBD,EA8DgB4J,CA5FzB,SAAsBx8D,GACpB,MAAMy8D,EACJz8D,EAAO6jD,cACP7jD,EAAO6jD,aAAagY,KACpB77D,EAAO6jD,aAAagY,IAAIrmC,YACxBx1B,EAAO6jD,aAAagY,IAAIrmC,WAAWe,eAC/Bv2B,EAAO6jD,aAAagY,IAAIrmC,WAAWe,oBACnC/T,EACN,QAAKi6C,KAGIA,EAAS,GAAG/jB,QAgFFgkB,CAAa18D,IAG1BwxD,EAAW,CACfG,cAAe,KACfF,iBAAkB2J,EAAUkB,mBAW1Bp8D,KAAKy8D,mBACPz8D,KAAKy8D,kBAAkB5+B,UAEzB79B,KAAKy8D,kBAAoBC,GAAsBh3D,OAAO4rD,EAAU,WAAYtxC,EAX/D,CACXg9B,aAAc,aACd4U,cAAe,SACfW,iBAAkB,KAClBO,qBAAsB,iBACtBY,aAAc,oBAMyEhB,GAEzFzuC,EAAawQ,UAAU,0BAA2B,CAEhDzU,MAAAA,EACAgF,sBAAsB,EACtBV,YAAa,WACbuG,kBAAmBqwC,EAAUkB,kBAAkB3f,OAC/Cn7B,MAAAA,EAGA+E,cAAe,iBACfH,qBAAsB,CACpBrnB,UAAW,CACTsvB,OAAQ,EACRwuC,QAAS,CAAC,KAKd/xC,aAAa,EACbzH,MAAO,CACL4H,SAAU,SACVC,gBAAiB,CAAC,eAIpBW,oBAAoB,EACpBK,aAAc,CACZjB,SAAU,iBACVO,UAAW,SACXC,UAAW,aACXC,WAAY,WAIdS,iBAAiB,EACjBI,UAAW,CACTtB,SAAU,mBACVO,UAAW,SACXL,UAAW,CAAC,UACZM,UAAW,aACXC,WAAY,mBACZR,gBAAiB,CAAC,cAClBc,UAAU,EACVK,cAAe+uC,EAAU/uC,eAE3BG,aAActsB,KAAKy8D,kBAAkBjwC,SAErCrF,gBAAiB,mBACjBC,uBAAwBkvC,GAAeF,eAAet2D,GAGtDqkB,sBAAuBrkB,EAAO+D,YAC9BihB,iBAAkBhlB,EAAO+D,YAAYjE,OAASiF,EAAWI,IAAI,4CAG7Dmf,wBAAyBtkB,EAAO6D,cAChC+iB,sBAAuByvC,GAAcC,eAAet2D,GACpDolB,mBAAoBi3C,EAGpBh4D,UAAWrE,EAAOqE,UAGlBujB,eAAe,EACf4B,sBAAuB,KAAM,EAG7BjlB,SAAUvE,EAAOsE,SAAWtE,EAAOsE,QAAQC,WAG7C,MAAM1E,EAAWskB,EAAa0D,cAGxBi1C,EAAoB3B,GAAU7E,eAClC8E,EACAp7D,EACAq7D,EACAC,EACAC,EACAC,GAIF,GAFAr3C,EAAa4B,aAAa,aAAc+2C,GAEpC98D,EAAO2D,WAAa3D,EAAO2D,UAAUC,WAAY,CACnD,MAAMm5D,EAAmB1N,GAAMiH,eAAet2D,EAAQwhB,GACtD2C,EAAa4B,aAAa,SAAUg3C,GActC,OAVA3B,EAAUx+B,yBAAyB/8B,EAAUG,GAG7CH,EAASqqB,OAAO8yC,iBAAmB,CACjCr7D,KAAM,SACNuC,IAAKrE,EAASqqB,OAAOnC,UAAU7jB,IAC/BD,IAAKpE,EAASqqB,OAAOnC,UAAU9jB,IAC/BqiB,OAAQ,oBAGHzmB,IC5CT,MAAMo9D,GAAgB7iC,GAAU3b,OAAO,YAAa,CAClDy+C,UAnLgB,aAoLhBr+D,KA7KF,UAAci6B,YAAEA,EAAFzV,MAAeA,EAAfgX,QAAsBA,EAAtBC,SAA+BA,EAA/BC,WAAyCA,EAAzCC,cAAqDA,EAArD2iC,YAAoEA,IAChFj9D,KAAK0e,OAAOyb,EAASC,EAAUxB,EAAayB,EAAYC,GAExDt6B,KAAKi9D,YAAcA,EAEnBj9D,KAAK26B,eAAeuiC,wBAA0Bl9D,KAAKmsB,cAAcgxC,WAAWpuB,KAAK/uC,KAAKmsB,eAEtFnsB,KAAKo9D,mBAAqB,IAAIvU,GAE9B7oD,KAAKo8D,kBAAoBtf,GAAiBp3C,OAAO,CAC/CuhD,MAAO5sB,EAAW4sB,MAClB96B,cAAensB,KAAKmsB,cACpBmO,cAAAA,EACAye,YAAa,CAAC,mCACd51B,MAAAA,IAEFnjB,KAAK07D,gBAAkBvY,GAAez9C,OAAO1F,KAAKmsB,cAAeiO,EAtBnD,oBAwBdp6B,KAAK86B,aAAa,CAAC,iCA4JnBuiC,kBAzJF,SAA2BC,GACzB,MAAMjd,GAAWid,EAAYC,QACvBC,GAAaF,EAAY7jB,SAAW6jB,EAAY1kB,OAEtD54C,KAAK07D,gBAAgBrb,EAAU,KAAO,SACtCrgD,KAAKo8D,kBAAkBoB,EAAY,KAAO,UAqJ1C1/B,IAnJF,WACE99B,KAAK07D,gBAAgB59B,MACrB99B,KAAKo8D,kBAAkBt+B,OAkJvB7B,oBAAqB,SAA6Bn8B,GAChD,OAAOo8D,GAAcjgC,oBAAoBj8B,KAAMF,IAEjDm+B,gBAlJF,SAAyBC,GAKvB,OAJAl+B,KAAK0e,OAAOwf,GAEZA,EAAeylB,aAAagY,IAAIrmC,WAAWS,WAAa/1B,KAAKF,OAAO6jD,aAAagY,IAAIrmC,WAAWS,WAEzFwG,QAAQC,QAAQ0B,IA8IvBrC,wBAvIF,SAAiC/7B,GAQ/B,MAAM29D,EAPN,WACE,MAAMrf,EAAO5gB,GAAS19B,EAAQ,mDAAoD,IAGlF,OAAuB,IAAhBs+C,EAAK7tC,QAAgB6tC,EAAK,GAAG,IAAMA,EAAK,GAAG,GAAGsf,QAGnCC,GAEpB,MAAO,CACLh5D,KAAM7E,EAAO6jD,cAAgB7jD,EAAO6jD,aAAagY,IACjDnjC,qBAAsB,CACpBP,aAAa,EACbG,aAAa,EACbD,0BAA2BslC,EAC3B1lC,yBAAyB,GAE3B9W,QAAS,CACP0R,QAAQ,EACRgE,iBAAiB,EACjBO,oBAAqBumC,EACrBzlC,iCA1BuC1C,EA0B8Bx1B,EAAOw1B,WAzBzEA,EAAWe,eAAe9lB,OAAS,IAAiE,IAA5D+kB,EAAWe,eAAe,GAAG4c,MAAMj9B,QAAQ,eAD5F,IAA6Csf,GA4I3C+G,YA7GF,SAAqBv8B,EAAQH,GAC3B,IAAKG,EAAO6jD,aAEV,OAAOpnB,QAAQC,UAEjBx8B,KAAK0e,OAAO5e,EAAQH,IAyGpBo9B,WA3FF,SAAoBj9B,GAClB,MAAMk5B,EAAOh5B,KAEb,OAAOg5B,EAAKta,OAAO5e,GAAQ07B,MAAK,KAC9B,GAAIxC,EAAKgE,WACP,OAAOT,QAAQU,SAEjBn9B,EAASk5B,EAAKl5B,OAEd,MAAMS,EAAO,CACXQ,OAAQwQ,KAAKvN,IAAIlE,EAAOw1B,WAAWC,MAAMC,IAAK,KAC9C10B,MAAO,GAGHmmD,EAAQjuB,EAAKqB,WAAW4sB,MAG9B,QADqBjnD,KAAKF,OAAO88B,aAExBL,QAAQC,UAGVyqB,EAAMY,yBAAyBrsB,MAAMl5B,GACtC02B,EAAKgE,WACAT,QAAQU,SAEVjE,EAAKokC,mBACTjU,wBACC7mD,EAAWE,cACX1C,EAAOw1B,WACP0D,EAAKJ,YAAYorB,IAvC3B,SAAqBlkD,EAAQwC,GAC3B,MAAO,CACLq5D,IAAKr5D,EAAWE,cAChBo7D,YAAalP,GAAkBC,iBAAiB7uD,GAChD+9D,cAAev7D,EAAWS,KAC1Bc,YAAavB,EAAWuB,YACxBtB,QAAS,OAkCHu7D,CAAYh+D,EAAQwC,IAErBk5B,MAAM8nB,IACL,GAAItqB,EAAKgE,WACP,OAAOT,QAAQU,SAEjB,MAAMt9B,EAAW,CACfG,OAAAA,EACAwC,WAAAA,EACA2kD,MAAAA,EACA3D,SAAAA,EACAsF,0BAAyB,CAAC9oD,EAAQwC,IACzBgtD,GAAeC,mBAAmBzvD,EAAQwC,EAAY02B,EAAKJ,cAItE,OAAKI,EAAKokC,mBAAmBrU,kBAAkBppD,GAI1CG,EAAO6jD,cAKZ3qB,EAAKikC,YAAYc,UACjB/kC,EAAKqB,WAAW2jC,YAAYl+D,EAAO6jD,aAAagY,KAEzC3iC,EAAKgC,QAAQhC,EAAKqB,WAAYv6B,EAAO6jD,aAAagY,IAAIrmC,WAAY/0B,IANhEg8B,QAAQC,WALfxD,EAAKikC,YAAYgB,UACVjlC,EAAKokC,mBAAmBnU,wBAAwBtpD,aA4CjEg8B,MA5BF,WACE,MAAMuiC,EAAcl+D,KAAKF,OAAO6jD,aAChC,OAAKua,GAGeA,EAAYvC,KAAOuC,EAAYvC,IAAIrmC,WAAWS,WAAWxlB,OAEpEvQ,KAAK0e,SAJL6d,QAAQC,SAAQ,IA0BzBwB,gBAjBF,WACE,OAAO,KCxLM,MAAMmgC,GACnB34D,YAAYyhD,GACVjnD,KAAKinD,MAAQA,EACbjnD,KAAK8E,KAAO,kCAIds5D,iBAAgBC,iBAAEA,KAGlBL,YAAYlwB,IAEZ9S,QAAQS,GACN,OAAOz7B,KAAKinD,MAAMqX,iBAAiBt+D,KAAK8E,KAAM22B,wBCbuJ8iC,4BAA0B,SAASn5D,GAAG,IAAIO,EAAE,GAAG,SAASL,EAAED,GAAG,GAAGM,EAAEN,GAAG,OAAOM,EAAEN,GAAG4P,QAAQ,IAAInD,EAAEnM,EAAEN,GAAG,CAAC0M,EAAE1M,EAAEwM,GAAE,EAAGoD,QAAQ,IAAI,OAAO7P,EAAEC,GAAG8Y,KAAKrM,EAAEmD,QAAQnD,EAAEA,EAAEmD,QAAQ3P,GAAGwM,EAAED,GAAE,EAAGC,EAAEmD,QAAQ,OAAO3P,EAAEmQ,EAAErQ,EAAEE,EAAEqO,EAAEhO,EAAEL,EAAE3D,EAAE,SAASyD,EAAEO,EAAEN,GAAGC,EAAEwM,EAAE1M,EAAEO,IAAIvD,OAAOsS,eAAetP,EAAEO,EAAE,CAAC4O,YAAW,EAAGtP,IAAII,KAAKC,EAAEK,EAAE,SAASP,GAAG,oBAAoBo5D,QAAQA,OAAOC,aAAar8D,OAAOsS,eAAetP,EAAEo5D,OAAOC,YAAY,CAAC3pD,MAAM,WAAW1S,OAAOsS,eAAetP,EAAE,aAAa,CAAC0P,OAAM,KAAMxP,EAAED,EAAE,SAASD,EAAEO,GAAG,GAAG,EAAEA,IAAIP,EAAEE,EAAEF,IAAI,EAAEO,EAAE,OAAOP,EAAE,GAAG,EAAEO,GAAG,iBAAiBP,GAAGA,GAAGA,EAAEs5D,WAAW,OAAOt5D,EAAE,IAAIC,EAAEjD,OAAOsD,OAAO,MAAM,GAAGJ,EAAEK,EAAEN,GAAGjD,OAAOsS,eAAerP,EAAE,UAAU,CAACkP,YAAW,EAAGO,MAAM1P,IAAI,EAAEO,GAAG,iBAAiBP,EAAE,IAAI,IAAI0M,KAAK1M,EAAEE,EAAE3D,EAAE0D,EAAEyM,EAAE,SAASnM,GAAG,OAAOP,EAAEO,IAAIopC,KAAK,KAAKj9B,IAAI,OAAOzM,GAAGC,EAAEA,EAAE,SAASF,GAAG,IAAIO,EAAEP,GAAGA,EAAEs5D,WAAW,WAAW,OAAOt5D,EAAE+vB,SAAS,WAAW,OAAO/vB,GAAG,OAAOE,EAAE3D,EAAEgE,EAAE,IAAIA,GAAGA,GAAGL,EAAEwM,EAAE,SAAS1M,EAAEO,GAAG,OAAOvD,OAAOmD,UAAUsL,eAAesN,KAAK/Y,EAAEO,IAAIL,EAAE6P,EAAE,eAAe7P,EAAEA,EAAEsM,EAAE,GAA75B,CAAi6B,CAAC,SAASxM,EAAEO,EAAEL,GAAgB,IAAID,EAAEjD,OAAOmD,UAAUsL,eAAeiB,EAAE1P,OAAOmD,UAAUkM,SAASM,EAAE3P,OAAOsS,eAAe1C,EAAE5P,OAAOm8B,yBAAyB3sB,EAAE,SAASxM,GAAG,MAAM,mBAAmBs5B,MAAMF,QAAQE,MAAMF,QAAQp5B,GAAG,mBAAmB0M,EAAEqM,KAAK/Y,IAAI6M,EAAE,SAAS7M,GAAG,IAAIA,GAAG,oBAAoB0M,EAAEqM,KAAK/Y,GAAG,OAAM,EAAG,IAAIO,EAAEL,EAAED,EAAE8Y,KAAK/Y,EAAE,eAAe2M,EAAE3M,EAAEI,aAAaJ,EAAEI,YAAYD,WAAWF,EAAE8Y,KAAK/Y,EAAEI,YAAYD,UAAU,iBAAiB,GAAGH,EAAEI,cAAcF,IAAIyM,EAAE,OAAM,EAAG,IAAIpM,KAAKP,GAAG,YAAO,IAASO,GAAGN,EAAE8Y,KAAK/Y,EAAEO,IAAIkM,EAAE,SAASzM,EAAEO,GAAGoM,GAAG,cAAcpM,EAAEgZ,KAAK5M,EAAE3M,EAAEO,EAAEgZ,KAAK,CAACpK,YAAW,EAAGC,cAAa,EAAGM,MAAMnP,EAAEq5B,SAASvqB,UAAS,IAAKrP,EAAEO,EAAEgZ,MAAMhZ,EAAEq5B,UAAUrrB,EAAE,SAASvO,EAAEO,GAAG,GAAG,cAAcA,EAAE,CAAC,IAAIN,EAAE8Y,KAAK/Y,EAAEO,GAAG,OAAO,GAAGqM,EAAE,OAAOA,EAAE5M,EAAEO,GAAGmP,MAAM,OAAO1P,EAAEO,IAAIP,EAAE6P,QAAQ,SAAS7P,IAAI,IAAIO,EAAEL,EAAED,EAAEyM,EAAEC,EAAEC,EAAEmD,EAAE3C,UAAU,GAAG0C,EAAE,EAAEO,EAAEjD,UAAUjC,OAAO5O,GAAE,EAAG,IAAI,kBAAkBwT,IAAIxT,EAAEwT,EAAEA,EAAE3C,UAAU,IAAI,GAAG0C,EAAE,IAAI,MAAMC,GAAG,iBAAiBA,GAAG,mBAAmBA,KAAKA,EAAE,IAAID,EAAEO,IAAIP,EAAE,GAAG,OAAOvP,EAAE6M,UAAU0C,IAAI,IAAI5P,KAAKK,EAAEN,EAAEsO,EAAEwB,EAAE7P,GAAG6P,KAAKrD,EAAE6B,EAAEhO,EAAEL,MAAM3D,GAAGmQ,IAAIG,EAAEH,KAAKC,EAAEH,EAAEE,MAAMC,GAAGA,GAAE,EAAGC,EAAE3M,GAAGuM,EAAEvM,GAAGA,EAAE,IAAI2M,EAAE3M,GAAG4M,EAAE5M,GAAGA,EAAE,GAAGwM,EAAEsD,EAAE,CAACwJ,KAAKrZ,EAAE05B,SAAS55B,EAAEzD,EAAEqQ,EAAEF,WAAM,IAASA,GAAGD,EAAEsD,EAAE,CAACwJ,KAAKrZ,EAAE05B,SAASltB,KAAK,OAAOqD,IAAI,SAAS/P,EAAEO,EAAEL,GAAUF,EAAE6P,QAAQ,SAAS7P,GAAG,IAAIO,EAAE,GAAG,SAASL,EAAED,GAAG,GAAGM,EAAEN,GAAG,OAAOM,EAAEN,GAAG4P,QAAQ,IAAInD,EAAEnM,EAAEN,GAAG,CAAC0M,EAAE1M,EAAEwM,GAAE,EAAGoD,QAAQ,IAAI,OAAO7P,EAAEC,GAAG8Y,KAAKrM,EAAEmD,QAAQnD,EAAEA,EAAEmD,QAAQ3P,GAAGwM,EAAED,GAAE,EAAGC,EAAEmD,QAAQ,OAAO3P,EAAEmQ,EAAErQ,EAAEE,EAAEqO,EAAEhO,EAAEL,EAAE3D,EAAE,SAASyD,EAAEO,EAAEN,GAAGC,EAAEwM,EAAE1M,EAAEO,IAAIvD,OAAOsS,eAAetP,EAAEO,EAAE,CAAC4O,YAAW,EAAGtP,IAAII,KAAKC,EAAEK,EAAE,SAASP,GAAG,oBAAoBo5D,QAAQA,OAAOC,aAAar8D,OAAOsS,eAAetP,EAAEo5D,OAAOC,YAAY,CAAC3pD,MAAM,WAAW1S,OAAOsS,eAAetP,EAAE,aAAa,CAAC0P,OAAM,KAAMxP,EAAED,EAAE,SAASD,EAAEO,GAAG,GAAG,EAAEA,IAAIP,EAAEE,EAAEF,IAAI,EAAEO,EAAE,OAAOP,EAAE,GAAG,EAAEO,GAAG,iBAAiBP,GAAGA,GAAGA,EAAEs5D,WAAW,OAAOt5D,EAAE,IAAIC,EAAEjD,OAAOsD,OAAO,MAAM,GAAGJ,EAAEK,EAAEN,GAAGjD,OAAOsS,eAAerP,EAAE,UAAU,CAACkP,YAAW,EAAGO,MAAM1P,IAAI,EAAEO,GAAG,iBAAiBP,EAAE,IAAI,IAAI0M,KAAK1M,EAAEE,EAAE3D,EAAE0D,EAAEyM,EAAE,SAASnM,GAAG,OAAOP,EAAEO,IAAIopC,KAAK,KAAKj9B,IAAI,OAAOzM,GAAGC,EAAEA,EAAE,SAASF,GAAG,IAAIO,EAAEP,GAAGA,EAAEs5D,WAAW,WAAW,OAAOt5D,EAAE+vB,SAAS,WAAW,OAAO/vB,GAAG,OAAOE,EAAE3D,EAAEgE,EAAE,IAAIA,GAAGA,GAAGL,EAAEwM,EAAE,SAAS1M,EAAEO,GAAG,OAAOvD,OAAOmD,UAAUsL,eAAesN,KAAK/Y,EAAEO,IAAIL,EAAE6P,EAAE,mBAAmB7P,EAAEA,EAAEsM,EAAE,GAAj6B,CAAq6B,CAAC,SAASxM,EAAEO,EAAEL,GAAgB,IAAID,EAAEjD,OAAOmD,UAAUsL,eAAeiB,EAAE1P,OAAOmD,UAAUkM,SAASM,EAAE3P,OAAOsS,eAAe1C,EAAE5P,OAAOm8B,yBAAyB3sB,EAAE,SAASxM,GAAG,MAAM,mBAAmBs5B,MAAMF,QAAQE,MAAMF,QAAQp5B,GAAG,mBAAmB0M,EAAEqM,KAAK/Y,IAAI6M,EAAE,SAAS7M,GAAG,IAAIA,GAAG,oBAAoB0M,EAAEqM,KAAK/Y,GAAG,OAAM,EAAG,IAAIO,EAAEL,EAAED,EAAE8Y,KAAK/Y,EAAE,eAAe2M,EAAE3M,EAAEI,aAAaJ,EAAEI,YAAYD,WAAWF,EAAE8Y,KAAK/Y,EAAEI,YAAYD,UAAU,iBAAiB,GAAGH,EAAEI,cAAcF,IAAIyM,EAAE,OAAM,EAAG,IAAIpM,KAAKP,GAAG,YAAO,IAASO,GAAGN,EAAE8Y,KAAK/Y,EAAEO,IAAIkM,EAAE,SAASzM,EAAEO,GAAGoM,GAAG,cAAcpM,EAAEgZ,KAAK5M,EAAE3M,EAAEO,EAAEgZ,KAAK,CAACpK,YAAW,EAAGC,cAAa,EAAGM,MAAMnP,EAAEq5B,SAASvqB,UAAS,IAAKrP,EAAEO,EAAEgZ,MAAMhZ,EAAEq5B,UAAUrrB,EAAE,SAASvO,EAAEO,GAAG,GAAG,cAAcA,EAAE,CAAC,IAAIN,EAAE8Y,KAAK/Y,EAAEO,GAAG,OAAO,GAAGqM,EAAE,OAAOA,EAAE5M,EAAEO,GAAGmP,MAAM,OAAO1P,EAAEO,IAAIP,EAAE6P,QAAQ,SAAS7P,IAAI,IAAIO,EAAEL,EAAED,EAAEyM,EAAEC,EAAEC,EAAEmD,EAAE3C,UAAU,GAAG0C,EAAE,EAAEO,EAAEjD,UAAUjC,OAAO5O,GAAE,EAAG,IAAI,kBAAkBwT,IAAIxT,EAAEwT,EAAEA,EAAE3C,UAAU,IAAI,GAAG0C,EAAE,IAAI,MAAMC,GAAG,iBAAiBA,GAAG,mBAAmBA,KAAKA,EAAE,IAAID,EAAEO,IAAIP,EAAE,GAAG,OAAOvP,EAAE6M,UAAU0C,IAAI,IAAI5P,KAAKK,EAAEN,EAAEsO,EAAEwB,EAAE7P,GAAG6P,KAAKrD,EAAE6B,EAAEhO,EAAEL,MAAM3D,GAAGmQ,IAAIG,EAAEH,KAAKC,EAAEH,EAAEE,MAAMC,GAAGA,GAAE,EAAGC,EAAE3M,GAAGuM,EAAEvM,GAAGA,EAAE,IAAI2M,EAAE3M,GAAG4M,EAAE5M,GAAGA,EAAE,GAAGwM,EAAEsD,EAAE,CAACwJ,KAAKrZ,EAAE05B,SAAS55B,EAAEzD,EAAEqQ,EAAEF,WAAM,IAASA,GAAGD,EAAEsD,EAAE,CAACwJ,KAAKrZ,EAAE05B,SAASltB,KAAK,OAAOqD,IAAI,SAAS/P,EAAEO,EAAEL,GAAgBA,EAAEK,EAAEA,GAAG,IAAIN,EAAEC,EAAE,GAAGwM,EAAExM,EAAEA,EAAED,GAAG0M,EAAE,SAAS3M,EAAEO,EAAEL,GAAG,IAAIK,EAAE,OAAM,EAAG,IAAIN,EAAEyM,EAAEnM,EAAEsO,MAAM,KAAKlC,EAAED,EAAEA,EAAEvB,OAAO,GAAGyB,EAAE5M,EAAE,IAAIC,EAAE,EAAEA,EAAEyM,EAAEvB,OAAO,IAAIlL,OAAE,IAAS2M,EAAEF,EAAEzM,MAAM2M,EAAEF,EAAEzM,IAAI8O,OAAO7C,OAAOQ,EAAEzM,EAAE,IAAI,GAAG,IAAI2M,EAAEA,EAAEF,EAAEzM,IAAI,QAAG,IAASC,EAAE,CAAC,IAAIsM,EAAEI,EAAED,GAAG,OAAOC,EAAED,GAAGzM,EAAE,CAACq5D,QAAQr5D,EAAEs5D,SAAShtD,GAAG,cAAcI,EAAED,IAAG,GAAIC,EAAE,SAAS5M,EAAEO,EAAEL,GAAG,IAAID,EAAEyM,EAAEnM,EAAEsO,MAAM,KAAKlC,EAAE3M,EAAE,QAAG,IAAS2M,EAAE,OAAOzM,EAAE,IAAID,EAAE,EAAEA,EAAEyM,EAAEvB,SAASlL,EAAE,CAAC,QAAG,IAAS0M,EAAED,EAAEzM,IAAI,OAAOC,EAAEyM,EAAEA,EAAED,EAAEzM,IAAI,OAAO0M,GAAGH,EAAE,GAAGyG,OAAO,IAAI,KAAKA,OAAO,KAAKpG,EAAE,GAAGoG,OAAO,IAAI,KAAKA,OAAO,KAAK,SAASxG,EAAEzM,GAAG,OAAOwM,EAAExM,EAAE6M,EAAE,SAAS0B,EAAEvO,GAAG,IAAIO,EAAE6M,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAAG,GAAGpN,EAAE8+C,WAAW,CAAC,IAAI5+C,EAAE,SAASF,EAAEO,GAAG,IAAIA,EAAE,OAAO,KAAK,IAAIL,EAAED,EAAE,IAAIC,EAAE,EAAEA,EAAEK,EAAE4K,OAAOjL,IAAI,IAAID,EAAEM,EAAEL,IAAIkhD,MAAMC,MAAMrhD,EAAE,OAAOC,EAAE,OAAO,KAAzG,CAA+GD,EAAE8+C,WAAWv+C,EAAEk5D,eAAe,OAAOv5D,GAAGA,EAAE6wB,MAAM2a,KAAK,GAAGmC,MAAMj9B,QAAQ,aAAa,EAAE,IAAI3Q,EAAE,SAASD,EAAEO,GAAG,IAAIA,EAAE,OAAO,KAAK,IAAIL,EAAED,EAAEyM,EAAE,SAAS1M,GAAG,IAAIO,EAAEP,EAAEgL,OAAO,MAAMzK,EAAEiQ,OAAO,KAAKjQ,GAAGA,EAAEA,EAAE2P,UAAU,IAAIlF,QAAQ,IAAI9K,EAAEK,EAAE4K,OAAO,EAAE,MAAM,MAAM5K,EAAEiQ,OAAO,IAAI,MAAMjQ,EAAEiQ,OAAOtQ,KAAKK,GAAGA,EAAEA,EAAE2P,UAAU,EAAEhQ,IAAI8K,QAAQzK,EAAzK,CAA4KP,GAAG,IAAIE,EAAE,EAAEA,EAAEK,EAAE4K,OAAOjL,IAAI,CAAC,IAAID,EAAEM,EAAEL,IAAIw5D,QAAQhtD,EAAE,OAAOzM,EAAE,GAAGA,EAAE05D,kBAAkB,IAAI,IAAIhtD,EAAE,EAAEA,EAAE1M,EAAE05D,kBAAkBC,mBAAmBzuD,SAASwB,EAAE,IAAI,IAAIC,EAAE3M,EAAE05D,kBAAkBC,mBAAmBjtD,GAAGH,EAAE,EAAEA,EAAEI,EAAE+5C,WAAWx7C,SAASqB,EAAE,CAAC,IAAIK,EAAED,EAAE+5C,WAAWn6C,GAAG,GAAGK,EAAE6sD,QAAQhtD,EAAE,OAAOG,GAAG,OAAO,KAAhf,CAAsf7M,EAAEm/C,KAAKwH,WAAW,GAAGpmD,EAAEs5D,WAAW,OAAO55D,GAAGA,EAAE4tC,MAAMj9B,QAAQ,aAAa,EAAE,SAASb,EAAE/P,GAAG,SAASA,EAAE85D,mBAAmB95D,EAAE+5D,WAAW,SAASjqD,EAAE9P,EAAEO,GAAG,IAAIL,EAAEF,EAAEg6D,mBAAmB,OAAO,IAAIz5D,GAAGL,EAAE,eAAe,UAAU,SAASmQ,EAAErQ,GAAG,IAAIO,EAAE,SAASP,GAAG,OAAOA,GAAGA,EAAE,SAASA,GAAG,OAAOA,EAAE+Q,QAAQ,iBAAiB,IAA9C,CAAmD/Q,EAAE,SAASA,GAAG,OAAOA,EAAE+Q,QAAQ,cAAc,IAA3C,CAAgD/Q,KAAKgL,OAAO,GAAzI,CAA6IhL,GAAGgL,OAAO,MAAM,MAAMzK,EAAE2P,UAAU,EAAE,GAAG3P,EAAE2P,UAAU,GAAGlF,OAAOzK,EAAE,SAAShE,IAAmE,MAAM,8BAA8B0W,OAA7F7F,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,EAA+C,iBAAiB,SAASkD,EAAEtQ,EAAEO,GAAG,IAAIL,EAAEF,EAAEg6D,mBAAmB,OAAO,IAAIz5D,GAAGL,EAAE,eAAe,SAAS,SAASmV,EAAErV,GAAG,YAAO,IAASA,EAAE,IAAI,QAAQiT,OAAOjT,EAAE,KAAK,SAAS6L,EAAE7L,EAAEO,GAAG,OAAOP,EAAE,GAAGiT,OAAO1S,EAAE,gBAAgB0S,OAAO1S,EAAE,eAAe0S,OAAO1S,EAAE,QAAQ,GAAG0S,OAAO1S,EAAE,gBAAgB0S,OAAO1S,EAAE,qBAAqB0S,OAAO1S,EAAE,oBAAoB0S,OAAO1S,EAAE,qBAAqB0S,OAAO1S,EAAE,UAAU,SAASF,EAAEL,GAAG,IAAIO,EAAEP,EAAEi6D,SAAS/5D,OAAE,IAASK,EAAE,GAAGA,EAAEN,EAAED,EAAEL,WAAW+M,EAAE1M,EAAEk6D,sBAAsBvtD,EAAE3M,EAAEm6D,SAASvtD,OAAE,IAASD,EAAE,MAAMA,EAAEH,EAAExM,EAAEo6D,UAAUvtD,OAAE,IAASL,EAAE,IAAIA,EAAE,IAAItM,EAAEm6D,mBAAmB,MAAM,GAAG,GAAGp6D,GAAG,IAAIA,EAAEkL,OAAO,CAAC,IAAIsB,EAAEZ,EAAE0C,EAAEtO,EAAE,GAAGyM,GAAGnQ,EAAE,IAAI,MAAM,GAAG0W,OAAOrG,EAAE,QAAQqG,OAAOxG,EAAE,MAAMwG,OAAOpG,EAAE,KAAK,GAAG5M,GAAG,IAAIA,EAAEkL,OAAO,CAAC,IAAI4E,EAAExB,EAAEtO,EAAE,GAAGyM,GAAGoD,EAAEvB,EAAEtO,EAAE,GAAGyM,GAAG2D,EAAE9T,EAAE,GAAG+T,EAAE/T,EAAE,GAAG8Y,EAAExJ,EAAEkE,EAAEM,GAAGhQ,EAAEwL,EAAEiE,EAAEQ,GAAG,MAAM,GAAG2C,OAAOrG,EAAE,QAAQqG,OAAOoC,EAAE,KAAKpC,OAAO5S,EAAE,MAAM4S,OAAOpG,EAAE,KAAK,MAAM,GAAGoG,OAAOrG,EAAE,QAAQqG,OAAOpG,EAAE,KAAK,SAASoD,EAAEjQ,GAAG,MAAM,GAAGiT,OAAOjT,EAAE,KAAK,SAAS4L,EAAE5L,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAO,OAAOkS,EAAErM,EAAE,4BAA4BqM,EAAE1M,EAAE,4BAA4B,KAAKiL,OAAO,IAAI7Q,EAAE,CAACggE,YAAYvqD,EAAEwqD,iBAAiB3uD,EAAE4uD,8BAA8B,SAASx6D,GAAG,IAAIO,EAAEP,EAAEmkD,WAAWjkD,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAEL,WAAW+M,EAAE1M,EAAEk6D,sBAAsBvtD,EAAE3M,EAAEy6D,mBAAmB7tD,EAAEH,EAAE4D,EAAE9P,IAAI,IAAIL,EAAEm6D,mBAAmB,OAAOztD,EAAE,IAAIJ,EAAEnM,EAAE,CAAC45D,SAAS/5D,EAAEP,WAAWM,EAAEi6D,sBAAsBxtD,IAAIG,EAAEF,EAAE,GAAG,MAAM,GAAG1M,GAAG,IAAIA,EAAEkL,OAAO,CAAC,IAAIoD,EAAEhS,EAAE,GAAG,MAAM,YAAY0W,OAAO1E,EAAE,WAAW0E,OAAOrG,EAAE,OAAOqG,OAAOzG,GAAGyG,OAAOpG,EAAE,KAAK,GAAG5M,GAAG,IAAIA,EAAEkL,OAAO,CAAC,IAAI4E,EAAExT,EAAE,GAAGuT,EAAEvT,EAAE,GAAG,MAAM,YAAY0W,OAAOlD,EAAE,cAAckD,OAAOnD,EAAE,WAAWmD,OAAOrG,EAAE,OAAOqG,OAAOzG,GAAGyG,OAAOpG,EAAE,KAAK,OAAOD,GAAG8tD,aAAa5qD,EAAE6qD,eAAe,SAAS36D,EAAEO,GAAG,IAAIwP,EAAE/P,GAAG,CAAC,IAAIE,EAAEF,EAAE6gC,MAAM,MAAM,iBAAiB3gC,GAAG6O,OAAO7C,MAAMhM,GAAG,EAAEA,EAAE,OAAO4P,EAAE9P,EAAEO,IAAIq6D,mBAAmBtqD,EAAEuqD,mBAAmBxlD,EAAEylD,aAAa,SAAS96D,EAAEO,EAAEL,EAAED,GAAG,OAAOqQ,EAAEtQ,EAAEO,GAAGL,EAAEmV,EAAEpV,IAAI86D,kBAAkB9qD,EAAE+qD,kBAAkB,WAAW,MAAM,KAAKC,aAAa,SAASj7D,EAAEO,GAAG,OAAO0P,EAAEjQ,GAAGO,EAAE,KAAK26D,YAAY,SAASl7D,EAAEO,EAAEL,GAAG,MAAM,QAAQ+S,OAAOjT,EAAE,MAAMiT,OAAO1S,EAAE,MAAM0S,OAAO/S,EAAE,MAAMi7D,gBAAgB96D,EAAE+6D,cAAc,SAASp7D,GAAG,IAAIO,EAAEP,EAAEi6D,SAAS/5D,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,OAAO,IAAI,SAASsF,GAAG,YAAO,IAASA,EAAEq7D,iBAAiBr7D,EAAEs7D,sBAAsBt7D,EAAEq7D,iBAAzE,CAA2F96D,IAAI,IAAIqL,EAAE,CAAC1O,WAAWgD,EAAExF,OAAOuF,KAAKs7D,WAAW,SAASv7D,EAAEO,GAAG,IAAIL,EAAE,SAASF,GAAG,OAAOA,EAAEoN,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAAG+xC,KAAKqc,eAAe,GAAnG,CAAuGx7D,EAAEO,GAAGN,EAAE1D,EAAEgE,GAAG,IAAIL,EAAEu7D,oBAAoBv7D,EAAE6qD,iBAAiB7qD,EAAEw7D,aAAa,OAAOz7D,EAAE,IAAIyM,EAAE,CAAC,aAAa,aAAaC,EAAEzM,EAAE6qD,eAAe,aAAa93C,OAAOvG,GAAGxM,EAAE6qD,eAAe,GAAG,GAAG,KAAK,GAAGn+C,EAAE1M,EAAEw7D,aAAa,UAAUzoD,OAAOvG,GAAGxM,EAAEw7D,aAAa,GAAG,GAAG,KAAK,GAAG,OAAOx7D,EAAE6qD,gBAAgB7qD,EAAEw7D,aAAa,IAAIzoD,OAAOhT,EAAE,MAAMgT,OAAOtG,EAAE,MAAMsG,OAAOrG,EAAE,KAAK1M,EAAE6qD,eAAe,IAAI93C,OAAOhT,EAAE,MAAMgT,OAAOtG,EAAE,KAAKzM,EAAEw7D,aAAa,IAAIzoD,OAAOhT,EAAE,MAAMgT,OAAOrG,EAAE,KAAK3M,GAAG07D,mBAAmBtrD,EAAEurD,uBAAuB,SAAS57D,GAAG,IAAIO,EAAEP,EAAE67D,iBAAiB,GAAG77D,EAAEi6D,SAAS,CAAC,IAAI/5D,EAAEK,EAAEqQ,QAAQpE,GAAG,IAAI,IAAItM,EAAE,CAAC,IAAID,EAAEM,EAAEqQ,QAAQ/D,GAAG,IAAI,IAAI5M,EAAE,OAAOM,EAAE2P,UAAUhQ,EAAEsM,EAAErB,OAAOlL,MAAM67D,aAAa,SAAS97D,EAAEO,GAAGvD,OAAOiY,KAAK1U,GAAG6T,SAAS,SAASlU,QAAG,IAASF,EAAEE,KAAKF,EAAEE,GAAGK,EAAEL,QAAQinD,UAAU54C,EAAEwtD,aAAa,SAAS/7D,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAOuF,EAAED,EAAEg8D,cAActvD,OAAE,IAASzM,EAAE,EAAEA,EAAE0M,EAAE3M,EAAEi8D,cAAcrvD,OAAE,IAASD,EAAE,EAAEA,EAAE,IAAIpM,IAAIL,EAAE,OAAM,EAAG,IAAIsM,EAAEZ,EAAE,CAAC1O,WAAWqD,EAAE7F,OAAOwF,IAAI,OAAOsM,GAAGE,GAAGF,GAAGI,GAAGsvD,yBAAyBzvD,EAAE0vD,WAAW,SAASn8D,GAAG,IAAIO,EAAEP,EAAE4Q,QAAQpE,GAAGtM,EAAEF,EAAE4Q,QAAQ/D,GAAG,OAAOtM,GAAG,GAAGL,GAAG,GAAGK,EAAEL,GAAGk8D,qBAAqB7/D,EAAE8/D,oBAAoB,SAASr8D,GAAG,IAAIO,EAAEP,EAAEA,EAAE+Q,QAAQ,KAAK,MAAM/Q,EAAE,MAAM,IAAIiT,OAAO1S,EAAE,OAAO,SAASgQ,EAAEvQ,GAAG,OAAOuQ,EAAE,mBAAmB6oD,QAAQ,iBAAiBA,OAAOkD,SAAS,SAASt8D,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBo5D,QAAQp5D,EAAEI,cAAcg5D,QAAQp5D,IAAIo5D,OAAOj5D,UAAU,gBAAgBH,IAAIA,GAAG,IAAIY,EAAE8L,EAAEE,EAAE+8B,KAAK,MAAK,GAAIhpC,EAAE,GAAGZ,EAAEu5B,MAAMF,QAAQ,SAAS34B,EAAET,GAAG,OAAO,MAAMA,IAAIs5B,MAAMF,QAAQp5B,IAAI,WAAWuQ,EAAEvQ,GAAG,SAASmY,EAAEnY,GAAG,YAAO,IAASA,EAAE,SAASQ,EAAER,EAAEO,GAAG,MAAM,mBAAmBP,EAAEO,IAAI,OAAOA,EAAE2P,UAAU,EAAE,IAAI,MAAM3P,EAAE2P,UAAU,EAAE,GAAG,SAASjP,EAAEjB,EAAEO,GAAG,IAAIL,EAAED,EAAEM,EAAE2P,UAAU,GAAGrB,MAAM,KAAK+D,MAAM,GAAG,GAAG,OAAO3S,EAAEmU,SAAS,SAAS7T,EAAEmM,GAAG,GAAGA,IAAIzM,EAAEkL,OAAO,CAACjL,GAAGK,EAAE,IAAIoM,EAAEoC,OAAO7C,MAAMhM,GAAG,GAAG,GAAGF,EAAEE,GAAGK,GAAG4X,EAAEnY,EAAEE,GAAGK,IAAIoM,EAAE3M,EAAEO,GAAGP,EAAEA,EAAEE,GAAGK,OAAOP,EAAE,SAASU,EAAEV,EAAEO,GAAG,IAAIL,GAAE,EAAG,GAAGO,EAAET,IAAIS,EAAEF,GAAG,OAAOvD,OAAOiY,KAAKjV,GAAGmL,SAASnO,OAAOiY,KAAK1U,GAAG4K,SAASnO,OAAOiY,KAAKjV,GAAGoU,SAAS,SAASnU,GAAGS,EAAEV,EAAEC,GAAGM,EAAEN,MAAMC,GAAE,MAAOA,GAAG,GAAGH,EAAEC,IAAID,EAAEQ,GAAG,CAAC,GAAGP,EAAEmL,SAAS5K,EAAE4K,OAAO,OAAM,EAAG,IAAI,IAAIlL,EAAE,EAAEyM,EAAE1M,EAAEmL,OAAOlL,EAAEyM,EAAEzM,GAAG,EAAE,IAAIS,EAAEV,EAAEC,GAAGM,EAAEN,IAAI,OAAM,EAAG,OAAM,EAAG,OAAOD,IAAIO,EAAEI,EAAE6/C,SAAS,SAASxgD,EAAEO,EAAEL,GAAGA,EAAEA,GAAG,GAAG,IAAID,EAAE,GAAG,OAAOjD,OAAOiY,KAAK1U,GAAG6T,SAAS,SAAS1H,GAAG,IAAIC,EAAE,SAAS3M,GAAG,OAAOA,EAAEY,EAAE,GAAG,CAACsZ,IAAIla,IAAIka,IAAIla,EAAvC,CAA0CO,EAAEmM,IAAIE,EAAE5M,EAAE0M,GAAGF,EAAE,GAAGyG,OAAO/S,EAAE,KAAK+S,OAAOvG,GAAGhM,EAAEiM,EAAEC,IAAIpM,EAAED,EAAEmM,KAAKyL,EAAEvL,GAAG3M,EAAE+Y,KAAK,CAAC+nC,GAAG,MAAMrhD,KAAK8M,EAAEkD,MAAM/C,IAAIlM,EAAEkM,IAAIlM,EAAEmM,GAAG3M,EAAEA,EAAEgT,OAAOtS,EAAE6/C,SAAS5zC,EAAED,EAAEH,IAAIzM,EAAE4M,IAAI5M,EAAE6M,GAAG3M,EAAEA,EAAEgT,OAAO,SAASjT,EAAEO,EAAEL,GAAG,IAAID,EAAE,GAAGyM,EAAE1M,EAAE4S,QAAQjG,GAAG,EAAE,SAASC,EAAE5M,EAAEO,EAAEL,GAAG,GAAGF,EAAEE,IAAIiY,EAAEnY,EAAEE,GAAGkhD,OAAO,OAAO,KAAK,GAAGphD,EAAEE,IAAIF,EAAEE,GAAGkhD,MAAMC,MAAM9gD,EAAE,OAAOL,EAAE,IAAI,IAAID,EAAE,EAAEyM,EAAE1M,EAAEmL,OAAOlL,EAAEyM,EAAEzM,GAAG,EAAE,GAAGD,EAAEC,IAAID,EAAEC,GAAGmhD,MAAMC,MAAM9gD,EAAE,OAAON,EAAE,OAAO,EAAE,GAAGS,EAAEH,EAAEmM,GAAG,OAAOzM,EAAE,IAAIkY,EAAE5X,EAAE,KAAK4X,EAAE5X,EAAE,GAAG6gD,OAAO,OAAOnhD,EAAE+Y,KAAK,CAAC+nC,GAAG,UAAUrhD,KAAKQ,EAAEwP,MAAMnP,IAAIN,EAAE,IAAI,IAAIuM,EAAEE,EAAEvB,OAAO,EAAEqB,GAAG,EAAEA,GAAG,GAAG,KAAKG,EAAEC,EAAErM,EAAEmM,EAAEF,GAAG40C,OAAO10C,EAAEF,GAAG40C,MAAMC,IAAI70C,KAAKvM,EAAE+Y,KAAK,CAAC+nC,GAAG,SAASrhD,KAAK,GAAGuT,OAAO/S,EAAE,KAAK+S,OAAOzG,KAAKE,EAAE8xB,OAAOhyB,EAAE,IAAIvM,EAAEA,EAAEgT,OAAOtS,EAAE6/C,SAAS9zC,EAAEF,GAAGjM,EAAEoM,GAAG,GAAGsG,OAAO/S,EAAE,KAAK+S,OAAOzG,KAAK,IAAI,IAAIK,EAAE,EAAEJ,EAAElM,EAAE4K,OAAO0B,EAAEJ,EAAEI,GAAG,GAAG,KAAKF,EAAEC,EAAEF,EAAEnM,EAAEsM,GAAGu0C,OAAO7gD,EAAEsM,GAAGu0C,MAAMC,OAAOphD,EAAE+Y,KAAK,CAAC+nC,GAAG,MAAMrhD,KAAK,GAAGuT,OAAO/S,EAAE,KAAK+S,OAAOpG,GAAG6C,MAAMnP,EAAEsM,KAAKH,EAAE8xB,OAAO3xB,EAAE,EAAEtM,EAAEsM,KAAKF,IAAIE,IAAI5M,EAAE+Y,KAAK,CAAC+nC,GAAG,OAAOrhD,KAAK,GAAGuT,OAAO/S,EAAE,KAAK+S,OAAOpG,GAAGsiC,KAAK,GAAGl8B,OAAO/S,EAAE,KAAK+S,OAAOtG,KAAKD,EAAE8xB,OAAO3xB,EAAE,EAAEH,EAAE8xB,OAAO7xB,EAAE,GAAG,KAAK,OAAO1M,EAA3xB,CAA8xB2M,EAAED,EAAEH,IAAIvM,EAAE+Y,KAAK,CAAC+nC,GAAG,UAAUrhD,KAAK,GAAGuT,OAAO/S,EAAE,KAAK+S,OAAOvG,GAAGgD,MAAM/C,QAAQ3P,OAAOiY,KAAKjV,GAAGoU,SAAS,SAAS1H,GAAGyL,EAAE5X,EAAEmM,MAAMlM,EAAER,EAAE0M,IAAIzM,EAAE+Y,KAAK,CAAC+nC,GAAG,SAASrhD,KAAK,GAAGuT,OAAO/S,EAAE,KAAK+S,OAAOvG,QAAQzM,GAAGU,EAAEgZ,MAAM,SAAS3Z,EAAEO,GAAGA,EAAE6T,SAAS,SAAS7T,GAAG,IAAIL,EAAED,EAAEgB,EAAEjB,EAAEO,EAAEb,MAAMgN,EAAEnM,EAAEb,KAAKmP,MAAM,KAAK2vB,QAAQ,GAAG,GAAG7xB,EAAED,GAAGqC,OAAO7C,OAAOQ,GAAGzM,EAAEyM,GAAGzM,GAAGyM,IAAIzM,EAAE2M,EAAErM,EAAE4uC,KAAK5uC,EAAE4uC,KAAKtgC,MAAM,KAAK2vB,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAMj+B,EAAEb,OAAOO,EAAE,KAAK0M,EAAE3M,GAAG,QAAQO,EAAEwgD,IAAI,YAAYxgD,EAAEwgD,GAAG,GAAGhhD,EAAEE,GAAG,MAAMyM,IAAIA,EAAEzM,EAAEkL,QAAQlL,EAAEu+B,QAAQ9xB,EAAE,QAAQnM,EAAEwgD,GAAG,EAAE,EAAExgD,EAAEmP,YAAY,GAAG3P,EAAE4M,IAAI5M,EAAEQ,EAAEmP,OAAO,CAAC,IAAIlD,EAAEK,EAAEtM,EAAEmP,MAAMkD,QAAQjG,EAAExB,OAAO,GAAGqB,EAAEG,GAAGqM,KAAKW,MAAMnN,EAAE,SAASxM,GAAG,OAAO,SAASA,GAAG,GAAGs5B,MAAMF,QAAQp5B,GAAG,CAAC,IAAI,IAAIO,EAAE,EAAEL,EAAE,IAAIo5B,MAAMt5B,EAAEmL,QAAQ5K,EAAEP,EAAEmL,OAAO5K,IAAIL,EAAEK,GAAGP,EAAEO,GAAG,OAAOL,GAAnG,CAAuGF,IAAI,SAASA,GAAG,GAAGo5D,OAAOkD,YAAYt/D,OAAOgD,IAAI,uBAAuBhD,OAAOmD,UAAUkM,SAAS0M,KAAK/Y,GAAG,OAAOs5B,MAAM6V,KAAKnvC,GAAxH,CAA4HA,IAAI,WAAW,MAAM,IAAIiP,UAAU,mDAA/B,GAA9P,CAAoVpC,SAAS,GAAGpM,EAAEkM,IAAIlM,EAAEF,EAAEmP,OAAOxP,EAAEyM,EAAE3P,OAAOiY,KAAK/U,GAAGkU,SAAS,SAASpU,GAAGhD,OAAOm8B,yBAAyBj5B,EAAEF,GAAGoP,eAAe5O,EAAEN,EAAEF,WAAWE,EAAEF,MAAMY,EAAE+L,EAAEpM,EAAEmP,WAAW,CAAC,IAAIzP,EAAE,MAAM,IAAI2Z,MAAM,yCAAyC3Z,EAAEyM,GAAGnM,EAAEmP,WAAW,GAAG,SAASnP,EAAEwgD,GAAG,CAAC,IAAIt0C,EAAExL,EAAEjB,EAAEO,EAAE4uC,MAAMpvC,EAAEE,GAAGA,EAAEu+B,QAAQ9xB,EAAE,EAAED,EAAE+xB,QAAQ5xB,EAAE,GAAG,KAAK3M,EAAEyM,GAAGD,EAAEG,UAAUH,EAAEG,QAAQ,WAAWrM,EAAEwgD,KAAKhhD,EAAEE,GAAGA,EAAEu+B,QAAQ9xB,EAAE,UAAUzM,EAAEyM,QAAQ/L,EAAEq5B,MAAM,SAASh6B,GAAG,OAAOY,EAAE,GAAGZ,IAAIW,EAAE+gD,YAAY,SAAS1hD,EAAEO,EAAEL,GAAG,IAAID,EAAE,CAAC8gD,GAAG/gD,EAAEiL,cAAcvL,KAAKQ,GAAG,MAAM,SAASD,EAAE8gD,GAAG9gD,EAAEkvC,KAAK5uC,OAAE,IAASA,IAAIN,EAAEyP,MAAMnP,GAAGN,GAAGU,EAAEghD,aAAa,SAAS3hD,EAAEO,GAAGvD,OAAOiY,KAAKjV,GAAGmL,OAAOxK,EAAEgZ,MAAM3Z,EAAEW,EAAE6/C,SAASxgD,EAAEO,IAAIK,EAAEZ,EAAEO,IAAI,IAAIY,EAAER,EAAEG,EAAE,SAASd,EAAEO,EAAEL,GAAG,IAAIF,EAAE,OAAOm3B,QAAQC,UAAU,IAAIn3B,EAAEkB,EAAEq/C,SAASjgD,EAAEL,GAAG,OAAOwM,GAAAA,EAAI,EAAGnM,EAAEL,GAAGD,GAAGA,EAAEkL,QAAQlL,EAAEA,EAAEiV,KAAK,SAASlV,GAAG,MAAM,CAACmiD,IAAIniD,EAAE+gD,GAAGtT,OAAO2Q,KAAKC,UAAUr+C,EAAE0P,OAAO0yC,MAAMpiD,EAAEN,SAASM,EAAEqiD,aAAapiD,GAAE,IAAKk3B,QAAQC,WAAWv2B,EAAE,eAAe,SAASO,EAAEpB,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,GAAGL,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAOwE,EAAE,OAAOX,EAAED,GAAG,SAASqV,EAAEtV,EAAEO,GAAG,IAAIL,EAAE,SAASF,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,IAAIL,EAAE,OAAO,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAOwE,EAAE,OAAOZ,EAAE,OAAO,EAAtG,CAAyGD,EAAEO,GAAG,OAAOL,GAAG,EAAE,GAAG+S,OAAO1S,EAAE,KAAK0S,OAAO/S,GAAGK,EAAE,IAAIS,EAAE,CAAC3E,KAAK,eAAekgE,UAAS,EAAGjB,sBAAsB,EAAEtB,oBAAmB,EAAGK,oBAAmB,EAAGP,kBAAiB,EAAGj5B,MAAM,EAAEg7B,iBAAiB,IAAInxD,EAAE,CAAC8xD,eAAe,mCAAmCpB,cAAc9gE,EAAE8gE,cAAcW,aAAa,SAAS/7D,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAO,OAAOJ,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAE7F,OAAOwF,EAAE87D,cAAc,EAAEC,cAAc,KAAK/W,mBAAmB,SAASllD,GAAG,IAAIO,EAAEP,EAAEmkD,WAAWjkD,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAE9C,WAAWwP,EAAE1M,EAAEtF,OAAOiS,EAAE3M,EAAEy8D,cAAcjwD,EAAExM,EAAEk6D,sBAAsB,IAAIh6D,EAAE,OAAOK,EAAE,IAAIsM,EAAEF,OAAE,IAASE,IAAIA,EAAEvS,EAAEigE,iBAAiB,CAACr9D,WAAW+C,EAAEvF,OAAOgS,KAAK,IAAID,EAAEG,EAAE3M,EAAE,4BAA4B,IAAIsO,EAAEjU,EAAEkgE,8BAA8B,CAACrW,WAAW5jD,EAAE05D,SAAS/5D,EAAEP,WAAW8M,EAAEytD,sBAAsB1tD,IAAIuD,EAAEzV,EAAEqgE,eAAez6D,EAAE2M,GAAGiD,EAAExV,EAAEwgE,aAAa56D,EAAE2M,EAAE0B,EAAEwB,GAAGM,EAAE/V,EAAE2gE,aAAa,WAAWnrD,GAAG,GAAGxV,EAAE8gE,cAAc,CAACnB,SAAS/5D,EAAEhD,WAAW+C,EAAEvF,OAAOgS,IAAI,CAAC,IAAInQ,EAAEjC,EAAEihE,WAAW9uD,EAAE,GAAG6D,EAAEhW,EAAEihE,WAAW9uD,EAAE,GAAG4I,EAAE/a,EAAE4gE,YAAY7qD,EAAE9T,EAAE+T,GAAGD,EAAEnQ,EAAEm6D,mBAAmB//D,EAAE6gE,gBAAgB,CAAClB,SAAS/5D,EAAEP,WAAW8M,EAAEytD,sBAAsB1tD,EAAE4tD,UAAU/kD,IAAIA,EAAE,OAAOhF,GAAGurD,uBAAuBthE,EAAEshE,uBAAuBE,aAAa,SAAS97D,GAAG1F,EAAEwhE,aAAa97D,EAAEgB,IAAI07D,qBAAqB,WAAW,OAAM,GAAIC,iBAAiB,SAAS38D,GAAG,IAAIO,EAAE6M,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAA+sE,MAA1sE,CAAC/Q,KAAK,QAAQugC,MAAM,CAAC1iC,WAAW,CAACT,UAAU,OAAOmjE,YAAYr8D,EAAErG,YAAY,8CAA8CsE,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,eAAe3C,SAAS,CAAC8B,KAAK,QAAQugC,MAAM,CAACy+B,iBAAiB,CAACwB,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAOqC,EAAE/U,EAAEP,GAAG,2BAA2B3D,KAAK,UAAUugE,YAAYr8D,EAAE86D,kBAAkB,uCAAuCn/D,MAAM,CAAC0gE,YAAYr8D,EAAEu8D,yBAAyB,6DAA6DrjE,UAAU,WAAWsjE,cAAa,EAAGC,aAAa,EAAEnhD,QAAQ,SAAS7b,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe/b,KAAK,SAASlV,EAAEO,GAAG,MAAM,CAACmP,MAAMnP,EAAE/F,MAAMwF,EAAEi9D,qBAAqB,QAAQz+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAI6uD,mBAAmB,CAAC6C,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAOqC,EAAE/U,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAEy5D,oBAAoB,yCAAyC99D,MAAM,CAAC0gE,YAAYr8D,EAAE28D,2BAA2B,+DAA+DH,cAAa,EAAGC,cAAa,EAAGx+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAI4uD,UAAU,CAAC8C,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAOqC,EAAE/U,EAAEP,GAAG,sBAAsB3D,KAAK,UAAUugE,YAAYr8D,EAAEknB,OAAO,4BAA4BhuB,UAAU,WAAWsjE,cAAa,EAAGC,cAAa,EAAGnhD,QAAQ,CAAC,CAACnM,OAAM,EAAGktD,YAAYr8D,EAAE48D,WAAW,kCAAkC,CAACztD,OAAM,EAAGktD,YAAYr8D,EAAE68D,aAAa,sCAAsCv8B,MAAM,CAACg8B,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAOqC,EAAE/U,EAAEP,GAAG,WAAW3D,KAAK,UAAUugE,YAAYr8D,EAAE88D,YAAY,kCAAkCN,cAAa,EAAGC,aAAa,EAAEtN,OAAO,SAASnvD,GAAG,IAAIL,EAAEkB,EAAEb,EAAEP,GAAG,GAAGE,EAAE,CAAC,IAAID,EAAEC,EAAE2gC,MAAM3gC,EAAE2gC,MAAM,iBAAiB5gC,GAAG8O,OAAO7C,MAAMjM,GAAG,EAAEkM,KAAKiJ,IAAInV,KAAKzB,KAAK,SAAS+B,GAAG,IAAIL,EAAEkB,EAAEb,EAAEP,GAAG,OAAOE,IAAIA,EAAE45D,mBAAmBO,mBAAmB,CAACwC,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAOqC,EAAE/U,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAE85D,oBAAoB,yCAAyC0C,cAAa,EAAGC,cAAa,IAAKx+D,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,gBAAgBsB,KAAK,SAAS+B,EAAEL,EAAED,GAAG,IAAIyM,EAAEzM,EAAEq9D,IAAIC,QAAQC,UAAU,IAAIlkC,MAAMF,QAAQ1sB,KAAK,IAAIA,EAAEkE,QAAQ/P,GAAG,OAAM,EAAG,IAAI8L,EAAEvL,EAAEb,EAAEP,GAAG,OAAO2M,IAAIA,EAAE4vD,aAAsBr7D,EAAE,gBAAgB,SAASmK,EAAErL,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,GAAGL,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAO6E,EAAE,OAAOhB,EAAED,GAAG,SAASoB,EAAErB,EAAEO,GAAG,IAAIL,EAAE,SAASF,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,IAAIL,EAAE,OAAO,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAO6E,EAAE,OAAOjB,EAAE,OAAO,EAAtG,CAAyGD,EAAEO,GAAG,OAAOL,GAAG,EAAE,GAAG+S,OAAO1S,EAAE,KAAK0S,OAAO/S,GAAGK,EAAE,IAAIwK,EAAE,CAAC1O,KAAK,gBAAgBkgE,UAAS,EAAGlB,iBAAiB,EAAErB,oBAAmB,EAAGK,oBAAmB,EAAGN,WAAU,EAAGl5B,MAAM,EAAEg7B,iBAAiB,GAAG4B,iBAAgB,GAAI5gC,EAAE,CAAC2/B,eAAe,oCAAoCpB,cAAc9gE,EAAE8gE,cAAcW,aAAa,SAAS/7D,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAO,OAAOJ,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAE7F,OAAOwF,EAAE87D,cAAc,EAAEC,cAAc,KAAK/W,mBAAmB,SAASllD,GAAG,IAAIO,EAAEL,EAAEF,EAAEmkD,WAAWlkD,EAAED,EAAEi6D,SAASvtD,EAAE1M,EAAE9C,WAAWyP,EAAE3M,EAAEtF,OAAO8R,EAAExM,EAAEy8D,cAAc5vD,EAAE7M,EAAEk6D,sBAAsB,IAAIj6D,EAAE,OAAOC,EAAE,IAAIuM,EAAED,OAAE,IAASC,IAAIA,EAAEnS,EAAEigE,iBAAiB,CAACr9D,WAAWwP,EAAEhS,OAAOiS,KAAK,IAAI4B,EAAE3B,EAAEF,EAAE,4BAA4B,IAAIqD,EAAE9P,EAAEo6D,oBAAoBp6D,EAAEw9D,gBAAgB3tD,EAAExV,EAAEkgE,8BAA8B,CAACrW,WAAWjkD,EAAE+5D,SAASh6D,EAAEN,WAAW4O,EAAE2rD,sBAAsBrtD,EAAE4tD,mBAAmB1qD,IAAIM,EAAE/V,EAAEqgE,eAAe16D,EAAEwM,GAAGlQ,EAAEjC,EAAEwgE,aAAa76D,EAAEwM,EAAEqD,EAAEO,GAAG,GAAGpQ,EAAEw9D,gBAAgBl9D,EAAEjG,EAAE2gE,aAAa,WAAW1+D,OAAO,CAAC,IAAI+T,EAAEhW,EAAE2gE,aAAa,WAAW1+D,GAAG8Y,EAAE,SAASrV,EAAEO,GAAG,IAAIL,EAAE5F,EAAEogE,aAAa16D,EAAEO,GAAG,IAAIjG,EAAEggE,YAAYt6D,GAAG,CAAC,IAAIC,EAAED,EAAE6gC,MAAMn0B,EAAE,iBAAiBzM,GAAG8O,OAAO7C,MAAMjM,GAAG,EAAEA,EAAE,MAAM,YAAYgT,OAAOvG,EAAE,MAAMuG,OAAO/S,EAAE,KAAK,OAAOA,EAA5K,CAA+KD,EAAEwM,GAAGlM,EAAE,GAAG0S,OAAO3C,EAAE,OAAO2C,OAAOoC,GAAG,IAAIxJ,EAAEtL,EAAE,GAAGjG,EAAE8gE,cAAc,CAACnB,SAASh6D,EAAE/C,WAAWwP,EAAEhS,OAAOiS,IAAI,CAAC,IAAItM,EAAE/F,EAAEihE,WAAWhtD,EAAE,GAAG0B,EAAE3V,EAAEihE,WAAWhtD,EAAE,GAAG3C,EAAEtR,EAAE4gE,YAAYrvD,EAAExL,EAAE4P,GAAGpE,EAAE5L,EAAEo6D,mBAAmB//D,EAAE6gE,gBAAgB,CAAClB,SAASh6D,EAAEN,WAAW4O,EAAE2rD,sBAAsBrtD,EAAEstD,SAAS,OAAOC,UAAUxuD,IAAIA,EAAE,OAAOC,GAAG+vD,uBAAuBthE,EAAEshE,uBAAuBE,aAAa,SAAS97D,GAAG1F,EAAEwhE,aAAa97D,EAAE+K,IAAI2xD,qBAAqB,WAAW,OAAM,GAAIC,iBAAiB,SAAS38D,GAAG,IAAIO,EAAE6M,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAAm4E,MAA93E,CAAC/Q,KAAK,QAAQugC,MAAM,CAAC1iC,WAAW,CAACT,UAAU,OAAOmjE,YAAYr8D,EAAErG,YAAY,+CAA+CsE,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,eAAe3C,SAAS,CAAC8B,KAAK,QAAQugC,MAAM,CAACy+B,iBAAiB,CAACwB,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,sBAAsB3D,KAAK,UAAUugE,YAAYr8D,EAAE86D,kBAAkB,uCAAuCn/D,MAAM,CAAC0gE,YAAYr8D,EAAEu8D,yBAAyB,8DAA8DrjE,UAAU,WAAWsjE,cAAa,EAAGC,aAAa,EAAEnhD,QAAQ,SAAS7b,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe/b,KAAK,SAASlV,EAAEO,GAAG,MAAM,CAACmP,MAAMnP,EAAE/F,MAAMwF,EAAEi9D,qBAAqB,QAAQz+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAI6uD,mBAAmB,CAAC6C,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAEy5D,oBAAoB,yCAAyC99D,MAAM,CAAC0gE,YAAYr8D,EAAE28D,2BAA2B,gEAAgEH,cAAa,EAAGC,cAAa,EAAGx+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAI4uD,UAAU,CAAC8C,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,eAAe3D,KAAK,UAAUugE,YAAYr8D,EAAEknB,OAAO,4BAA4BhuB,UAAU,WAAWsjE,cAAa,EAAGC,cAAa,EAAGnhD,QAAQ,CAAC,CAACnM,OAAM,EAAGktD,YAAYr8D,EAAE48D,WAAW,kCAAkC,CAACztD,OAAM,EAAGktD,YAAYr8D,EAAE68D,aAAa,sCAAsCv8B,MAAM,CAACg8B,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,WAAW3D,KAAK,UAAUugE,YAAYr8D,EAAE88D,YAAY,kCAAkCN,cAAa,EAAGC,aAAa,EAAEtN,OAAO,SAASnvD,GAAG,IAAIL,EAAEmL,EAAE9K,EAAEP,GAAG,GAAGE,EAAE,CAAC,IAAID,EAAEC,EAAE2gC,MAAM3gC,EAAE2gC,MAAM,iBAAiB5gC,GAAG8O,OAAO7C,MAAMjM,GAAG,EAAEkM,KAAKiJ,IAAInV,KAAKzB,KAAK,SAAS+B,GAAG,IAAIL,EAAEmL,EAAE9K,EAAEP,GAAG,OAAOE,IAAIA,EAAE65D,YAAYM,mBAAmB,CAACwC,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAE85D,oBAAoB,yCAAyC0C,cAAa,EAAGC,cAAa,GAAIS,gBAAgB,CAACZ,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO5R,EAAEd,EAAEP,GAAG,qBAAqB3D,KAAK,UAAUugE,YAAYr8D,EAAEm9D,UAAU,iCAAiCX,cAAa,EAAGC,cAAa,EAAGW,UAAS,IAAKn/D,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,gBAAgBsB,KAAK,SAAS+B,EAAEL,EAAED,GAAG,IAAIyM,EAAEzM,EAAEq9D,IAAIC,QAAQC,UAAU,IAAIlkC,MAAMF,QAAQ1sB,KAAK,IAAIA,EAAEkE,QAAQ1P,GAAG,OAAM,EAAG,IAAIyL,EAAEtB,EAAE9K,EAAEP,GAAG,OAAO2M,IAAIA,EAAE4vD,aAAsB5wD,EAAE,aAAa,SAASM,EAAEjM,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,GAAGL,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAOsP,EAAE,OAAOzL,EAAED,GAAG,SAASqL,EAAEtL,EAAEO,GAAG,IAAIL,EAAE,SAASF,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,IAAIL,EAAE,OAAO,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAOsP,EAAE,OAAO1L,EAAE,OAAO,EAAtG,CAAyGD,EAAEO,GAAG,OAAOL,GAAG,EAAE,GAAG+S,OAAO1S,EAAE,KAAK0S,OAAO/S,GAAGK,EAAE,IAAIwL,EAAE,CAAC1P,KAAK,aAAakgE,UAAS,EAAGlB,iBAAiB,EAAErB,oBAAmB,EAAGK,oBAAmB,EAAGwB,iBAAiB,IAAIhxD,EAAE,CAAC2xD,eAAe,iCAAiCpB,cAAc9gE,EAAE8gE,cAAcW,aAAa,SAAS/7D,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAO,OAAOJ,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAE7F,OAAOwF,EAAE87D,cAAc,EAAEC,cAAc,KAAKL,uBAAuBthE,EAAEshE,uBAAuB1W,mBAAmB,SAASllD,GAAG,IAAIO,EAAEP,EAAEmkD,WAAWjkD,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAE9C,WAAWwP,EAAE1M,EAAEtF,OAAOiS,EAAE3M,EAAEy8D,cAAcjwD,EAAExM,EAAEk6D,sBAAsB,IAAIh6D,EAAE,OAAOK,EAAE,IAAIsM,EAAEF,OAAE,IAASE,IAAIA,EAAEvS,EAAEigE,iBAAiB,CAACr9D,WAAW+C,EAAEvF,OAAOgS,KAAK,IAAID,EAAEG,EAAE3M,EAAE,4BAA4B,IAAIsO,EAAEjU,EAAEkgE,8BAA8B,CAACrW,WAAW5jD,EAAE05D,SAAS/5D,EAAEP,WAAW8M,EAAEytD,sBAAsB1tD,IAAIuD,EAAEzV,EAAEwgE,aAAa56D,EAAE2M,EAAE0B,GAAGuB,EAAE,GAAGmD,OAAO1E,EAAE,OAAO0E,OAAOlD,GAAG,GAAGzV,EAAE8gE,cAAc,CAACnB,SAAS/5D,EAAEhD,WAAW+C,EAAEvF,OAAOgS,IAAI,CAAC,IAAI2D,EAAE/V,EAAEihE,WAAW9uD,EAAE,GAAGlQ,EAAEjC,EAAEihE,WAAW9uD,EAAE,GAAG6D,EAAEhW,EAAE4gE,YAAYprD,EAAEO,EAAE9T,GAAGuT,EAAE5P,EAAEm6D,mBAAmB//D,EAAE6gE,gBAAgB,CAAClB,SAAS/5D,EAAEP,WAAW8M,EAAEytD,sBAAsB1tD,EAAE2tD,SAAS,OAAOC,UAAU9pD,IAAIA,EAAE,OAAOR,GAAGgsD,aAAa,SAAS97D,GAAGhD,OAAOiY,KAAKlJ,GAAGqI,SAAS,SAAS7T,QAAG,IAASP,EAAEO,KAAKP,EAAEO,GAAGwL,EAAExL,QAAQm8D,qBAAqB,WAAW,OAAM,GAAIC,iBAAiB,SAAS38D,GAAG,IAAIO,EAAE6M,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAAyhD,MAAphD,CAAC/Q,KAAK,QAAQugC,MAAM,CAAC1iC,WAAW,CAACT,UAAU,OAAOmjE,YAAYr8D,EAAErG,YAAY,4CAA4CsE,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,eAAe3C,SAAS,CAAC8B,KAAK,QAAQugC,MAAM,CAACy+B,iBAAiB,CAACwB,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO3H,EAAE/K,EAAEP,GAAG,sBAAsB3D,KAAK,UAAUugE,YAAYr8D,EAAE86D,kBAAkB,uCAAuCn/D,MAAM,CAAC0gE,YAAYr8D,EAAEu8D,yBAAyB,2DAA2DrjE,UAAU,WAAWsjE,cAAa,EAAGC,aAAa,EAAEnhD,QAAQ,SAAS7b,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe/b,KAAK,SAASlV,EAAEO,GAAG,MAAM,CAACmP,MAAMnP,EAAE/F,MAAMwF,EAAEi9D,qBAAqB,QAAQz+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAI6uD,mBAAmB,CAAC6C,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO3H,EAAE/K,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAEy5D,oBAAoB,yCAAyC99D,MAAM,CAAC0gE,YAAYr8D,EAAE28D,2BAA2B,6DAA6DH,cAAa,EAAGC,cAAa,EAAGx+D,KAAK,SAASwB,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAO,IAAIkvD,mBAAmB,CAACwC,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO3H,EAAE/K,EAAEP,GAAG,wBAAwB3D,KAAK,UAAUugE,YAAYr8D,EAAE85D,oBAAoB,yCAAyC0C,cAAa,EAAGC,cAAa,IAAKx+D,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,gBAAgBsB,KAAK,SAAS+B,EAAEL,EAAED,GAAG,IAAIyM,EAAEzM,EAAEq9D,IAAIC,QAAQC,UAAU,IAAIlkC,MAAMF,QAAQ1sB,KAAK,IAAIA,EAAEkE,QAAQjF,GAAG,OAAM,EAAG,IAAIgB,EAAEV,EAAE1L,EAAEP,GAAG,OAAO2M,IAAIA,EAAE4vD,aAAsBhxD,EAAE,CAACqyD,kBAAkB,EAAEC,mBAAmB,EAAEC,oBAAoB,GAAGtyD,EAAE,CAACuyD,cAAc,EAAEC,gBAAgB,EAAEC,yBAAyB,GAAGC,EAAE,gBAAgB,SAASlyD,EAAEhM,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,GAAGL,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAO6hE,EAAE,OAAOh+D,EAAED,GAAG,SAASsM,EAAEvM,EAAEO,GAAG,IAAIL,EAAE,SAASF,EAAEO,GAAG,IAAIL,EAAE0M,EAAE5M,EAAEO,GAAG,IAAIL,EAAE,OAAO,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEiL,OAAOlL,IAAI,GAAGC,EAAED,GAAG5D,OAAO6hE,EAAE,OAAOj+D,EAAE,OAAO,EAAtG,CAAyGD,EAAEO,GAAG,OAAOL,GAAG,EAAE,GAAG+S,OAAO1S,EAAE,KAAK0S,OAAO/S,GAAGK,EAAE,SAAS+L,EAAEtM,EAAEO,GAAG,IAAI,IAAIL,EAAE,EAAEA,EAAEF,EAAEmL,OAAOjL,IAAI,GAAGF,EAAEE,GAAGwP,QAAQnP,EAAE,OAAOL,EAAE,OAAO,EAAE,SAAS4M,GAAG9M,EAAEO,EAAEL,EAAED,GAAG,IAAIyM,EAAEnM,EAAE7F,OAAOw1B,WAAWe,eAAe9lB,OAAOwB,EAAE,CAAC,CAAC+C,MAAMlE,EAAEuyD,cAAcnB,YAAY18D,EAAEi+D,8BAA8B,2DAA2DC,mBAAmBl+D,EAAEm+D,qCAAqC,oEAAoE,CAAC3uD,MAAMlE,EAAEwyD,gBAAgBpB,YAAY18D,EAAEo+D,+BAA+B,wCAAwCrrD,OAAO,IAAIvG,EAAE,uBAAuB,oBAAoB0xD,mBAAmBl+D,EAAEq+D,sCAAsC,wCAAwCtrD,OAAO,IAAIvG,EAAE,uBAAuB,mBAAmB,aAAa,CAACgD,MAAMlE,EAAEyyD,yBAAyBrB,YAAY18D,EAAEs+D,wCAAwC,wCAAwCvrD,OAAO,IAAIvG,EAAE,yBAAyB,sBAAsB0xD,mBAAmBl+D,EAAEu+D,+CAA+C,wCAAwCxrD,OAAO,IAAIvG,EAAE,yBAAyB,qBAAqB,cAAc,OAAOC,EAAE,SAAS3M,EAAEO,EAAEL,GAAG,GAAGF,EAAE,EAAE,CAAC,IAAIC,EAAEqM,EAAE/L,EAAE,GAAGA,EAAEi+B,OAAOv+B,EAAE,GAAG,OAAOM,EAA1D,CAA6DmM,EAAEC,GAAG,SAAS3M,EAAEO,EAAEL,GAAG,GAAG,IAAIF,EAAE,CAAC,IAAIC,EAAEqM,EAAE/L,EAAE,GAAGA,EAAEi+B,OAAOv+B,EAAE,GAAG,OAAOM,EAA5D,CAA+DyL,EAAEhM,EAAEC,GAAGy+D,eAAe/xD,GAAG,SAASgB,GAAG3N,EAAEO,EAAEL,GAAG,IAAID,EAAE,CAAC,CAACyP,MAAMnE,EAAEqyD,kBAAkBhB,YAAYr8D,EAAEo+D,gCAAgC,uDAAuD,CAACjvD,MAAMnE,EAAEsyD,mBAAmBjB,YAAYr8D,EAAEq+D,6BAA6B,mDAAmD,CAAClvD,MAAMnE,EAAEuyD,oBAAoBlB,YAAYr8D,EAAEs+D,qBAAqB,6CAA6C,OAAO,SAAS7+D,EAAEO,EAAEL,GAAG,GAAG,IAAIF,EAAE,CAAC,IAAIC,EAAEqM,EAAE/L,EAAE,GAAGA,EAAEi+B,OAAOv+B,EAAE,GAAG,OAAOM,EAA5D,CAA+DyL,EAAEhM,EAAEE,GAAG4+D,iBAAiB7+D,GAAG,IAAIyN,GAAG,CAACrR,KAAK,gBAAgBkgE,UAAS,EAAGlB,iBAAiB,EAAEQ,iBAAiB,GAAGiD,iBAAiBtzD,EAAEyyD,yBAAyBS,eAAenzD,EAAEuyD,qBAAqB,SAAStwD,GAAGxN,GAAG,OAAO,IAAIA,EAAE,MAAM,GAAG,SAAS4N,GAAG5N,EAAEO,EAAEL,GAAG,OAAO,IAAIF,EAAE,MAAMiT,OAAO3Y,EAAE+hE,oBAAoB97D,GAAG,OAAO0S,OAAO/S,EAAE,QAAQ,GAAG,SAAS2N,GAAG7N,EAAEO,GAAG,OAAO,IAAIP,GAAGO,EAAE,GAAG,IAAIP,EAAE,QAAQ,GAAG,SAAS8N,GAAG9N,EAAEO,EAAEL,GAAG,OAAO,IAAIF,GAAGO,EAAE,EAAE,IAAI0S,OAAO3Y,EAAE8hE,qBAAqBl8D,GAAG,KAAK,GAAG,IAAImO,GAAG,CAACmuD,eAAe,oCAAoCpB,cAAc,WAAW,OAAM,GAAIW,aAAa,SAAS/7D,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEtF,OAAO,OAAOJ,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAE7F,OAAOwF,EAAE87D,cAAc,EAAEC,cAAc,KAAKL,uBAAuBthE,EAAEshE,uBAAuB1W,mBAAmB,SAASllD,GAAG,IAAIO,EAAEP,EAAEmkD,WAAWjkD,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAE9C,WAAWwP,EAAE1M,EAAEtF,OAAOiS,EAAE3M,EAAEy8D,cAAcjwD,EAAExM,EAAEk6D,sBAAsB,IAAIh6D,EAAE,OAAOK,EAAE,IAAIsM,EAAEF,OAAE,IAASE,IAAIA,EAAEvS,EAAEigE,iBAAiB,CAACr9D,WAAW+C,EAAEvF,OAAOgS,KAAK,IAAID,EAAEG,EAAE3M,EAAE,4BAA4B,IAAIsO,EAAEjU,EAAEkgE,8BAA8B,CAACrW,WAAW5jD,EAAE05D,SAAS/5D,EAAEP,WAAW8M,EAAEytD,sBAAsB1tD,IAAIuD,EAAE7P,EAAEw+D,eAAe5uD,EAAE5P,EAAE4+D,iBAAiB,OAAO,SAAS9+D,EAAEO,EAAEL,EAAED,EAAEyM,EAAEC,EAAEC,GAAG,IAAIJ,EAAEgB,GAAGjN,GAAGsM,EAAEe,GAAGrN,EAAEL,EAAED,GAAGwM,EAAE,KAAKD,GAAG,KAAKK,EAAE,GAAGL,GAAGK,EAAE0B,EAAEV,GAAGnB,EAAEC,GAAGoD,EAAEjC,GAAGpB,EAAEC,EAAEC,GAAGkD,EAAE,SAAS9P,GAAG,IAAI,IAAIO,EAAE,GAAGL,EAAE,EAAEA,EAAEF,EAAEE,IAAIK,EAAEL,GAAG5F,EAAE8hE,qBAAqBl8D,GAAG,OAAOK,EAAE6P,KAAK,MAAlF,CAAyFzD,GAAG,MAAM,GAAGsG,OAAOjT,EAAE,UAAUiT,OAAOxG,EAAE,KAAKwG,OAAO1E,GAAG0E,OAAOlD,EAAE,UAAUkD,OAAOxG,EAAE,KAAKwG,OAAOjT,EAAE,MAAMiT,OAAOnD,EAAE,MAA1S,CAAiTvB,EAAEwB,EAAE7P,EAAE8oB,MAAM9oB,EAAEwP,MAAMI,EAAEjD,EAAE3M,EAAEm7D,mBAAmBS,aAAa,SAAS97D,GAAGhD,OAAOiY,KAAKvH,IAAI0G,SAAS,SAAS7T,QAAG,IAASP,EAAEO,KAAKP,EAAEO,GAAGmN,GAAGnN,QAAQw+D,eAAe,SAAS/+D,EAAEO,GAAG,KAAKA,EAAElD,YAAYkD,EAAElD,YAAY8N,OAAO,IAAI,IAAInL,EAAE8+D,mBAAmB9+D,EAAE8+D,iBAAiB,IAAIpC,qBAAqB,WAAW,OAAM,GAAIC,iBAAiB,SAAS38D,GAAG,IAAIO,EAAE6M,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAA82E,MAAz2E,CAAC/Q,KAAK,QAAQugC,MAAM,CAAC1iC,WAAW,CAACT,UAAU,OAAOmjE,YAAYr8D,EAAErG,YAAY,+CAA+CsE,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,eAAe3C,SAAS,CAAC8B,KAAK,QAAQugC,MAAM,CAAC8hC,eAAe,CAAC7B,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO1G,EAAEhM,EAAEP,GAAG,oBAAoB3D,KAAK,SAASugE,YAAYr8D,EAAEy+D,wBAAwB,qCAAqC9iE,MAAM,CAAC0gE,YAAYr8D,EAAE0+D,+BAA+B,8CAA8CxlE,UAAU,WAAWsjE,cAAa,EAAGC,aAAazxD,EAAEuyD,oBAAoBjiD,QAAQ,SAAS3b,GAAG,OAAOyN,GAAGzN,EAAEK,EAAEP,KAAKgpB,MAAM,CAAC6zC,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO1G,EAAEhM,EAAEP,GAAG,WAAW3D,KAAK,SAAS5C,UAAU,2BAA2BmjE,YAAY,eAAeI,aAAa,GAAGkC,cAAa,EAAGrjD,QAAQ,SAAS7b,EAAEO,EAAEL,GAAG,OAAOA,EAAE0+C,IAAIugB,eAAe/oC,MAAM,SAASp2B,GAAG,OAAOA,EAAEkV,KAAK,SAASlV,GAAG,MAAM,CAACxF,MAAMwF,EAAE05D,MAAMhqD,MAAM1P,EAAE05D,cAAcl7D,KAAK,SAAS+B,GAAG,OAAOyL,EAAEzL,EAAEP,GAAG0+D,iBAAiBnzD,EAAEsyD,qBAAqBnuD,MAAM,CAACmtD,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO1G,EAAEhM,EAAEP,GAAG,WAAW3D,KAAK,SAASL,IAAI,QAAQvC,UAAU,SAASmjE,YAAY,mBAAmBzY,WAAW,WAAW3lD,KAAK,SAAS+B,GAAG,OAAOyL,EAAEzL,EAAEP,GAAG0+D,iBAAiBnzD,EAAEsyD,qBAAqBiB,iBAAiB,CAACjC,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO1G,EAAEhM,EAAEP,GAAG,sBAAsB3D,KAAK,SAASugE,YAAYr8D,EAAE6+D,0BAA0B,uCAAuCljE,MAAM,CAAC0gE,YAAYr8D,EAAE8+D,iCAAiC,gDAAgD5lE,UAAU,WAAWsjE,cAAa,EAAGC,aAAaxxD,EAAEyyD,yBAAyBqB,gBAAe,EAAGzjD,QAAQ,SAAS3b,EAAED,GAAG,OAAO6M,GAAG5M,EAAED,EAAEM,EAAEP,KAAKq7D,iBAAiB,CAACwB,MAAM,SAASt8D,GAAG,MAAM,GAAG0S,OAAO1G,EAAEhM,EAAEP,GAAG,sBAAsB3D,KAAK,UAAUugE,YAAYr8D,EAAE86D,kBAAkB,uCAAuCn/D,MAAM,CAAC0gE,YAAYr8D,EAAEu8D,yBAAyB,8DAA8DrjE,UAAU,WAAWsjE,cAAa,EAAGC,aAAa,EAAEnhD,QAAQ,SAAS7b,EAAEO,GAAG,OAAOA,EAAE7F,OAAOw1B,WAAWe,eAAe/b,KAAK,SAASlV,EAAEO,GAAG,MAAM,CAACmP,MAAMnP,EAAE/F,MAAMwF,EAAEi9D,qBAAqB,QAAQz+D,KAAK,SAAS+B,EAAEL,GAAG,OAAO8L,EAAEzL,EAAEP,GAAG8+D,kBAAkB,KAAKtzD,EAAEuyD,eAAe79D,EAAExF,OAAOw1B,WAAWe,eAAe9lB,OAAO,KAAK3M,KAAK,SAASwB,EAAEO,GAAG,OAAOjG,EAAEyhE,aAAa,CAAC7+D,WAAWqD,EAAErD,gBAAgBsB,KAAK,SAAS+B,EAAEL,EAAED,GAAG,IAAIyM,EAAEzM,EAAEq9D,IAAIC,QAAQC,UAAU,IAAIlkC,MAAMF,QAAQ1sB,KAAK,IAAIA,EAAEkE,QAAQstD,GAAG,OAAM,EAAG,IAAIvxD,EAAEX,EAAEzL,EAAEP,GAAG,OAAO2M,IAAIA,EAAE4vD,YAAqBgD,0BAA0B/xD,GAAGgyD,sBAAsB5xD,GAAG6xD,aAAa5xD,GAAG6xD,mBAAmB5xD,IAAIC,GAAG,CAAC4xD,cAAc,SAAS3/D,GAAG,OAAO4M,EAAE5M,EAAE,mBAAmB4M,EAAE5M,EAAE,cAAc4/D,iBAAiB,SAAS5/D,GAAG,OAAO4M,EAAE5M,EAAE,kBAAkB,iBAAiB,aAAa6/D,gBAAgB,SAAS7/D,GAAG,OAAO4M,EAAE5M,EAAE,wBAAwB,uBAAuB,cAAc8/D,aAAa,SAAS9/D,GAAG,OAAO4M,EAAE5M,EAAE,yBAAyB4M,EAAE5M,EAAE,eAAe+/D,YAAY,SAAS//D,GAAG,OAAO4M,EAAE5M,EAAE,aAAa,mBAAmB,eAAeggE,sBAAsB,SAAShgE,GAAG,OAAO4M,EAAE5M,EAAE,aAAa,6BAA6B,0BAA0BmO,GAAG,CAAC8xD,SAAS,SAASjgE,EAAEO,IAAIA,GAAG4N,GAAGklB,QAAQrzB,MAAM2M,EAAE3M,EAAE,iBAAiB4M,EAAE5M,EAAE,cAAc2M,EAAE3M,EAAE,uBAAuB4M,EAAE5M,EAAE,eAAe2M,EAAE3M,EAAE,mBAAmB4M,EAAE5M,EAAE,gBAAgB2M,EAAE3M,EAAE,6BAA6B4M,EAAE5M,EAAE,4BAA4BkgE,YAAY,SAASlgE,GAAGmO,GAAGklB,QAAQrzB,KAAK2M,EAAE3M,EAAE,YAAY4M,EAAE5M,EAAE,mBAAmB2M,EAAE3M,EAAE,aAAa4M,EAAE5M,EAAE,yBAAyB2M,EAAE3M,EAAE,cAAc4M,EAAE5M,EAAE,qBAAqB2M,EAAE3M,EAAE,wBAAwB4M,EAAE5M,EAAE,+BAA+B4M,EAAE5M,EAAE,mBAAmB4M,EAAE5M,EAAE,wBAAwB2M,EAAE3M,EAAE,iBAAiB4M,EAAE5M,EAAE,+BAA+BA,EAAEm/C,KAAKghB,OAAO9sC,QAAQ,SAASrzB,GAAG,IAAIO,EAAEqM,EAAE5M,EAAE,kBAAkBE,EAAE0M,EAAE5M,EAAE,wBAAwB,YAAO,IAASO,QAAG,IAASL,IAAIkO,GAAGD,GAAG,SAASiyD,GAAGpgE,GAAG,OAAOogE,GAAG,mBAAmBhH,QAAQ,iBAAiBA,OAAOkD,SAAS,SAASt8D,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBo5D,QAAQp5D,EAAEI,cAAcg5D,QAAQp5D,IAAIo5D,OAAOj5D,UAAU,gBAAgBH,IAAIA,GAAG,IAAIkO,GAAG,CAACmyD,aAAa31D,EAAE41D,cAAczjC,EAAE0jC,WAAW11D,EAAE21D,cAAcnyD,IAAIoyD,IAAIlgE,EAAEwvB,QAAQ,CAACytC,UAAUtvD,GAAGyL,MAAMrL,GAAGoyD,eAAeC,GAAGC,eAAeC,GAAGpoC,QAAQ,SAASz4B,GAAGA,GAAGygE,GAAGzgE,EAAEua,KAAKkmD,GAAGzgE,EAAEua,IAAIumD,uBAAuBL,GAAGzgE,EAAEua,IAAIumD,sBAAsBL,GAAGzgE,EAAEua,IAAIumD,qBAAqBC,qBAAqBN,GAAGzgE,EAAEua,MAAMymD,mBAAmBC,GAAGC,kBAAkBC,GAAGlB,SAAS7xD,GAAG6xD,SAASmB,qBAAqB,SAASphE,GAAG,OAAOs5B,MAAMF,QAAQp5B,IAAIA,EAAEigB,MAAM,SAASjgB,GAAG,OAAOkO,GAAGlO,OAAOqhE,+BAA+B,SAASrhE,GAAG,IAAIO,EAAEP,EAAEshE,cAAcphE,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,OAAO4+B,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,OAAOkO,GAAGlO,IAAIkO,GAAGlO,GAAG+7D,aAAa,CAAC7+D,WAAWgD,EAAExF,OAAOuF,QAAQshE,YAAYxzD,GAAGyzD,eAAe,SAASxhE,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAOgS,GAAE,EAAGC,GAAE,EAAG,OAAOpM,EAAE6T,SAAS,SAASpU,GAAG,IAAIO,EAAE0N,GAAGjO,GAAGyhE,GAAG,CAACjE,UAAUj9D,EAAErD,WAAWgD,EAAExF,OAAOuF,MAAMyM,GAAE,EAAGC,EAAEA,GAAG+0D,GAAG,CAAClE,UAAUj9D,EAAErD,WAAWgD,EAAExF,OAAOuF,QAAQyM,IAAIC,GAAGg1D,uBAAuB3zD,IAAI,IAAI,SAASM,KAAK,IAAItO,EAAEoN,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,GAAG7M,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAE9C,WAAW+C,EAAED,EAAE4hE,WAAWj1D,OAAE,IAAS1M,GAAGA,EAAEuM,EAAExM,EAAE6hE,WAAWpB,GAAGlgE,EAAEga,IAAIkmD,GAAGlgE,EAAEga,KAAK,CAACunD,aAAY,GAAI,IAAIj1D,EAAE4zD,GAAGlgE,EAAEga,IAAIunD,YAAY,GAAGrB,GAAGlgE,EAAEga,IAAIunD,aAAY,EAAG5hE,GAAG,WAAWkgE,GAAGlgE,GAAG,OAAOygE,GAAG,CAAC9e,MAAMthD,EAAErD,WAAWgD,IAAI,IAAIuM,EAAElM,EAAEA,EAAE7F,YAAO,EAAO6T,EAAE3B,EAAEH,EAAE,gCAAgC,GAAGE,GAAG4B,EAAE,OAAO4oB,QAAQC,SAAQ,GAAI,IAAIrnB,EAAEnD,EAAEH,EAAE,2BAA2BqD,EAAE2wD,GAAGlgE,EAAEga,IAAIwnD,eAAe,GAAGtB,GAAGlgE,EAAEga,IAAIwnD,eAAen1D,EAAErM,EAAE,8BAA8B0gE,GAAG,CAACnhE,SAASiQ,EAAErV,OAAO+R,IAAI,CAAC,IAAI4D,EAAE,SAASrQ,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAEtF,OAAOuF,EAAED,EAAE+hE,eAAe,OAAOn1D,EAAE5M,EAAE6hD,MAAM,gCAAgC5hD,GAAG,SAASD,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,QAAQ4+B,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,OAAOgiE,GAAG,CAACn9C,QAAQ7kB,EAAE9C,WAAWgD,EAAExF,OAAOuF,OAA9I,CAAsJ,CAACH,SAASS,EAAE7F,OAAOwF,IAAxR,CAA6R,CAACJ,SAASiQ,EAAErV,OAAO+R,EAAEo1C,MAAMthD,EAAEwhE,eAAejyD,IAAI,OAAOO,GAAG,SAASrQ,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAEtF,OAAOuF,EAAED,EAAE6hE,WAAWn1D,EAAE1M,EAAE8hE,YAAY,QAAQxoC,MAAMF,QAAQ74B,KAAKmM,GAAGzM,GAAGM,EAAE0f,MAAM,SAASjgB,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ3kB,EAAEF,EAAEtF,OAAO,OAAO+mE,GAAG,CAACjE,UAAUvvD,GAAG1N,GAAG7F,OAAOwF,KAAKK,EAAE4/D,OAAO5/D,EAAE4/D,KAAzF,CAA+F,CAACt7C,QAAQ7kB,EAAEtF,OAAOwF,QAApP,CAA6P,CAACJ,SAASiQ,EAAErV,OAAO+R,EAAEo1D,WAAWr1D,EAAEs1D,YAAYj1D,IAAItM,EAAEkiD,yBAAyBrsB,MAAM,SAASp2B,GAAG,IAAIE,EAAEwM,GAAAA,EAAI,EAAG,GAAG1M,GAAGiiE,GAAG/hE,GAAG,IAAID,EAAEiiE,GAAGhiE,GAAG,OAAOiiE,GAAG,CAACtgB,MAAMthD,IAAI61B,MAAM,SAAS1pB,GAAG,OAAO01D,GAAG,CAACC,WAAWpiE,EAAE4hD,MAAMthD,IAAI61B,MAAM,SAASn2B,GAAG,OAAOoQ,GAAG,SAASrQ,GAAG,IAAIO,EAAEP,EAAE9C,WAAWolE,GAAG/hE,GAAG6T,SAAS,SAASpU,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ,GAAGm9C,GAAG,CAACn9C,QAAQtkB,EAAErD,WAAW8C,EAAE9C,aAAa,CAAC,IAAIgD,EAAE,EAAED,EAAEM,EAAE4+C,KAAKqe,UAAUlkC,MAAMF,QAAQn5B,IAAIA,EAAEmU,SAAS,SAASpU,GAAG,GAAG,WAAWogE,GAAGpgE,KAAKA,EAAEu8D,SAAS,CAAC,GAAGr8D,IAAI,WAAWkgE,GAAGlyD,GAAGlO,EAAE3D,OAAO,MAAM,IAAIud,MAAM,aAAa3G,OAAOjT,EAAE3D,KAAK,uBAAuB,GAAG6D,EAAE,EAAE,MAAM,IAAI0Z,MAAM,0DAA0D,IAAI3Z,EAAEiO,GAAGlO,EAAE3D,MAAMu/D,uBAAuB,CAACC,iBAAiBt7D,EAAE4+C,KAAKA,KAAK8a,SAASj6D,SAAI,IAASC,GAAGsiE,GAAGhiE,IAAIjG,EAAEqhE,mBAAmBp7D,EAAE4+C,KAAKghB,KAAKhhB,QAAQ7kD,EAAEqhE,mBAAmB17D,KAAKM,EAAE4+C,KAAKghB,KAAKhhB,KAAKl/C,QAA5hB,CAAqiB,CAAC4kB,QAAQ7kB,EAAE9C,WAAWqD,OAA5nB,CAAooB,CAACrD,WAAWgD,IAAIygE,GAAG,CAAC9e,MAAMthD,EAAEiiE,cAAcxiE,EAAE9C,WAAWgD,EAAEuiE,mBAAkB,EAAGZ,WAAWr1D,EAAEk2D,kBAAkBziE,EAAEi6D,sBAAsBxtD,aAAayqB,QAAQC,SAAQ,GAAI,OAAO,SAASp3B,GAAG,QAAQs5B,MAAMF,QAAQp5B,IAAIA,EAAEigB,MAAM,SAASjgB,GAAG,MAAM,WAAWogE,GAAGpgE,EAAEmgE,SAAhF,CAA0FpwD,GAAGxP,EAAEkiD,yBAAyBrsB,MAAM,SAASp2B,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAE9C,WAAW+C,EAAEiiE,GAAGhiE,GAAG,OAAOyiE,GAAG,CAAC9gB,MAAMthD,EAAE8hE,WAAWpiE,IAAIm2B,MAAM,WAAW,IAAIp2B,EAAE0M,GAAAA,EAAI,EAAG,GAAGxM,GAAG,OAAOoiE,GAAGpiE,GAAGkU,SAAS,SAASpU,GAAG,OAAO6gE,GAAG7gE,MAAM4iE,GAAG,CAACJ,cAAcxiE,EAAE6iE,cAAc3iE,EAAE2hD,MAAMthD,OAAnN,CAA2N,CAACshD,MAAMthD,EAAErD,WAAW8C,OAAOm3B,QAAQC,SAAQ,GAAI,SAASupC,GAAG3gE,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAEwiE,cAAcviE,EAAED,EAAE9C,WAAWyP,EAAE3M,EAAEF,SAAS0M,EAAExM,EAAEyiE,kBAAkB51D,OAAE,IAASL,GAAGA,EAAEC,EAAEzM,EAAE6hE,WAAWtzD,EAAEvO,EAAE0iE,kBAAkB3yD,EAAE/P,EAAEk6D,2BAAsB,IAASh6D,IAAIA,EAAE2M,EAAEH,GAAAA,EAAI,EAAG,GAAGzM,GAAGA,GAAGgiE,GAAGhiE,GAAG,IAAI6P,EAAEoyD,GAAGjiE,GAAG,OAAO0iE,GAAG,CAAC9gB,MAAMthD,EAAE8hE,WAAWvyD,EAAE+xD,WAAWp1D,IAAI2pB,MAAM,WAAW,OAAO,SAASp2B,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAE9C,WAAW+C,EAAED,EAAE6hD,MAAMl1C,EAAE3M,EAAE0iE,kBAAkBl2D,EAAExM,EAAEk6D,sBAAsB,GAAG35D,IAAIA,EAAE+hE,GAAGpiE,KAAKK,EAAE4K,OAAO,OAAOgsB,QAAQC,UAAU,IAAI6pC,GAAG,CAACnhE,SAASS,EAAErD,WAAWgD,IAAI,OAAOK,EAAE6T,SAAS,SAASpU,GAAG,OAAO6gE,GAAG7gE,MAAMm3B,QAAQC,UAAU,IAAIvqB,EAAEF,OAAE,EAAOu1D,GAAGhiE,GAAG,OAAOiiE,GAAG,CAACtgB,MAAM5hD,EAAEi6D,sBAAsB1tD,IAAI4pB,MAAM,SAASp2B,GAAG,OAAOoiE,GAAG,CAACC,WAAWx1D,EAAEg1C,MAAM5hD,EAAEyiE,kBAAkB/1D,IAAIypB,MAAM,SAASn2B,GAAGM,EAAE6T,SAAS,SAAS7T,GAAGkhE,GAAG,CAACjE,UAAUj9D,EAAE4+C,KAAKqe,UAAUtgE,WAAWgD,KAAK,SAASF,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ3kB,EAAEF,EAAE9C,WAAW+C,EAAED,EAAE0iE,kBAAkB/1D,EAAE3M,EAAEk6D,sBAAsB1tD,EAAE,EAAE4B,GAAGilB,QAAQ9yB,IAAI6N,GAAG6xD,SAAS1/D,GAAE,GAAI,IAAIsM,EAAEtM,EAAE4+C,KAAK1yC,EAAEI,EAAE2wD,UAAUjvD,EAAE1B,EAAEszD,KAAK7mC,MAAMF,QAAQ3sB,IAAIA,EAAE2H,SAAS,SAASpU,GAAG,GAAG,WAAWogE,GAAGpgE,KAAKA,EAAEu8D,SAAS,CAAC,GAAG/vD,IAAI,WAAW4zD,GAAGlyD,GAAGlO,EAAE3D,OAAO,MAAM,IAAIud,MAAM,aAAa3G,OAAOjT,EAAE3D,KAAK,uBAAuB,GAAGmQ,EAAE,EAAE,MAAM,IAAIoN,MAAM,0DAA0D1L,GAAGlO,EAAE3D,MAAMy/D,aAAa97D,GAAG,IAAI6M,EAAEtM,EAAEu+C,YAAYvwC,GAAGA,EAAEuwC,WAAWjyC,EAAE,SAAS7M,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ3kB,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAE9C,WAAWyP,EAAE3M,EAAEk6D,sBAAsBttD,EAAE5M,EAAE0iE,kBAAkB1iE,EAAE++C,WAAWvyC,EAAEI,EAAEsyC,SAASC,KAAKtyC,EAAEqB,GAAGhO,EAAE7D,MAAM6oD,mBAAmB,CAACf,WAAW33C,EAAEytD,SAAS/5D,EAAEhD,WAAW+C,EAAEi6D,sBAAsBvtD,IAAIzM,EAAE27D,iBAAiBhvD,EAAEtM,EAAE4+C,KAAKA,KAAKj/C,EAAE27D,kBAAkBt7D,EAAE4+C,KAAK2jB,QAAQl2D,EAAEsyC,SAAS4jB,UAAUviE,EAAE4+C,KAAK2jB,OAAOl2D,EAAEsyC,SAAS4jB,SAASviE,EAAE4+C,KAAK4jB,kBAAkBn2D,EAAEsyC,SAAS6jB,oBAAoBxiE,EAAE4+C,KAAK4jB,iBAAiBn2D,EAAEsyC,SAAS6jB,kBAAkBxiE,EAAE4+C,KAAK6jB,YAAYziE,EAAE4+C,KAAK6jB,WAAWr2B,YAAY//B,EAAEsyC,SAASvS,aAAapsC,EAAE4+C,KAAKxS,WAAW//B,EAAEsyC,SAASvS,WAAWpsC,EAAE4+C,KAAK1G,kBAAkB7rC,EAAEsyC,SAASzG,0BAA0Bl4C,EAAEu+C,WAAWv+C,EAAE4+C,KAAK8jB,SAASr2D,EAAEsyC,SAAS+jB,SAAS/iE,EAAEigE,KAAKzzD,GAAAA,EAAI,EAAG,GAAGnM,EAAE4+C,KAAKghB,MAAvsB,CAA8sB,CAACt7C,QAAQtkB,EAAE05D,SAASj6D,EAAE++C,UAAUlyC,EAAE3P,WAAWgD,EAAEwiE,kBAAkBziE,EAAEi6D,sBAAsBvtD,IAAI,SAAS3M,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ3kB,EAAEF,EAAEi6D,SAASh6D,EAAED,EAAE9C,WAAWyP,EAAE3M,EAAEk6D,sBAAsB,mBAAmBhsD,GAAGhO,EAAE7D,MAAM0iE,gBAAgB7wD,GAAGhO,EAAE7D,MAAM0iE,eAAe7+D,EAAED,EAAE7C,eAAe,IAAIwP,EAAEmB,GAAG4xD,cAAcp/D,GAAGiM,EAAE0B,GAAGhO,EAAE7D,MAAM6oD,mBAAmB,CAACf,WAAWv3C,EAAEqtD,SAAS/5D,EAAEhD,WAAW+C,EAAEi6D,sBAAsBvtD,IAAIzM,EAAE27D,iBAAiBrvD,EAAEjM,EAAE4+C,KAAKA,KAAKj/C,EAAE27D,iBAAiBt7D,EAAE4+C,KAAKghB,KAAK4C,iBAAiBxiE,EAAE4+C,KAAK4jB,iBAAiBxiE,EAAE4+C,KAAKghB,KAAK4C,iBAAiBxiE,EAAE4+C,KAAK2jB,OAAOviE,EAAE4+C,KAAKghB,KAAK2C,QAAQl2D,EAAE1M,EAAEigE,KAAKzzD,GAAAA,EAAI,EAAG,GAAGnM,EAAE4+C,KAAKghB,MAAze,CAAgf,CAACt7C,QAAQtkB,EAAE05D,SAASj6D,EAAE9C,WAAWgD,EAAEg6D,sBAAsBvtD,IAAI,SAAS3M,GAAG,IAAIO,EAAEqM,EAAE5M,EAAE,kBAAkB,SAASO,GAAGyN,GAAGhO,GAAG,SAASO,SAASP,EAAEm/C,KAAKghB,KAAK+C,UAAU,SAAS3iE,GAAGyN,GAAGhO,IAAI,SAASA,EAAEm/C,KAAKghB,KAAK+C,YAAYljE,EAAEm/C,KAAK+jB,UAAU,cAAcljE,EAAEm/C,KAAKghB,KAAK+C,YAAYljE,EAAEm/C,KAAK+jB,UAAU,OAAOljE,EAAEm/C,KAAKghB,KAAK+C,UAAU,QAA3P,CAAoQ3iE,OAAhkE,CAAwkE,CAACskB,QAAQtkB,EAAErD,WAAWgD,EAAEwiE,kBAAkBziE,EAAEi6D,sBAAsBl6D,IAAImjE,GAAG5iE,IAAIsgE,GAAGtgE,YAArnF,CAAkoF,CAACT,SAAS6M,EAAEzP,WAAW+C,EAAE4hD,MAAMthD,EAAEmiE,kBAAkBn0D,EAAE2rD,sBAAsBnqD,IAAIqmB,MAAM,WAAW,OAAOvpB,EAAE+1D,GAAG,CAACJ,cAActiE,EAAE2iE,cAAc5iE,EAAE4hD,MAAMthD,IAAI42B,QAAQC,SAAQ,SAAU,SAASypC,GAAG7gE,IAAI,SAASA,GAAG,IAAIO,EAAE0N,GAAGjO,GAAG,OAAOs5B,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,MAAM,WAAWogE,GAAGpgE,KAAKA,EAAEu8D,WAAWruD,GAAGlO,EAAE3D,SAAhH,CAA0H2D,GAAGoO,GAAG8xD,YAAYlgE,UAAUA,EAAEm/C,KAAKghB,KAAKngE,EAAEm/C,KAAK8jB,iBAAiBjjE,EAAEm/C,KAAK8jB,SAASE,GAAGnjE,GAAG,SAASihE,GAAGjhE,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,QAAQ4+B,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,OAAOyhE,GAAG,CAACjE,UAAUvvD,GAAGjO,GAAG9C,WAAWgD,EAAExF,OAAOuF,OAAO,SAASkhE,GAAGnhE,GAAG,IAAIO,EAAE0N,GAAGjO,GAAG,GAAGs5B,MAAMF,QAAQ74B,GAAG,IAAI,IAAIL,EAAE,EAAEA,EAAEK,EAAE4K,OAAOjL,IAAI,CAAC,IAAID,EAAEM,EAAEL,GAAG,GAAGgO,GAAGjO,EAAE5D,QAAQ4D,EAAEs8D,SAAS,OAAOt8D,GAAG,SAAS+N,GAAGhO,GAAG,IAAIO,EAAE4gE,GAAGnhE,GAAG,OAAOO,GAAG2N,GAAG3N,EAAElE,MAAMqgE,qBAAqB18D,GAAG,SAASsiE,GAAGtiE,GAAG,OAAO4M,EAAE5M,EAAE,0BAA0B,IAAIiT,OAAOrG,EAAE5M,EAAE,uDAAuD,KAAK,SAASiO,GAAGjO,GAAG,OAAOA,EAAEw9D,WAAWx9D,EAAEm/C,MAAMn/C,EAAEm/C,KAAKqe,UAAU,SAAS4F,GAAGpjE,GAAG,OAAO4M,EAAE5M,EAAE,4CAA4C4M,EAAE5M,EAAE,oBAAoB,SAASiiE,GAAGjiE,GAAGsiE,GAAGtiE,GAAGoU,SAAS,SAASpU,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAE4gE,GAAGnhE,GAAGO,SAAI,IAASA,EAAEs7D,kBAAkBuH,GAAG7iE,KAAKP,EAAEm/C,KAAKA,YAAYn/C,EAAEm/C,KAAKghB,MAAM/xD,GAAGilB,QAAQrzB,IAAIO,EAAE4/D,OAAOngE,EAAEm/C,KAAKghB,KAAKzzD,GAAAA,EAAI,EAAG,GAAGnM,EAAE4/D,QAAjJ,CAA0JngE,MAAM,SAASmjE,GAAGnjE,GAAG,IAAIO,EAAE0N,GAAGjO,GAAGs5B,MAAMF,QAAQ74B,IAAIA,EAAE6T,SAAS,SAAS7T,GAAG,WAAW6/D,GAAG7/D,KAAKA,EAAEg8D,WAAWruD,GAAG3N,EAAElE,OAAO+mE,GAAG7iE,KAAKP,EAAEm/C,KAAKA,QAAQ5+C,EAAEg8D,UAAS,SAAUh8D,EAAE4/D,SAAS,SAASoC,GAAGviE,GAAG,OAAOA,EAAEmgE,MAAMngE,EAAEm/C,MAAMn/C,EAAEm/C,KAAKghB,KAAK,SAASkD,GAAGrjE,GAAG,IAAIO,EAAEgiE,GAAGviE,GAAG,OAAOA,EAAE8+C,YAAYv+C,GAAGA,EAAEu+C,WAAW,SAASkjB,GAAGhiE,GAAG,IAAIO,EAAEP,EAAE6kB,QAAQ3kB,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,OAAO2oE,GAAG9iE,IAAIkhE,GAAG,CAACjE,UAAUvvD,GAAG1N,GAAGrD,WAAWgD,EAAExF,OAAOuF,IAAI,SAASwhE,GAAGzhE,GAAG,IAAIO,EAAEP,EAAEw9D,UAAUt9D,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAOgS,EAAE,GAAG,OAAO4sB,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,QAAQ,WAAWogE,GAAGpgE,IAAIA,EAAEu8D,WAAWruD,GAAGlO,EAAE3D,cAAS,IAASqQ,EAAE1M,EAAE3D,QAAQqQ,EAAE1M,EAAE3D,MAAM6R,GAAGlO,EAAE3D,MAAM0/D,aAAa,CAAC7+D,WAAWgD,EAAExF,OAAOuF,KAAKyM,EAAE1M,EAAE3D,UAAU,SAAS8lE,GAAGniE,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAEk6D,sBAAsB,GAAGh6D,EAAE,OAAOi3B,QAAQC,QAAQl3B,GAAG,IAAID,EAAE,GAAGyM,EAAE,GAAGC,EAAEpM,EAAEq+C,IAAI0kB,mBAAmBltC,MAAM,SAASp2B,GAAG0M,EAAE+sD,cAAcz5D,KAAKC,EAAE+Y,KAAKrM,GAAG,IAAIC,EAAErM,EAAEq+C,IAAIugB,eAAe/oC,MAAM,SAASp2B,GAAG0M,EAAEmtD,UAAU75D,KAAK,OAAOC,EAAE+Y,KAAKpM,GAAGuqB,QAAQkoB,IAAIp/C,GAAGm2B,MAAM,WAAW,OAAO1pB,KAAK,SAAS01D,GAAGpiE,GAAG,IAAIO,EAAEP,EAAEqiE,WAAWniE,EAAEF,EAAE6hD,MAAM5hD,EAAED,EAAE0iE,kBAAkB,GAAGziE,EAAE,OAAOk3B,QAAQC,QAAQn3B,GAAG,IAAIyM,EAAEnM,EAAEgjE,kBAAkB52D,EAAEpM,EAAEijE,oBAAoB52D,EAAE,GAAGJ,EAAE,GAAG,OAAOE,EAAE0H,SAAS,SAASpU,GAAG,IAAIO,EAAEL,EAAE0+C,IAAII,WAAWh/C,GAAGo2B,MAAM,SAAS71B,GAAG,OAAOA,EAAE0+C,gBAAgB7oB,MAAM,SAAS71B,GAAGqM,EAAE5M,GAAGO,QAAQiM,EAAEwM,KAAKzY,MAAMoM,EAAEyH,SAAS,SAASpU,GAAG,IAAIO,EAAEL,EAAE0+C,IAAI6kB,aAAazjE,GAAGo2B,MAAM,SAAS71B,GAAG,OAAOA,EAAE0+C,gBAAgB7oB,MAAM,SAAS71B,GAAGqM,EAAE5M,GAAGO,QAAQiM,EAAEwM,KAAKzY,MAAM42B,QAAQkoB,IAAI7yC,GAAG4pB,MAAM,WAAW,OAAOxpB,KAAK,SAAS82D,GAAG1jE,EAAEO,GAAG,GAAG,KAAKA,IAAI,IAAI,CAAC,OAAO,OAAO,SAASqQ,QAAQ5Q,GAAG,OAAOO,EAAE,SAASqiE,GAAG5iE,GAAG,IAAIO,EAAEP,EAAEwiE,cAActiE,EAAEF,EAAE6iE,cAAc5iE,EAAED,EAAE6hD,MAAMn1C,EAAE0xC,KAAKC,UAAUzxC,EAAErM,EAAE,2BAA2BmjE,MAAMtlB,KAAKC,UAAUzxC,EAAE1M,EAAE,2BAA2BwjE,KAAKtlB,KAAKC,UAAUzxC,EAAErM,EAAE,wDAAwDmjE,MAAMtlB,KAAKC,UAAUzxC,EAAE1M,EAAE,wDAAwDwjE,IAAI,OAAOh3D,EAAE,SAAS1M,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAEwiE,cAAcviE,EAAED,EAAE6iE,cAAcn2D,EAAEnM,EAAE7F,OAAO,OAAOgS,IAAIA,EAAEs2C,kBAAkBt2C,EAAEi2C,YAAY/1C,EAAEF,EAAE,mBAAmB,IAAIkE,QAAQ,WAAW,EAAErQ,EAAEqiD,cAAc3iD,GAAGa,EAAEP,EAAEL,EAAED,GAA/L,CAAmM,CAAC4hD,MAAM5hD,EAAEuiE,cAAcjiE,EAAEsiE,cAAc3iE,IAAIk2B,MAAM,WAAW,OAAO1pB,KAAKyqB,QAAQC,QAAQ1qB,GAAG,SAASg1D,GAAG1hE,GAAG,IAAIO,EAAEP,EAAEw9D,UAAUt9D,EAAEF,EAAE9C,WAAW+C,EAAED,EAAEtF,OAAO,OAAO4+B,MAAMF,QAAQ74B,IAAIA,EAAE0f,MAAM,SAASjgB,GAAG,MAAM,WAAWogE,GAAGpgE,KAAKA,EAAEu8D,UAAUruD,GAAGlO,EAAE3D,OAAO6R,GAAGlO,EAAE3D,MAAM++D,cAAc,CAACnB,SAASj6D,EAAE9C,WAAWgD,EAAExF,OAAOuF,OAAO,SAASiiE,GAAGliE,GAAG,IAAIO,EAAE+hE,GAAGtiE,GAAGE,EAAE,GAAGD,EAAE,GAAGyM,GAAE,EAAG,OAAOnM,EAAE6T,SAAS,SAAS7T,GAAG,IAAIN,EAAEgO,GAAG1N,GAAG,GAAGkhE,GAAG,CAACjE,UAAUv9D,EAAE/C,WAAW8C,IAAI,CAAC,IAAI2M,EAAE02D,GAAG9iE,GAAGoM,GAAGzM,EAAE8Y,KAAKrM,GAAGD,EAAEA,GAAGg1D,GAAG,CAAClE,UAAUv9D,EAAE/C,WAAW8C,QAAQ4M,EAAE5M,EAAE,4BAA4B,IAAIoU,SAAS,SAASpU,GAAG,IAAIO,EAAEP,EAAE8+C,WAAWv+C,GAAGN,EAAE+Y,KAAKzY,MAAM,CAACgjE,kBAAkBrjE,EAAEsjE,oBAAoBvjE,GAAG,SAAS0iE,GAAG3iE,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAEqiE,WAAW,OAAOriE,EAAE6hE,YAAY3hE,IAAIA,EAAEqjE,kBAAkBp4D,QAAQjL,EAAEsjE,oBAAoBr4D,SAASs1D,GAAGlgE,EAAEga,IAAIumD,qBAAqBL,GAAGlgE,EAAEga,IAAIumD,sBAAsB,SAAS9gE,GAAG,IAAIO,EAAEP,EAAE6hD,MAAM3hD,EAAEF,EAAEy9B,SAASx9B,EAAE,GAAGyM,EAAE,GAAGC,EAAE,GAAGH,EAAE,CAACiW,UAAU,CAAC,mBAAmBoC,QAAQ,CAAC,gBAAgB,kBAAkB,4BAA4B,oBAAoB,sBAAsB,+BAA+B,SAAShY,EAAE7M,GAAG,IAAIO,EAAE,GAAGL,EAAE0M,EAAE5M,EAAE,eAAe,OAAOE,GAAGsM,EAAEtM,IAAIsM,EAAEtM,GAAGkU,SAAS,SAASlU,GAAGK,EAAEL,GAAG0M,EAAE5M,EAAEE,MAAMk+C,KAAKC,UAAU99C,GAAG,SAASkM,EAAEzM,GAAG,IAAIO,EAAEP,EAAEohD,MAAMC,IAAI,GAAGphD,EAAEM,GAAG,CAAC,IAAImM,EAAEG,EAAE7M,GAAGC,EAAEM,GAAGrD,aAAawP,IAAIzM,EAAEM,GAAGrD,WAAWwP,EAAE,mBAAmBxM,GAAGD,EAAEM,GAAGojE,SAASzjE,EAAEF,IAAIC,EAAEM,GAAGojE,SAAQ,GAAI,SAASp1D,EAAEvO,EAAEE,GAAG,OAAOK,EAAEq+C,IAAI1+C,GAAGF,GAAGo2B,MAAM,SAAS71B,GAAGN,EAAED,GAAG,CAAC4jE,SAASrjE,EAAEsjE,gBAAgBp3D,GAAGk3D,SAAQ,EAAGzmE,WAAW2P,EAAEtM,EAAE7F,YAAY,MAAM,CAACopE,UAAU,SAAS9jE,GAAG,IAAIE,EAAEF,EAAEujE,kBAAkB32D,EAAE5M,EAAEwjE,oBAAoBh3D,EAAE,GAAG,OAAO,SAASxM,GAAG,IAAIO,EAAEP,EAAEwjE,oBAAoB92D,EAAE,GAAG1M,EAAEujE,kBAAkBnvD,SAAS,SAASpU,GAAG0M,EAAE1M,IAAG,KAAM2M,EAAE,GAAGpM,EAAE6T,SAAS,SAASpU,GAAG2M,EAAE3M,IAAG,KAAlI,CAAyI,CAACujE,kBAAkBrjE,EAAEsjE,oBAAoB52D,IAAI5P,OAAOiY,KAAKhV,GAAGmU,SAAS,SAASpU,GAAG0M,EAAE1M,IAAI2M,EAAE3M,KAAKC,EAAED,GAAG4jE,SAASG,iBAAiB9jE,EAAED,OAAOO,EAAEq+C,MAAM5hD,OAAOiY,KAAKvI,GAAG0H,SAAS,SAASpU,GAAG0M,EAAE1M,KAAKC,EAAED,IAAIwM,EAAEwM,KAAKzK,EAAEvO,EAAE,kBAAkBhD,OAAOiY,KAAKtI,GAAGyH,SAAS,SAASpU,GAAG2M,EAAE3M,KAAKC,EAAED,IAAIwM,EAAEwM,KAAKzK,EAAEvO,EAAE,qBAAqBm3B,QAAQkoB,IAAI7yC,IAAIu0D,YAAY,WAAW/jE,OAAOiY,KAAKhV,GAAGmU,SAAS,SAASpU,GAAGC,EAAED,GAAG4jE,SAASG,aAAa9jE,EAAE,KAA7uC,CAAmvC,CAAC4hD,MAAMthD,EAAEk9B,SAAS,SAASz9B,GAAG,OAAOsO,GAAG,CAACuzC,MAAMthD,EAAEshE,WAAW7hE,IAAIo2B,MAAM,WAAW,OAAO71B,EAAEq+C,IAAIolB,wBAAwBvD,GAAGlgE,EAAEga,IAAIumD,qBAAqBgD,UAAU5jE,IAAIi3B,QAAQC,eAAe,SAASp3B,EAAEO,EAAEL,GAAgB,SAASD,EAAED,GAAG,IAAIO,EAAE,SAASP,EAAEO,GAAG,IAAIL,EAAED,EAAEM,EAAE,OAAON,EAAE,GAAGC,EAAE,GAAGD,EAAE,IAAI,KAAKC,GAAG,GAAGD,EAAE,GAAGgT,OAAOhT,GAAGka,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAKvJ,QAAQ1Q,IAAI,EAAEF,EAAEC,EAAE,GAAG6U,OAAOsF,aAAala,GAAvJ,CAA2JF,EAAE,IAAIE,EAAEiM,KAAK0I,MAAM7U,EAAE,IAAI,OAAOE,EAAE,EAAED,EAAEC,GAAGK,EAAEA,EAAE,SAASmM,EAAE1M,GAAG,OAAO0M,EAAE,mBAAmB0sD,QAAQ,iBAAiBA,OAAOkD,SAAS,SAASt8D,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBo5D,QAAQp5D,EAAEI,cAAcg5D,QAAQp5D,IAAIo5D,OAAOj5D,UAAU,gBAAgBH,IAAIA,GAAGE,EAAEK,EAAEA,GAAG,IAAIoM,EAAE,CAACyrB,SAAS,SAASp4B,EAAEO,EAAEL,GAAG,GAAG,MAAMF,GAAG,MAAMO,EAAE,OAAOL,EAAE,IAAI,IAAID,EAAEM,EAAEsO,MAAM,KAAKnC,EAAE1M,EAAE2M,EAAE,EAAEA,EAAE1M,EAAEkL,SAASwB,EAAE,CAAC,IAAIC,EAAE3M,EAAE0M,GAAG,GAAG,KAAKC,EAAE,CAAC,QAAG,IAASF,EAAEE,IAAI,OAAOF,EAAEE,GAAG,OAAO1M,EAAEwM,EAAEA,EAAEE,IAAI,OAAOF,GAAGo+C,SAAS,SAAS9qD,EAAEO,EAAEL,GAAG,GAAG,MAAMF,GAAG,MAAMO,EAAE,CAAC,IAAI,IAAIN,EAAEM,EAAEsO,MAAM,KAAKnC,EAAEzM,EAAEA,EAAEkL,OAAO,GAAGwB,EAAE3M,EAAE4M,EAAE,EAAEA,EAAE3M,EAAEkL,OAAO,IAAIyB,EAAE,CAAC,IAAIJ,EAAEvM,EAAE2M,QAAG,IAASD,EAAEH,IAAI,OAAOG,EAAEH,KAAKG,EAAEH,GAAGuC,OAAO7C,OAAOjM,EAAE2M,EAAE,IAAI,GAAG,IAAID,EAAEA,EAAEH,QAAG,IAAStM,EAAEyM,EAAED,GAAGxM,SAASyM,EAAED,KAAKq7C,QAAQ,SAAS/nD,GAAG,OAAO,IAAIhD,OAAOiY,KAAKjV,GAAGmL,QAAQnL,EAAEI,cAAcpD,QAAQinE,cAAc,SAASjkE,GAAG,MAAM,wBAAwBoT,KAAK1G,EAAE1M,KAAKya,WAAW,WAAW,OAAOxa,EAAEkM,KAAKC,MAAM,MAAMD,KAAKqO,SAAS,OAAOzJ,QAAQ,MAAM,MAAM,SAASnE,EAAE5M,GAAG,OAAO,SAASA,GAAG,GAAGs5B,MAAMF,QAAQp5B,GAAG,OAAOwM,EAAExM,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBo5D,QAAQA,OAAOkD,YAAYt/D,OAAOgD,GAAG,OAAOs5B,MAAM6V,KAAKnvC,GAA1F,CAA8FA,IAAI,SAASA,EAAEO,GAAG,GAAIP,EAAJ,CAAa,GAAG,iBAAiBA,EAAE,OAAOwM,EAAExM,EAAEO,GAAG,IAAIL,EAAElD,OAAOmD,UAAUkM,SAAS0M,KAAK/Y,GAAG4S,MAAM,GAAG,GAAuD,MAApD,WAAW1S,GAAGF,EAAEI,cAAcF,EAAEF,EAAEI,YAAYmZ,MAAS,QAAQrZ,GAAG,QAAQA,EAASo5B,MAAM6V,KAAKnvC,GAAM,cAAcE,GAAG,2CAA2CkT,KAAKlT,GAAUsM,EAAExM,EAAEO,QAAlF,GAApN,CAA0SP,IAAI,WAAW,MAAM,IAAIiP,UAAU,wIAA/B,GAA0K,SAASzC,EAAExM,EAAEO,IAAI,MAAMA,GAAGA,EAAEP,EAAEmL,UAAU5K,EAAEP,EAAEmL,QAAQ,IAAI,IAAIjL,EAAE,EAAED,EAAE,IAAIq5B,MAAM/4B,GAAGL,EAAEK,EAAEL,IAAID,EAAEC,GAAGF,EAAEE,GAAG,OAAOD,EAAE,SAAS4M,EAAE7M,GAAG,OAAO,SAASA,GAAG,GAAGs5B,MAAMF,QAAQp5B,GAAG,OAAOyM,EAAEzM,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBo5D,QAAQA,OAAOkD,YAAYt/D,OAAOgD,GAAG,OAAOs5B,MAAM6V,KAAKnvC,GAA1F,CAA8FA,IAAI,SAASA,EAAEO,GAAG,GAAIP,EAAJ,CAAa,GAAG,iBAAiBA,EAAE,OAAOyM,EAAEzM,EAAEO,GAAG,IAAIL,EAAElD,OAAOmD,UAAUkM,SAAS0M,KAAK/Y,GAAG4S,MAAM,GAAG,GAAuD,MAApD,WAAW1S,GAAGF,EAAEI,cAAcF,EAAEF,EAAEI,YAAYmZ,MAAS,QAAQrZ,GAAG,QAAQA,EAASo5B,MAAM6V,KAAKnvC,GAAM,cAAcE,GAAG,2CAA2CkT,KAAKlT,GAAUuM,EAAEzM,EAAEO,QAAlF,GAApN,CAA0SP,IAAI,WAAW,MAAM,IAAIiP,UAAU,wIAA/B,GAA0K,SAASxC,EAAEzM,EAAEO,IAAI,MAAMA,GAAGA,EAAEP,EAAEmL,UAAU5K,EAAEP,EAAEmL,QAAQ,IAAI,IAAIjL,EAAE,EAAED,EAAE,IAAIq5B,MAAM/4B,GAAGL,EAAEK,EAAEL,IAAID,EAAEC,GAAGF,EAAEE,GAAG,OAAOD,EAAE,SAASsO,EAAEvO,EAAEO,EAAEL,GAAG,GAAGF,EAAE,CAAC,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEmL,OAAOlL,IAAI,GAAGD,EAAEC,GAAGM,KAAKL,EAAE,OAAOD,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI8P,EAAE,CAACm0D,gBAAgB,SAASlkE,EAAEO,GAAG,KAAKP,GAAGO,GAAGP,EAAEmL,QAAQ5K,EAAE4K,QAAQ,OAAM,EAAG,IAAIjL,EAAEF,EAAE4Q,QAAQrQ,EAAE,IAAI,IAAI,IAAIL,EAAE,CAAC,IAAI,IAAID,EAAE,EAAEA,EAAEM,EAAE4K,OAAOlL,IAAI,CAAC,IAAIyM,EAAE1M,EAAE4Q,QAAQrQ,EAAEN,IAAI,GAAGC,EAAEwM,EAAE,OAAM,EAAGxM,EAAEwM,EAAE,OAAM,EAAG,OAAM,GAAIy3D,WAAW,SAASnkE,EAAEO,GAAG,IAAIL,EAAE,IAAIA,EAAE,EAAEA,EAAEF,EAAEmL,SAASjL,EAAEF,EAAEE,IAAI,GAAGF,EAAEE,IAAIK,KAAKP,EAAEE,GAAGF,EAAEgZ,KAAKzY,IAAI6jE,aAAa,SAASpkE,EAAEO,GAAG,IAAIL,EAAED,EAAE,EAAE,IAAIC,EAAE,EAAEA,EAAEF,EAAEmL,SAASjL,EAAEF,EAAEE,GAAGK,IAAIP,EAAEE,GAAGF,EAAEE,KAAKK,IAAIN,EAAEC,GAAG,OAAOF,EAAEw+B,OAAOv+B,EAAE,GAAGA,GAAGokE,wBAAwB,SAASrkE,EAAEO,EAAEL,GAAG,GAAGF,EAAE,CAAC,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEmL,OAAOlL,IAAI,GAAGD,EAAEC,GAAGM,KAAKL,EAAE,OAAOF,EAAEC,GAAG,OAAO,KAAK,OAAO,MAAMqkE,yBAAyB/1D,GAAOuB,EAAE5P,EAAE,GAAGmQ,EAAEnQ,EAAEA,EAAE4P,GAAOvT,EAAE,CAACgoE,cAAc,SAASvkE,GAAG,IAAIO,EAAEL,EAAEF,EAAEwkE,aAAavkE,EAAED,EAAE5C,cAAcsP,EAAExM,EAAEX,KAAK,IAAIgB,EAAEmM,EAAE/M,YAAYqZ,KAAKW,MAAMpZ,EAAEqM,EAAE3M,EAAE5C,cAAc,IAAImP,EAAEK,EAAEF,EAAEyrB,SAASn4B,EAAE,4CAA4C4M,IAAIL,EAAEE,EAAE+3D,oBAAoBzrD,KAAKW,MAAMnN,EAAEI,EAAEC,KAAK63D,YAAY,SAAS1kE,GAAG,IAAIO,EAAEL,EAAEF,EAAEwkE,aAAavkE,EAAED,EAAE5C,cAAcsP,EAAExM,EAAEX,KAAK,IAAIgB,EAAEmM,EAAE5M,UAAUkZ,KAAKW,MAAMpZ,EAAEsM,EAAE5M,EAAE3C,YAAY,IAAIsP,EAAEJ,EAAEG,EAAEyrB,SAASn4B,EAAE,0CAA0CuM,IAAII,EAAEF,EAAEi4D,kBAAkB3rD,KAAKW,MAAM/M,EAAEC,EAAEL,KAAKo4D,wBAAwB,SAAS5kE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAE5C,cAAc6C,EAAEM,EAAEhB,KAAK,GAAGW,EAAE2kE,wBAAwB3kE,EAAE2kE,sBAAsB,IAAI5kE,EAAE6kE,qBAAqB5kE,EAAE2kE,sBAAsB5xD,SAAS,IAAIvG,EAAEC,EAAEyrB,SAASl4B,EAAE,sDAAsDwM,GAAGqD,EAAEm0D,gBAAgBx3D,EAAEzM,EAAE6kE,wBAAwB7kE,EAAE6kE,qBAAqBp4D,EAAEuG,WAAW8xD,eAAe,SAAS/kE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAE9C,WAAWF,OAAOiY,KAAK/U,GAAGkU,SAAS,SAASpU,GAAGO,EAAErD,WAAW8C,GAAGE,EAAEF,OAAOglE,oBAAoB,SAAShlE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAE9C,WAAWgD,EAAE+kE,iBAAiB/kE,EAAE+kE,eAAe,IAAI/kE,EAAE+kE,eAAe1I,WAAWv/D,OAAOiY,KAAK/U,EAAE+kE,eAAe1I,UAAUnoD,SAAS,SAASpU,GAAGO,EAAErD,WAAWuO,eAAezL,KAAKO,EAAErD,WAAW8C,GAAGE,EAAE+kE,eAAe1I,SAASv8D,cAAcE,EAAE+kE,eAAe1I,UAAUr8D,EAAE+kE,eAAeC,UAAW,SAASllE,GAAGhD,OAAOiY,KAAKjV,EAAEilE,eAAeC,SAAS9wD,SAAS,SAAS7T,GAAGP,EAAEilE,eAAeC,QAAQ3kE,GAAG4kE,KAAKx4D,EAAEyrB,SAASp4B,EAAEO,IAAIoM,EAAEm+C,SAAS9qD,EAAEO,EAAEP,EAAEilE,eAAeC,QAAQ3kE,GAAG4uC,SAApK,CAA8KjvC,UAAUA,EAAE+kE,eAAeC,SAAShlE,EAAE+kE,eAAejC,aAAar2D,EAAEo7C,QAAQ7nD,EAAE+kE,eAAejC,oBAAoB9iE,EAAE+kE,gBAAgBG,uBAAuB,SAASplE,GAAGA,EAAEoU,SAAS,SAASpU,GAAGqQ,EAAEzD,EAAEg0D,eAAe5gE,GAAGA,EAAEm/C,KAAKqe,YAAYx9D,EAAEqlE,MAAM,CAAC7H,UAAUx9D,EAAEm/C,KAAKqe,kBAAkBx9D,EAAEm/C,KAAKqe,gBAAgB,SAASltD,EAAEtQ,EAAEO,EAAEL,GAAG,IAAID,EAAEyM,EAAEE,EAAED,EAAEyrB,SAASp4B,EAAEO,GAAG,IAAIoM,EAAEs3D,cAAcr3D,GAAG,IAAI,IAAIF,GAAGA,GAAGzM,EAAEm+C,KAAKC,UAAUzxC,IAAI6D,MAAM,SAAS/D,EAAEvB,OAAO,GAAG,EAAE,OAAOyB,EAAEwxC,KAAKknB,MAAMrlE,GAAG,MAAMD,GAAG,OAAO2M,EAAEyrB,SAASp4B,EAAE,8BAA8B2M,EAAEm+C,SAAS9qD,EAAE,4BAA4B,IAAI,IAAIwM,EAAEG,EAAEyrB,SAASp4B,EAAE,6BAA6BwM,EAAEtM,KAAKsM,EAAEtM,GAAG,IAAIsM,EAAEtM,GAAGK,GAAGqM,EAAE,IAAIyI,EAAEnV,EAAE,GAAG2L,EAAE3L,EAAEA,EAAEmV,GAAG,SAAShV,EAAEL,EAAEO,GAAG,IAAIL,EAAE2L,GAAAA,EAAI,EAAG,GAAGtL,EAAEP,GAAG,OAAO2M,EAAEyrB,SAASl4B,EAAE,kCAAkCyM,EAAEm+C,SAAS5qD,EAAE,gCAAgC,CAACqlE,GAAG,OAAO54D,EAAEyrB,SAASl4B,EAAE,gCAAgCyM,EAAEm+C,SAAS5qD,EAAE,8BAA8B,CAACqlE,GAAG,MAAMrlE,EAAEuL,eAAe,iBAAiBvL,EAAEslE,YAAY,UAAUtlE,EAAE,SAAS+P,EAAEjQ,EAAEO,GAAG,OAAOsL,GAAAA,EAAI,EAAG,GAAGtL,EAAEP,GAAG,SAAS4L,EAAE5L,EAAEO,EAAEL,GAAG,MAAM,mBAAmBF,EAAEA,EAAEO,GAAGwO,OAAO7C,OAAOlM,GAAGE,EAAEF,EAAE,IAAI1F,EAAE6R,KAAKmB,IAAI,EAAE,IAAI,EAAE,SAASiD,EAAEvQ,GAAG,OAAO,SAASA,GAAG,GAAGs5B,MAAMF,QAAQp5B,GAAG,OAAOY,EAAEZ,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBo5D,QAAQA,OAAOkD,YAAYt/D,OAAOgD,GAAG,OAAOs5B,MAAM6V,KAAKnvC,GAA1F,CAA8FA,IAAI,SAASA,EAAEO,GAAG,GAAIP,EAAJ,CAAa,GAAG,iBAAiBA,EAAE,OAAOY,EAAEZ,EAAEO,GAAG,IAAIL,EAAElD,OAAOmD,UAAUkM,SAAS0M,KAAK/Y,GAAG4S,MAAM,GAAG,GAAuD,MAApD,WAAW1S,GAAGF,EAAEI,cAAcF,EAAEF,EAAEI,YAAYmZ,MAAS,QAAQrZ,GAAG,QAAQA,EAASo5B,MAAM6V,KAAKnvC,GAAM,cAAcE,GAAG,2CAA2CkT,KAAKlT,GAAUU,EAAEZ,EAAEO,QAAlF,GAApN,CAA0SP,IAAI,WAAW,MAAM,IAAIiP,UAAU,wIAA/B,GAA0K,SAASrO,EAAEZ,EAAEO,IAAI,MAAMA,GAAGA,EAAEP,EAAEmL,UAAU5K,EAAEP,EAAEmL,QAAQ,IAAI,IAAIjL,EAAE,EAAED,EAAE,IAAIq5B,MAAM/4B,GAAGL,EAAEK,EAAEL,IAAID,EAAEC,GAAGF,EAAEE,GAAG,OAAOD,EAAE,SAASU,EAAEX,GAAG,OAAO,SAASA,GAAG,GAAGs5B,MAAMF,QAAQp5B,GAAG,OAAOD,EAAEC,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBo5D,QAAQA,OAAOkD,YAAYt/D,OAAOgD,GAAG,OAAOs5B,MAAM6V,KAAKnvC,GAA1F,CAA8FA,IAAI,SAASA,EAAEO,GAAG,GAAIP,EAAJ,CAAa,GAAG,iBAAiBA,EAAE,OAAOD,EAAEC,EAAEO,GAAG,IAAIL,EAAElD,OAAOmD,UAAUkM,SAAS0M,KAAK/Y,GAAG4S,MAAM,GAAG,GAAuD,MAApD,WAAW1S,GAAGF,EAAEI,cAAcF,EAAEF,EAAEI,YAAYmZ,MAAS,QAAQrZ,GAAG,QAAQA,EAASo5B,MAAM6V,KAAKnvC,GAAM,cAAcE,GAAG,2CAA2CkT,KAAKlT,GAAUH,EAAEC,EAAEO,QAAlF,GAApN,CAA0SP,IAAI,WAAW,MAAM,IAAIiP,UAAU,wIAA/B,GAA0K,SAASlP,EAAEC,EAAEO,IAAI,MAAMA,GAAGA,EAAEP,EAAEmL,UAAU5K,EAAEP,EAAEmL,QAAQ,IAAI,IAAIjL,EAAE,EAAED,EAAE,IAAIq5B,MAAM/4B,GAAGL,EAAEK,EAAEL,IAAID,EAAEC,GAAGF,EAAEE,GAAG,OAAOD,EAAE,IAAIQ,EAAE,CAACglE,uBAAuB,SAASzlE,EAAEO,EAAEL,GAAG,IAAID,EAAE,iBAAiB0M,EAAEyrB,SAAS73B,EAAE,0BAA0B,eAAeoM,EAAEyrB,SAASl4B,EAAE,eAAeyM,EAAEm+C,SAAS9qD,EAAE,cAAcC,GAAGD,EAAE0lE,cAAcxlE,EAAEwlE,eAAeC,oBAAoB,SAAS3lE,EAAEO,EAAEL,GAAGK,EAAEkL,eAAezL,KAAKE,EAAEF,GAAGO,EAAEP,KAAK4lE,yBAAyB,SAAS5lE,EAAEO,EAAEL,EAAED,GAAGM,EAAEkL,eAAezL,GAAGE,EAAEF,GAAGO,EAAEP,GAAGE,EAAEF,GAAGC,GAAG4lE,oBAAoB,WAAW,MAAM,CAAC1mB,KAAK,CAAChgD,UAAS,EAAG2mE,IAAI,GAAGN,YAAY,UAAU1mB,WAAW,GAAGinB,kBAAiB,EAAGC,YAAY,SAASC,gBAAgB,CAACC,gBAAgB,iBAAiBC,WAAW,YAAYC,eAAe,wBAAwBC,gBAAe,KAAMC,kBAAkB,WAAW,MAAM,CAACnnB,KAAK,CAAChgD,UAAS,EAAG2mE,IAAI,GAAGS,uBAAsB,GAAIznB,WAAW,GAAG0nB,YAAY,KAAKjC,cAAc,SAASvkE,GAAG,IAAIO,EAAEL,EAAEF,EAAEwkE,aAAavkE,EAAED,EAAEi8D,cAAcvvD,EAAE1M,EAAEg8D,cAAcrvD,EAAE3M,EAAEymE,gBAAgB75D,EAAE5M,EAAE0mE,iBAAiBl6D,EAAEtM,EAAEX,KAAK,GAAG,IAAIgB,EAAE,EAAEA,EAAEiM,EAAE7M,WAAWwL,SAAS5K,EAAE,CAAC,IAAIsM,EAAExM,EAAEmM,EAAE7M,WAAWY,GAAGqM,GAAGD,EAAEtP,YAAY8N,OAAOlL,EAAE0M,EAAEtP,YAAY2b,KAAKnM,GAAGF,EAAEs4D,eAAe7nE,cAAcC,YAAY2b,KAAKnM,GAAG,IAAItM,EAAE,EAAEA,EAAEiM,EAAEi4D,mBAAmBt5D,SAAS5K,EAAE,CAAC,IAAIkM,EAAEpM,EAAEmM,EAAEi4D,mBAAmBlkE,GAAGqM,GAAGD,EAAEtP,YAAY8N,OAAOuB,EAAEC,EAAEtP,YAAY2b,KAAKvM,GAAGE,EAAEs4D,eAAe7nE,cAAcC,YAAY2b,KAAKvM,KAAKi4D,YAAY,SAAS1kE,GAAG,IAAIO,EAAEL,EAAEF,EAAEwkE,aAAavkE,EAAED,EAAE2mE,YAAYj6D,EAAE1M,EAAE4mE,YAAYj6D,EAAE3M,EAAEymE,gBAAgB75D,EAAE5M,EAAE6mE,eAAer6D,EAAEtM,EAAEX,KAAK,GAAG,IAAIgB,EAAE,EAAEA,EAAEiM,EAAE1M,SAASqL,SAAS5K,EAAE,CAAC,IAAIsM,EAAEoD,EAAEzD,EAAE1M,SAASS,GAAGqM,GAAGD,EAAErP,UAAU6N,OAAOlL,EAAE0M,EAAErP,UAAU0b,KAAKnM,GAAGF,EAAEs4D,eAAe7nE,cAAcE,UAAU0b,KAAKnM,GAAG,IAAItM,EAAE,EAAEA,EAAEiM,EAAEm4D,iBAAiBx5D,SAAS5K,EAAE,CAAC,IAAIkM,EAAEwD,EAAEzD,EAAEm4D,iBAAiBpkE,GAAGqM,GAAGD,EAAErP,UAAU6N,OAAOuB,EAAEC,EAAErP,UAAU0b,KAAKvM,GAAGE,EAAEs4D,eAAe7nE,cAAcE,UAAU0b,KAAKvM,KAAKq6D,0BAA0B,SAAS9mE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAE+mE,eAAe9mE,OAAE,IAASC,EAAE,GAAGA,EAAEwM,EAAEnM,EAAEhB,KAAK,GAAGoN,EAAE1M,EAAEN,YAAY,CAAChB,IAAI,GAAGiO,EAAE3M,EAAEH,UAAU,CAACnB,IAAI,GAAG6N,EAAEZ,EAAEgB,EAAEjO,IAAI+N,EAAE/M,WAAWwL,OAAO7Q,GAAGuS,EAAEjB,EAAEgB,EAAEhO,IAAI8N,EAAE/M,WAAWwL,OAAO,GAAG,MAAM,CAAC8wD,cAAcrwD,EAAEe,EAAEhO,IAAI6N,EAAElS,GAAG0hE,cAAcpwD,EAAEe,EAAE/N,IAAIiO,EAAE,GAAG85D,YAAYn6D,EAAEo6D,YAAY/5D,IAAI+3D,wBAAwB,SAAS5kE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEymE,gBAAgBxmE,EAAEM,EAAEhB,KAAK,GAAGmN,EAAExM,EAAE7C,YAAY8N,OAAOjL,EAAE5C,UAAU6N,OAAOjL,EAAE2kE,sBAAsB5kE,EAAE6kE,qBAAqB7xD,SAAS,IAAItG,EAAEzM,EAAE2kE,sBAAsB15D,OAAO,GAAGwB,IAAID,EAAE,IAAIxM,EAAE+kE,iBAAiB/kE,EAAE+kE,eAAe7nE,cAAcynE,sBAAsB5kE,EAAE6kE,qBAAqB7xD,UAAUtG,IAAID,GAAGC,EAAED,GAAGqD,EAAEo0D,WAAWjkE,EAAE2kE,sBAAsBl4D,KAAKA,MAAMA,EAAEoD,EAAEq0D,aAAalkE,EAAE2kE,sBAAsBl4D,KAAKq6D,oBAAoB,SAAShnE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEinE,kBAAkBhnE,EAAED,EAAEknE,cAAcx6D,EAAE,CAACu4D,eAAe,CAAC1I,SAAS,GAAGyG,WAAW,KAAK,OAAOhmE,OAAOiY,KAAK1U,EAAErD,YAAYkX,SAAS,SAASpU,GAAG,mBAAmBA,EAAEO,EAAErD,WAAW8C,GAAGgjE,aAAat2D,EAAEu4D,eAAejC,WAAWn3D,GAAAA,EAAI,EAAG,GAAGtL,EAAErD,WAAW8C,GAAGgjE,aAAa,kBAAkBhjE,GAAGC,EAAE0M,EAAEm+C,SAASp+C,EAAE,GAAGuG,OAAOhT,EAAE,kBAAkBM,EAAErD,WAAWE,eAAe8C,EAAEuL,eAAezL,KAAK,IAAI,CAAC,WAAW,wBAAwB,mBAAmB4Q,QAAQ5Q,IAAI,SAASA,EAAEO,GAAG,MAAM,eAAeA,GAAG+4B,MAAMF,QAAQp5B,EAAEO,KAAKP,EAAEO,GAAG0f,MAAM,SAASjgB,GAAG,MAAM,YAAYA,EAAEuP,OAAtG,CAA8GhP,EAAErD,WAAW8C,GAAG0M,EAAE1M,GAAGO,EAAErD,WAAW8C,GAAG0M,EAAEu4D,eAAe1I,SAASv8D,GAAGO,EAAErD,WAAW8C,MAAM,QAAQ0M,EAAEb,GAAAA,EAAI,EAAG,GAAG3L,EAAEwM,IAAIgf,aAAahf,EAAEgf,WAAW,IAAIhf,GAAGy6D,wBAAwB,SAASnnE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEi8D,cAAch8D,EAAED,EAAEg8D,cAActvD,EAAE1M,EAAE2mE,YAAYh6D,EAAE3M,EAAE4mE,YAAYh6D,EAAErM,EAAEhB,KAAK,GAAG,OAAOqN,EAAEjN,WAAWwL,OAAOjL,GAAGA,EAAE,GAAG0M,EAAE9M,SAASqL,OAAOuB,GAAGA,EAAE,GAAGE,EAAE63D,mBAAmBt5D,OAAO,GAAGyB,EAAEjN,WAAWwL,OAAOyB,EAAE63D,mBAAmBt5D,OAAOlL,GAAG2M,EAAE+3D,iBAAiBx5D,OAAO,GAAGyB,EAAE9M,SAASqL,OAAOyB,EAAE+3D,iBAAiBx5D,OAAOwB,IAAID,GAAGE,EAAE9M,SAASqL,OAAO,IAAIjL,GAAG0M,EAAEjN,WAAWwL,OAAO,GAAGi8D,kBAAkB,SAASpnE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEi8D,cAAch8D,EAAED,EAAEg8D,cAActvD,EAAE1M,EAAE2mE,YAAYh6D,EAAE3M,EAAE4mE,YAAYh6D,EAAE5M,EAAEymE,gBAAgBj6D,EAAEjM,EAAEhB,KAAK,GAAGqN,EAAEq4D,iBAAiBr4D,EAAEq4D,eAAe,IAAIr4D,EAAEq4D,eAAe7nE,gBAAgBwP,EAAEq4D,eAAe7nE,cAAc,KAAKoP,EAAE7M,WAAWwL,OAAOjL,GAAGA,EAAE,GAAGsM,EAAEi4D,oBAAoBj4D,EAAEi4D,mBAAmBt5D,QAAQqB,EAAE7M,WAAWwL,OAAOqB,EAAEi4D,mBAAmBt5D,OAAOlL,KAAK2M,EAAEq4D,eAAe7nE,cAAcC,cAAcuP,EAAEq4D,eAAe7nE,cAAcC,YAAY,MAAMmP,EAAE1M,SAASqL,OAAOuB,GAAGA,EAAE,GAAGF,EAAEm4D,kBAAkBn4D,EAAEm4D,iBAAiBx5D,QAAQqB,EAAE1M,SAASqL,OAAOqB,EAAEm4D,iBAAiBx5D,OAAOwB,KAAKC,EAAEq4D,eAAe7nE,cAAcE,YAAYsP,EAAEq4D,eAAe7nE,cAAcE,UAAU,MAAMoP,GAAGF,EAAE1M,SAASqL,SAASyB,EAAEq4D,eAAe7nE,cAAcE,YAAYsP,EAAEq4D,eAAe7nE,cAAcE,UAAU,MAAM4C,GAAGsM,EAAE7M,WAAWwL,SAASyB,EAAEq4D,eAAe7nE,cAAcC,cAAcuP,EAAEq4D,eAAe7nE,cAAcC,YAAY,MAAMgqE,wBAAwB,SAASrnE,GAAG,IAAIO,EAAEP,EAAE6iE,cAAc3iE,EAAEF,EAAE+mE,eAAe9mE,EAAED,EAAEknE,cAAc,GAAGhnE,EAAEP,YAAY,mBAAmBO,EAAEP,WAAWs0C,MAAM,CAAC,IAAIvnC,EAAEC,EAAEyrB,SAAS73B,EAAEN,GAAG,IAAI7C,cAAcwP,EAAE2D,EAAE7D,EAAErP,aAAaqP,EAAErP,YAAY,GAAGuP,EAAEwH,SAAS,SAASpU,GAAG0M,EAAErP,YAAY2b,KAAKhZ,GAAGE,EAAEP,WAAWs0C,MAAMj0C,EAAEO,QAAQ+mE,sBAAsB,SAAStnE,GAAG,IAAIO,EAAEP,EAAE6iE,cAAc3iE,EAAEF,EAAE+mE,eAAe9mE,EAAED,EAAEknE,cAAc,GAAGhnE,EAAEJ,UAAU,mBAAmBI,EAAEJ,SAASm0C,MAAM,CAAC,IAAIvnC,EAAEC,EAAEyrB,SAAS73B,EAAEN,GAAG,IAAI7C,cAAcwP,EAAEjM,EAAE+L,EAAEpP,WAAWoP,EAAEpP,UAAU,GAAGsP,EAAEwH,SAAS,SAASpU,GAAG0M,EAAEpP,UAAU0b,KAAKhZ,GAAGE,EAAEJ,SAASm0C,MAAMj0C,EAAEO,QAAQgnE,yBAAyB,SAASvnE,GAAG,IAAIO,EAAEP,EAAEF,SAASI,EAAEF,EAAEshE,cAAc/gE,GAAGL,GAAGmQ,EAAEzD,EAAEw0D,qBAAqBlhE,IAAIK,EAAE6T,SAAS,SAASpU,GAAGA,EAAEqlE,OAAOrlE,EAAEqlE,MAAM7H,YAAYx9D,EAAEm/C,KAAKqe,UAAUx9D,EAAEqlE,MAAM7H,kBAAkBx9D,EAAEqlE,WAAW,SAASltD,EAAEnY,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,4BAA4B,IAAIO,GAAG,QAAQL,IAAIlD,OAAOiY,KAAK/U,GAAGkU,SAAS,SAAS7T,GAAGoM,EAAEm+C,SAAS9qD,EAAEO,EAAEL,EAAEK,cAAcP,EAAEilE,eAAejC,WAAWziE,IAAG,GAAI,IAAIC,EAAE,CAACgnE,iBAAiB,SAASxnE,GAAG,IAAIO,EAAEP,EAAEynE,aAAavnE,EAAEF,EAAEknE,cAAcjnE,EAAED,EAAE0nE,aAAah7D,EAAE,WAAW,IAAI,IAAI1M,EAAEoN,UAAUjC,OAAO,QAAG,IAASiC,UAAU,GAAGA,UAAU,GAAG,EAAE7M,EAAE,CAAChB,KAAK,GAAGrC,WAAW,IAAIgD,EAAE,EAAEA,EAAEF,IAAIE,EAAEK,EAAEhB,KAAKyZ,KAAK,CAACrZ,WAAW,GAAGG,SAAS,GAAG2kE,mBAAmB,GAAGE,iBAAiB,GAAGG,qBAAqB,KAAK,OAAOvkE,EAAtO,GAA2OqM,EAAErM,EAAEonE,UAAUn7D,EAAEG,EAAEyrB,SAASxrB,EAAE1M,GAAG,IAAI2M,EAAEL,EAAEpP,cAAc,OAAOyP,EAAEg4D,wBAAwBh4D,EAAEg4D,sBAAsB,IAAItoE,EAAEgoE,cAAc,CAACC,aAAa93D,EAAEtP,cAAcyP,IAAItQ,EAAEmoE,YAAY,CAACF,aAAa93D,EAAEtP,cAAcyP,IAAItQ,EAAEqoE,wBAAwB,CAACJ,aAAa93D,EAAEtP,cAAcyP,WAAWA,EAAEo4D,eAAe1oE,EAAEwoE,eAAe,CAACP,aAAa93D,EAAExP,WAAW0P,IAAI1M,IAAIwM,EAAExP,WAAWE,cAAcyP,SAASL,EAAEpP,eAAeb,EAAEyoE,oBAAoB,CAACR,aAAa93D,EAAExP,WAAW0P,IAAI3M,GAAG1D,EAAE6oE,uBAAuB14D,EAAExP,WAAWE,cAAcE,WAAWg8B,MAAMF,QAAQ1sB,EAAExP,WAAW0qE,WAAWt3D,EAAE5D,EAAExP,WAAW,UAAU,wBAAwBwP,EAAExP,WAAW0qE,SAASl7D,EAAExP,WAAWE,cAAcyqE,wBAAwBv3D,EAAE5D,EAAExP,WAAW,sCAAsC,iBAAiBwP,EAAExP,WAAWE,cAAcyqE,sBAAsB,IAAIn7D,EAAExP,WAAWE,cAAc0qE,gBAAgBp7D,EAAExP,WAAWE,cAAc0qE,eAAe38D,SAASmF,EAAE5D,EAAExP,WAAW,+BAA+B,iBAAiBwP,EAAExP,WAAWE,cAAc0qE,eAAe,IAAIp7D,GAAGq7D,iBAAiB,SAAS/nE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEinE,kBAAkBhnE,OAAE,IAASC,EAAE,GAAGA,EAAEwM,EAAE1M,EAAE+mE,eAAen6D,OAAE,IAASF,EAAE,GAAGA,EAAEF,EAAExM,EAAEgoE,sBAAsBn7D,OAAE,IAASL,EAAE,GAAGA,EAAEC,EAAEzM,EAAEknE,cAAc34D,EAAEvO,EAAEioE,UAAUl4D,EAAE/P,EAAEkoE,iBAAiBp4D,OAAE,IAASC,GAAGA,EAAEM,EAAErQ,EAAEmoE,sBAAsB5rE,OAAE,IAAS8T,GAAGA,EAAEC,EAAE,CAAC83D,UAAU,IAAI/yD,EAAE5U,EAAEumE,oBAAoB,CAACxC,aAAajkE,EAAE0mE,kBAAkBhnE,EAAEinE,cAAcz6D,IAAIZ,EAAEc,EAAEyrB,SAASn4B,EAAEwM,GAAG,IAAIrP,cAAciD,EAAEsM,EAAEyrB,SAAS/iB,EAAE5I,GAAG,IAAIrP,cAAc6S,EAAExP,EAAEqmE,0BAA0B,CAACtC,aAAajkE,EAAEwmE,eAAen6D,IAAIhB,EAAEqE,EAAEgsD,cAAc3hE,EAAE2V,EAAE+rD,cAAczrD,EAAEN,EAAE02D,YAAY/lE,EAAEqP,EAAE22D,YAAYjmE,EAAEkM,EAAE65D,iBAAiB3mE,OAAE,IAASY,EAAEF,EAAEolE,sBAAsBllE,EAAEH,EAAEqM,EAAEg6D,eAAe5lE,OAAE,IAAST,EAAEC,EAAE6lE,oBAAoB9lE,EAAEH,EAAEhD,YAAY8N,OAAO,EAAE9K,EAAE/C,UAAU6N,OAAO,EAAE1K,EAAE0mE,wBAAwB,CAAC3C,aAAajkE,EAAE07D,cAAcrwD,EAAEowD,cAAc1hE,EAAEqsE,YAAYp2D,EAAEq2D,YAAYhmE,KAAKH,EAAE2mE,kBAAkB,CAAC5C,aAAajkE,EAAE07D,cAAcrwD,EAAEowD,cAAc1hE,EAAEqsE,YAAYp2D,EAAEq2D,YAAYhmE,EAAE6lE,gBAAgBpmE,IAAII,EAAE8jE,cAAc,CAACC,aAAajkE,EAAE07D,cAAcrwD,EAAEowD,cAAc1hE,EAAEmsE,gBAAgBpmE,EAAEqmE,iBAAiB3mE,IAAIU,EAAEikE,YAAY,CAACF,aAAajkE,EAAEomE,YAAYp2D,EAAEq2D,YAAYhmE,EAAE6lE,gBAAgBpmE,EAAEwmE,eAAe5lE,IAAIR,EAAE4mE,wBAAwB,CAACxE,cAAcxtD,EAAE0xD,eAAen6D,EAAEs6D,cAAcz6D,IAAIhM,EAAE6mE,sBAAsB,CAACzE,cAAcxtD,EAAE0xD,eAAen6D,EAAEs6D,cAAcz6D,IAAIhM,EAAEmkE,wBAAwB,CAACJ,aAAajkE,EAAEkmE,gBAAgBpmE,IAAII,EAAEklE,oBAAoB,mBAAmB95D,EAAExL,GAAGI,EAAEklE,oBAAoB,gBAAgB95D,EAAExL,GAAGI,EAAEmlE,yBAAyB,oBAAoB/5D,EAAExL,EAAE,CAAC,CAAC21B,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAE7E,QAAQ,KAAK5wB,EAAEmlE,yBAAyB,QAAQ/5D,EAAExL,EAAE,KAAKI,EAAEmlE,yBAAyB,iBAAiB/5D,EAAExL,EAAE,KAAKI,EAAEmlE,yBAAyB,gBAAgB/5D,EAAExL,GAAGI,EAAEmlE,yBAAyB,cAAc/5D,EAAExL,GAAGI,EAAEmlE,yBAAyB,mBAAmB/5D,EAAExL,GAAGI,EAAEglE,uBAAuBpwD,EAAE9U,EAAEN,GAAGqQ,EAAEq3D,UAAUtyD,EAAE,IAAI3U,EAAEiM,EAAEyrB,SAAS7pB,GAAG,GAAG,qBAAqB,OAAO9N,EAAE8mE,yBAAyB,CAACznE,SAASO,EAAE/C,UAAUgkE,cAAc5gE,IAAIoP,GAAGqI,EAAE7H,EAAEq3D,UAAU,iBAAiB,MAAMtnE,EAAE9C,OAAOhB,GAAG4b,EAAE7H,EAAEq3D,UAAU,iBAAiBr3D,IAAIrP,EAAE,CAAConE,qBAAoB,EAAGC,qBAAoB,EAAGC,oBAAmB,EAAGC,mBAAkB,EAAGvtB,SAAQ,EAAGwtB,UAAS,EAAGC,KAAI,GAAI,SAAShoE,EAAEV,EAAEO,EAAEL,EAAED,GAAGM,EAAEA,GAAG,GAAG,IAAImM,EAAE6B,EAAEvO,EAAEC,EAAEC,GAAGyM,EAAE4B,EAAEhO,EAAEN,EAAEC,GAAG,IAAI,IAAIwM,IAAI,IAAIC,EAAE,CAAC,IAAIC,EAAE5M,EAAEw+B,OAAO9xB,EAAE,GAAGnM,EAAEyY,KAAKpM,EAAE,IAAI,OAAOrM,EAAE,SAASY,EAAEnB,EAAEO,GAAG,OAAOP,EAAEmL,SAAS5K,EAAE,IAAIO,EAAE,CAACR,OAAO,SAASN,EAAEO,GAAG,IAAIP,IAAIiB,EAAEjB,GAAG,MAAM,IAAI4Z,MAAM,2CAA2C,IAAI1Z,EAAE,GAAG,OAAOK,GAAGvD,OAAOiY,KAAK1U,GAAG6T,SAAS,SAASpU,GAAGE,EAAEF,GAAGO,EAAEP,MAAME,EAAEqa,GAAGva,EAAEE,EAAEyoE,YAAW,EAAGzoE,GAAG0oE,kBAAkB,SAAS5oE,EAAEO,EAAEL,EAAED,EAAEyM,GAAGxM,EAAEA,GAAG,wBAAwBwM,EAAEA,GAAG,KAAK,IAAI,IAAIC,EAAE,EAAEA,EAAE3M,EAAEmL,OAAOwB,IAAI,CAAC,IAAIC,EAAE5M,EAAE2M,GAAGzM,GAAGsM,EAAEjM,EAAE4K,OAAO,GAAGzK,EAAEkM,EAAErM,EAAEN,EAAEyM,GAAGvL,EAAEZ,EAAEiM,GAAG,OAAOjM,EAAE,OAAOA,GAAGsoE,MAAM,CAACC,sBAAsB,sBAAsBC,sBAAsB,sBAAsBC,qBAAqB,qBAAqBC,oBAAoB,oBAAoBC,QAAQ,UAAUC,gBAAgB,WAAWC,cAAc,QAAYvoE,EAAE,CAAC05D,iBAAiB,SAASv6D,GAAG,OAAO2M,EAAEyrB,SAASp4B,EAAE,mCAAmC,IAAIqpE,eAAe,SAASrpE,GAAG,OAAO2M,EAAEyrB,SAASp4B,EAAE,iCAAiC,IAAIspE,cAAc,SAAStpE,GAAG,OAAOA,EAAE6O,MAAM,KAAK1D,OAAO,GAAG,MAAMnL,EAAE,IAAI,MAAMA,EAAE,GAAG,IAAIiT,OAAOjT,EAAE,KAAKA,GAAGupE,aAAa,SAASvpE,GAAG,OAAOA,EAAExF,OAAOwF,EAAEuZ,OAAOnY,EAAE,CAACooE,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,SAASziB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,GAAG,GAAGa,EAAEwoE,eAAerpE,IAAI,GAAG0pE,WAAW,SAAS1pE,GAAG,OAAOa,EAAEwoE,eAAerpE,GAAG,GAAG6kB,QAAQ,SAAS7kB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,GAAG,GAAGmkD,WAAW,SAASnkD,GAAG,OAAOa,EAAEwoE,eAAerpE,IAAI,KAAKsV,EAAE,CAACk0D,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,WAAW,OAAM,GAAIinD,WAAW,WAAW,OAAM,GAAI7kD,QAAQ,WAAW,OAAM,GAAIs/B,WAAW,SAASnkD,GAAG,OAAOa,EAAEwoE,eAAerpE,IAAI,KAAKgB,EAAE,CAAC2oE,YAAYr0D,EAAEs0D,kBAAkBt0D,EAAEu0D,SAAS,CAACL,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,WAAW,OAAM,GAAIinD,WAAW,WAAW,OAAM,GAAI7kD,QAAQ,WAAW,OAAM,GAAIs/B,WAAW,SAASnkD,GAAG,OAAOa,EAAEwoE,eAAerpE,IAAI,KAAK8pE,UAAU,CAACN,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,SAASziB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,GAAG,GAAG0pE,WAAW,SAAS1pE,GAAG,OAAOa,EAAEwoE,eAAerpE,GAAG,GAAG6kB,QAAQ,SAAS7kB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,IAAI,GAAGmkD,WAAW,SAASnkD,GAAG,OAAOa,EAAEwoE,eAAerpE,IAAI,KAAKkV,IAAI,CAACs0D,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,SAASziB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,IAAI,GAAG0pE,WAAW,SAAS1pE,GAAG,OAAOa,EAAEwoE,eAAerpE,GAAG,GAAG6kB,QAAQ,SAAS7kB,GAAG,OAAOa,EAAE05D,iBAAiBv6D,IAAI,GAAGmkD,WAAW,SAASnkD,GAAG,OAAOa,EAAE05D,iBAAiBv6D,IAAI,KAAK+pE,iBAAiB,CAACP,iBAAiB,CAACC,QAAQ,WAAW,OAAM,GAAIhnD,UAAU,WAAW,OAAM,GAAIinD,WAAW,WAAW,OAAM,GAAI7kD,QAAQ,WAAW,OAAM,GAAIs/B,WAAW,SAASnkD,GAAG,OAAOa,EAAE05D,iBAAiBv6D,IAAI,MAAM,SAAS0K,EAAE1K,EAAEO,EAAEL,GAAG,GAAGo5B,MAAMF,QAAQp5B,EAAEO,IAAI,CAAC,IAAIN,EAAE8P,EAAEu0D,yBAAyBtkE,EAAEO,GAAG,KAAKL,GAAGD,GAAG,GAAGD,EAAEO,GAAGi+B,OAAOv+B,EAAE,QAAQD,EAAEO,GAAG,GAAG,SAASW,EAAElB,EAAEO,GAAG,IAAIL,EAAEY,EAAE+nE,MAAMG,qBAAqBhpE,EAAEoU,SAAS,SAASpU,GAAG0K,EAAE1K,EAAE,uBAAuBE,GAAGwK,EAAE1K,EAAE,wBAAwBE,MAAMK,EAAE6T,SAAS,SAASpU,GAAG0K,EAAE1K,EAAE,uBAAuBE,GAAGwK,EAAE1K,EAAE,wBAAwBE,MAAM,SAASmL,EAAErL,EAAEO,GAAG,GAAGA,EAAE,CAAC,IAAIL,EAAE,MAAMK,EAAEiQ,OAAO,GAAGxQ,EAAEzE,MAAMyuE,SAAS9pE,EAAE,CAAC+pE,kBAAkB,CAACrf,MAAMrqD,EAAE2S,OAAO,KAAK3S,GAAG,SAASc,EAAErB,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAEkqE,YAAYjqE,EAAED,EAAEL,WAAW+M,EAAE1M,EAAEykE,mBAAmB73D,EAAE5M,EAAEF,SAAS0M,EAAExM,EAAExF,MAAM0G,EAAEjB,EAAEyM,GAAG,IAAIG,EAAE5M,EAAEA,EAAEkL,OAAO,GAAG,GAAG0B,EAAE,CAAC,IAAIJ,EAAEvM,EAAEyM,EAAEyrB,SAAS73B,EAAE,kBAAkBoM,EAAEyrB,SAAS73B,EAAE,sBAAsBgO,EAAE5B,EAAEyrB,SAAS73B,EAAE,+BAA+BuP,EAAEnD,EAAEyrB,SAAS73B,EAAE,sCAAsC,GAAGkM,EAAE,CAAC,IAAI4D,EAAEvP,EAAER,OAAOQ,EAAE+nE,MAAMG,sBAAsB,OAAOv8D,EAAEpQ,MAAM,IAAI,cAAc,SAAS2D,GAAG,IAAIO,EAAEP,EAAEmqE,oBAAoBjqE,EAAEF,EAAExF,MAAMyF,EAAED,EAAEktB,KAAKxgB,EAAE1M,EAAEkqE,YAAYv9D,EAAE3M,EAAE2sC,WAAW//B,EAAE5M,EAAEy4C,kBAAkBl4C,EAAE/F,MAAM0F,GAAGD,EAAEzF,MAAMkS,EAAEnM,EAAE4+C,KAAKl/C,EAAEsP,KAAKhP,EAAE6pE,YAAYnqE,EAAEsP,IAAI5C,IAAIpM,EAAEosC,WAAWhgC,EAAEpM,EAAEk4C,kBAAkB7rC,IAAIrM,EAAE8pE,aAAapqE,EAAEqqE,mBAAmB/pE,EAAE/F,OAAO,MAAM+F,EAAE/F,MAAMgW,OAAO,KAAKjQ,EAAEgqE,YAAY,kBAAvS,CAA0T,CAACJ,oBAAoB95D,EAAE7V,MAAMgS,EAAE0gB,KAAKzgB,EAAEy9D,YAAYhqE,EAAEysC,WAAWp+B,EAAEkqC,kBAAkB3oC,IAAI,MAAM,IAAI,eAAe,SAAS9P,GAAG,IAAIO,EAAEP,EAAEmqE,oBAAoBjqE,EAAEF,EAAEF,SAASG,EAAED,EAAEktB,KAAKxgB,EAAE1M,EAAEkqE,YAAYv9D,EAAE3M,EAAE2sC,WAAW//B,EAAE5M,EAAEy4C,kBAAkB/rC,IAAInM,EAAE8pE,aAAat6D,EAAEu0D,yBAAyBpkE,EAAE,aAAaD,EAAEsP,KAAK5C,IAAIpM,EAAEosC,WAAWhgC,EAAEpM,EAAEk4C,kBAAkB7rC,SAAI,IAAS3M,EAAEkkD,WAAW5jD,EAAE6pE,YAAYnqE,EAAEkkD,WAAW5jD,EAAEu+C,WAAW7+C,EAAEsP,IAAIhP,EAAEiqE,YAAYvqE,EAAEsP,IAAtT,CAA2T,CAAC46D,oBAAoB95D,EAAEvQ,SAAS8M,EAAEsgB,KAAKzgB,EAAEy9D,YAAYhqE,EAAEysC,WAAWp+B,EAAEkqC,kBAAkB3oC,IAAI5P,GAAGmQ,EAAEo6D,QAAQ,CAAC/O,aAAa,GAAG7uD,EAAE69D,qBAAqB1xD,KAAK3I,IAAIxD,EAAE89D,sBAAsB3xD,KAAK3I,KAAK,SAAStF,EAAE/K,EAAEO,EAAEL,EAAED,GAAG,IAAIyM,EAAEC,EAAEC,EAAEJ,EAAE,GAAG,OAAOxM,GAAG,IAAI,YAAYE,EAAE4+C,YAAYtyC,EAAEnQ,KAAK,YAAYmQ,EAAE+M,KAAKrZ,EAAE4+C,WAAWtyC,EAAE+N,GAAGra,EAAE4+C,aAAatyC,EAAEnQ,KAAK,QAAQkE,GAAGiM,EAAE+M,KAAKrZ,EAAE1F,OAAO0F,EAAEi/C,KAAK3yC,EAAE+N,GAAGra,EAAEi/C,OAAO3yC,EAAE+M,KAAKrZ,EAAEi/C,KAAKwH,WAAW,GAAGn6C,EAAEhS,OAAOoS,EAAE1M,EAAEi/C,MAAM4jB,iBAAiBn2D,EAAEm2D,iBAAiBn2D,EAAEg+D,cAAch+D,EAAEg+D,aAAa,GAAGh+D,EAAEg+D,aAAa,GAAGh+D,EAAE+5C,WAAW,KAAK,MAAM,IAAI,WAAWj6C,EAAE,SAAS1M,EAAEO,GAAG,OAAOA,EAAEP,EAAE8+C,WAAWzuC,EAAEzD,EAAE20D,YAAYzB,aAAa9/D,GAAjE,CAAqEE,EAAEK,KAAKiM,EAAEnQ,KAAK,UAAUmQ,EAAE+M,KAAK7M,EAAEF,EAAE+N,GAAG7N,GAAGC,EAAE,SAAS3M,EAAEO,GAAG,OAAO8P,EAAEzD,EAAEo0D,mBAAmB,CAAClhE,SAAS,CAACE,MAAMO,EAAEP,EAAEm/C,KAAKA,UAAK,EAA3E,CAAmFj/C,EAAED,MAAMuM,EAAE23C,WAAWx3C,KAAKH,EAAEnQ,KAAK,aAAakE,GAAGiM,EAAE+M,KAAKrZ,EAAE1F,OAAO0F,EAAEkqE,YAAY59D,EAAE+N,GAAGra,EAAEkqE,cAAc59D,EAAE+M,KAAKrZ,EAAEi/C,KAAKA,KAAK3yC,EAAEhS,MAAM,SAASwF,GAAG,IAAIO,EAAEP,EAAEm/C,KAAK,OAAO5+C,EAAEwiE,iBAAiBxiE,EAAEwiE,iBAAiBxiE,EAAEuiE,OAAOviE,EAAEuiE,OAAOviE,EAAE4+C,KAA1F,CAAgGj/C,KAAK,MAAM,QAAQ,MAAM,IAAI0Z,MAAM,iDAAiD,OAAOpN,EAAE,IAAIqwB,EAAE,CAACguC,sBAAsB,SAAS7qE,GAAGA,EAAEgjE,WAAW,CAACr2B,WAAW3sC,EAAE2sC,YAAY,GAAG8L,kBAAkBz4C,EAAEy4C,oBAAmB,GAAIz4C,EAAE2sC,WAAW,KAAK3sC,EAAEy4C,uBAAkB,IAAS,SAAS9sC,EAAE3L,EAAEO,EAAEL,EAAED,GAAG,IAAIyM,EAAExM,EAAE,aAAaK,EAAElE,KAAKsQ,EAAE3M,EAAEzE,MAAMqR,EAAED,EAAEic,KAAKpc,EAAE3L,EAAE0oE,aAAahpE,GAAG,OAAO8K,EAAErL,EAAEwM,GAAG,IAAIE,GAAG,IAAI,QAAQE,EAAE,cAAcD,EAAEm+D,SAAS,CAACtwE,MAAM+F,EAAE/F,OAAOqG,EAAEyoE,cAAc/oE,EAAEgZ,MAAMhK,IAAI1O,EAAEyoE,cAAc/oE,EAAEgZ,MAAMld,KAAK,aAAa0uE,qBAAqBxqE,EAAEwqE,sBAAsB,MAAM,IAAI,aAAan+D,EAAE,YAAYD,EAAEq+D,aAAa,CAACxwE,MAAM0F,GAAGsM,EAAE+C,IAAIrP,GAAGK,EAAEgZ,KAAKld,KAAK,aAAaiuE,mBAAmB/pE,EAAE+pE,oBAAoB,MAAM,IAAI,YAAY19D,EAAE,cAAcD,EAAEm+D,SAAS,CAACtwE,MAAM+F,EAAEgZ,KAAKhK,IAAIhP,EAAEga,GAAGle,KAAK,cAAc0uE,qBAAqBxqE,EAAEwqE,sBAAsB,MAAM,IAAI,UAAUn+D,EAAE,YAAYD,EAAEq+D,aAAa,CAACxwE,MAAM+F,EAAEgZ,KAAKhK,IAAIhP,EAAEga,GAAG4pC,WAAW5jD,EAAE4jD,WAAW9nD,KAAK,cAAciuE,mBAAmB/pE,EAAE+pE,oBAAoB39D,EAAE2rC,YAAYzb,EAAEguC,sBAAsBl+D,EAAE2rC,YAAYr4C,IAAI0M,EAAE/O,MAAK,EAAG+O,EAAEic,KAAKhc,GAAG,SAASX,EAAEjM,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIN,EAAEC,EAAE,SAASF,EAAEO,EAAEL,GAAG,IAAID,EAAE0M,EAAEyrB,SAAS73B,EAAE,iBAAiBmM,EAAExM,EAAE2O,MAAM,KAAKjC,EAAEmC,OAAOrC,EAAE,IAAIF,EAAEG,EAAEyrB,SAAS73B,EAAE,UAAU0S,OAAOrG,EAAE,UAAU,OAAO,IAAI5M,EAAEmL,QAAQ,QAAQlL,GAAG,UAAUuM,EAAxK,CAA2KtM,EAAEF,EAAEO,GAAG,EAAEL,EAAEiL,OAAO,GAAGuB,EAAE5L,EAAE+nE,MAAMG,qBAAqBp8D,EAAEmD,EAAEs0D,wBAAwBpkE,EAAEyqE,qBAAqB,KAAKh+D,GAAG,OAAOf,EAAE3L,EAAE+K,EAAE,cAAc6B,EAAEA,GAAG3M,MAAM2M,EAAE,SAAStB,EAAEtL,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIN,EAAE0M,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAImM,EAAEC,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,4CAA4C,IAAIqM,EAAED,EAAEyrB,SAASp4B,EAAE,kBAAkB,GAAG4M,GAAGvB,EAAErL,EAAE4M,EAAEpS,OAAO,SAASwF,GAAG,SAASA,GAAGA,EAAE+qE,sBAAsB,GAAhD,CAAoDn+D,IAAI,SAAS5M,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIN,EAAE0M,EAAEyrB,SAASp4B,EAAE,kBAAkBC,EAAE8qE,qBAAqB5+D,KAAKvN,IAAIqB,EAAE8qE,qBAAqB7qE,EAAEiL,OAAO,GAAG,IAAIuB,EAAE3B,EAAE,aAAY,EAAG7K,EAAED,EAAE8qE,uBAAuBr+D,EAAEq+D,qBAAqB9qE,EAAE8qE,qBAAqBp/D,EAAE3L,EAAE0M,GAAxQ,CAA4Q1M,EAAEO,QAAQ,GAAG,SAASP,GAAG,OAAOA,IAAIA,EAAEuP,IAAzB,CAA8B3C,IAAIX,EAAEjM,EAAEO,GAAG,OAAOc,EAAE,CAACnE,WAAW8C,EAAEkqE,aAAY,EAAGvqE,WAAWO,EAAEukE,mBAAmB/3D,EAAE5M,SAASG,EAAEzF,MAAMmS,EAAEyrB,SAASp4B,EAAE,0BAA0B,SAAS+L,EAAE/L,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIN,EAAE0M,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAImM,EAAEC,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,4CAA4C,IAAIqM,EAAED,EAAEyrB,SAASp4B,EAAE,sBAAsB,GAAG4M,GAAGvB,EAAErL,EAAE4M,EAAEpS,OAAO,SAASwF,GAAG,SAASA,GAAGA,EAAEsqE,oBAAoB,GAA9C,CAAkD19D,IAAI,SAAS5M,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAIN,EAAE0M,EAAEyrB,SAASp4B,EAAE,sBAAsB,GAAGC,EAAEqqE,mBAAmBn+D,KAAKvN,IAAIqB,EAAEqqE,mBAAmBpqE,EAAEiL,OAAO,GAAGlL,EAAEqqE,oBAAoB,EAAE,CAAC,IAAI59D,EAAE3B,EAAE,WAAU,EAAG7K,EAAED,EAAEqqE,qBAAoB,GAAI59D,EAAE49D,mBAAmBrqE,EAAEqqE,mBAAmB3+D,EAAE3L,EAAE0M,IAA7R,CAAkS1M,EAAEO,QAAQ,GAAG,SAASP,EAAEO,GAAG,QAAQP,IAAIA,EAAEuP,MAAMhP,EAAE4K,OAAO,EAA3C,CAA8CyB,EAAE3M,IAAI,SAASD,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIN,EAAE0M,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAImM,EAAExM,EAAEA,EAAEiL,OAAO,GAAGyB,EAAE9L,EAAE+nE,MAAMG,qBAAqBx8D,EAAEuD,EAAEs0D,wBAAwB33D,EAAEi+D,sBAAsB,KAAK/9D,GAAG,OAAOjB,EAAE3L,EAAE+K,EAAE,YAAYyB,EAAEA,GAAGvM,EAAE,OAAOuM,EAA9P,CAAiQxM,EAAEO,GAAG,OAAOc,EAAE,CAACnE,WAAW8C,EAAEkqE,aAAY,EAAGvqE,WAAWO,EAAEukE,mBAAmB/3D,EAAE5M,SAASG,EAAEzF,MAAMmS,EAAEyrB,SAASp4B,EAAE,8BAA8B,IAAI6K,EAAE,CAACogE,eAAe,SAASjrE,EAAEO,EAAEL,GAAGyM,EAAEm+C,SAAS9qD,EAAEO,EAAEL,GAAGyM,EAAEs3D,cAAc/jE,IAAI,SAASF,EAAEO,EAAEL,GAAG,IAAID,EAAED,EAAEilE,eAAehlE,IAAIA,EAAEilE,UAAUjlE,EAAEilE,QAAQ,IAAIjlE,EAAEilE,QAAQ3kE,GAAG,CAAC4uC,KAAKxiC,EAAEyrB,SAASp4B,EAAEO,GAAG4kE,GAAGjlE,IAA3G,CAAgHF,EAAEO,EAAEL,IAAIgrE,cAAc,SAASlrE,EAAEO,GAAG,IAAIL,EAAE,CAACupE,SAAQ,GAAI,GAAGzpE,EAAE,CAAC,IAAIC,GAAGe,EAAET,IAAIa,GAAGooE,kBAAkBpoE,EAAEooE,iBAAiBtpE,EAAEirE,YAAYlrE,EAAEwiB,UAAUziB,GAAGE,EAAEkrE,UAAUnrE,EAAE4kB,QAAQ7kB,GAAGE,EAAEmrE,WAAWprE,EAAEypE,WAAW1pE,GAAGE,EAAEorE,aAAarrE,EAAEkkD,WAAWnkD,GAAG,OAAOE,GAAGqrE,oBAAoB,SAASvrE,GAAG,IAAIO,EAAEP,EAAEwrE,WAAWtrE,EAAEF,EAAEyrE,UAAUxrE,EAAED,EAAE0rE,UAAUh/D,EAAE1M,EAAEL,WAAW,QAAQY,EAAEN,KAAKC,IAAI,gBAAgBD,GAAG,cAAcA,IAAIyM,EAAEvB,UAAUwgE,cAAc,SAAS3rE,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,cAAcC,EAAE0M,EAAEyrB,SAASp4B,EAAE,cAAc0M,EAAEC,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAIqM,EAAED,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAIiM,EAAEG,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,4CAA4C,IAAIN,EAAEiB,EAAEwL,EAAEF,GAAG,SAASxM,GAAG,IAAIO,EAAEP,EAAEpC,KAAKsC,EAAEF,EAAE0rE,UAAUzrE,EAAED,EAAEL,WAAW,OAAOY,GAAG,gBAAgBL,GAAGD,EAAEkL,OAAO,EAA5F,CAA+F,CAACvN,KAAKqC,EAAEyrE,UAAUxrE,EAAEP,WAAW+M,IAAIpB,EAAEtL,EAAEO,GAAG,SAASP,GAAG,IAAIO,EAAEP,EAAEpC,KAAKsC,EAAEF,EAAE0rE,UAAUzrE,EAAED,EAAEL,WAAW+M,EAAE1M,EAAEF,SAAS8M,EAAE5M,EAAE9C,WAAWsP,EAAEG,EAAEyrB,SAASxrB,EAAE,iBAAiB,QAAQrM,GAAG,cAAcL,IAAID,EAAEkL,QAAQ,QAAQqB,IAAIE,EAAEvB,QAAvK,CAAgL,CAACvN,KAAKqC,EAAEyrE,UAAUxrE,EAAEP,WAAW+M,EAAE5M,SAAS8M,EAAE1P,WAAW8C,IAAI+L,EAAE/L,EAAEO,GAAG,SAASP,EAAEO,GAAG,IAAIL,EAAEyM,EAAEyrB,SAASp4B,EAAE,cAAcC,EAAE0M,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,eAAe,IAAImM,EAAEC,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,aAAa,IAAIqM,EAAED,EAAEyrB,SAASp4B,EAAE,GAAGiT,OAAO1S,EAAE,4CAA4C,IAAI,eAAeL,GAAGwM,EAAEvB,OAAO,GAAGwB,EAAEm+C,SAAS9qD,EAAE,aAAa,WAAWkB,EAAEjB,EAAE2M,GAA3R,CAA+R5M,EAAEO,IAAIqrE,gBAAgB,SAAS5rE,GAAGA,EAAEoU,SAAS,SAASpU,GAAGA,EAAEimE,iBAAiB,eAAejmE,EAAEimE,wBAAwBjmE,EAAEimE,gBAAgB4F,eAAeC,2BAA2B,SAAS9rE,GAAG,IAAIO,EAAEP,EAAEurE,oBAAoBrrE,EAAEF,EAAE9C,WAAW+C,EAAE0M,EAAEyrB,SAASl4B,EAAE,0BAA0B,IAAIwM,EAAEC,EAAEyrB,SAASl4B,EAAE,aAAa,IAAI,OAAOK,GAAG,iBAAiBmM,GAAGzM,EAAEkL,OAAO,GAAG4gE,qBAAqB,SAAS/rE,GAAG,IAAIO,EAAEoM,EAAEyrB,SAASp4B,EAAE,kDAAkD,IAAIE,EAAEyM,EAAEyrB,SAASp4B,EAAE,wBAAwB,IAAIO,EAAEi+B,OAAO,EAAE,EAAE,CAAC4rC,YAAYlqE,EAAEqa,GAAG,sBAAsB5N,EAAEm+C,SAAS9qD,EAAE,kDAAkDO,IAAIyrE,kBAAkB,SAAShsE,GAAG2M,EAAEm+C,SAAS9qD,EAAE,aAAa,WAAW2M,EAAEm+C,SAAS9qD,EAAE,cAAa,IAAKisE,8BAA8B,SAASjsE,GAAG,IAAIO,EAAEoM,EAAEyrB,SAASp4B,EAAE,4BAA4B,IAAIE,EAAEyM,EAAEyrB,SAASp4B,EAAE,oBAAmB,GAAI,OAAOO,EAAE4K,OAAO,IAAIjL,IAAQqL,EAAE,CAACi8D,iBAAiB,SAASxnE,GAAG,IAAIO,EAAEP,EAAEynE,aAAavnE,EAAEF,EAAEknE,cAAcjnE,EAAED,EAAE0nE,aAAah7D,EAAElM,EAAEgnE,iBAAiB,CAACC,aAAalnE,EAAE2mE,cAAchnE,EAAEwnE,aAAaznE,IAAI0M,EAAED,EAAEnN,KAAK,GAAGqN,EAAED,EAAEhN,WAAWsT,OAAOtG,EAAE83D,oBAAoBj4D,EAAEG,EAAE7M,SAASmT,OAAOtG,EAAEg4D,kBAAkB93D,EAAE/L,EAAE+nE,MAAMp8D,EAAEI,EAAEm8D,qBAAqBz6D,EAAE1B,EAAEo8D,oBAAoB,OAAOnoE,EAAE8nE,kBAAkBh8D,EAAE,GAAG,uBAAuBH,GAAG3L,EAAE8nE,kBAAkBh8D,EAAE,GAAG,wBAAwBH,GAAG3L,EAAE8nE,kBAAkBp8D,EAAE,GAAG,wBAAwB+B,GAAG7B,GAAGq7D,iBAAiB,SAAS/nE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEinE,kBAAkBhnE,EAAED,EAAE+mE,eAAer6D,EAAE1M,EAAEgoE,sBAAsBp7D,EAAE5M,EAAEknE,cAAc16D,EAAExM,EAAEioE,UAAUp7D,EAAE7M,EAAEkoE,iBAAiBz7D,EAAEzM,EAAEmoE,sBAAsB55D,EAAE/N,EAAEunE,iBAAiB,CAACvD,aAAajkE,EAAE0mE,kBAAkB/mE,EAAE6mE,eAAe9mE,EAAE+nE,sBAAsBt7D,EAAEw6D,cAAct6D,EAAEq7D,UAAUz7D,EAAE07D,iBAAiBr7D,EAAEs7D,sBAAsB17D,IAAIsD,EAAExB,EAAEo5D,UAAU73D,EAAEnD,EAAEyrB,SAASroB,EAAE,iBAAiBM,EAAE1D,EAAEyrB,SAASroB,EAAE,4BAA4B,IAAIxT,EAAEoQ,EAAEyrB,SAASroB,EAAE,aAAa,IAAIO,EAAE3D,EAAEyrB,SAASroB,EAAE,aAAa,IAAIsF,EAAExK,EAAEqgE,cAAcn7D,EAAED,GAAGjE,EAAEhB,EAAE0gE,oBAAoB,CAACC,WAAWn2D,EAAEo2D,UAAUn7D,EAAEo7D,UAAUnvE,EAAEoD,WAAW0Q,IAAI,OAAOgF,EAAE9Y,GAAGsO,EAAEihE,2BAA2B,CAACP,oBAAoB1/D,EAAE3O,WAAW6S,KAAKlF,EAAEkhE,qBAAqBh8D,GAAGlF,EAAEmhE,kBAAkBj8D,GAAGlE,GAAGhB,EAAE8gE,cAAc57D,EAAE,kBAAkBlF,EAAEohE,8BAA8Bl8D,IAAIlF,EAAEogE,eAAel7D,EAAE,oBAAmB,GAAIlF,EAAE+gE,gBAAgBv7D,GAAG9B,IAAQ/C,EAAE,CAAC,MAAM,SAAS,QAAY0yD,EAAE,CAACgO,iBAAiB,SAASlsE,GAAG,IAAIO,EAAEP,EAAEinE,kBAAkB/mE,EAAEF,EAAE9C,WAAWqD,EAAE9B,kBAAa,IAAS8B,EAAE9B,YAAYC,WAAWyZ,EAAEjY,EAAE,0BAA0B2L,GAAAA,CAAI3L,EAAEzB,YAAY8B,EAAE9B,aAAa0Z,EAAEjY,EAAE,wBAAwB2L,GAAAA,CAAI3L,EAAEzB,YAAY8B,EAAE9B,cAAc0tE,mBAAmB,SAASnsE,GAAG,IAAIO,EAAEL,EAAEF,EAAEwkE,aAAavkE,EAAED,EAAEinE,kBAAkBv6D,EAAE1M,EAAE9C,WAAWyP,EAAE3M,EAAEosE,YAAYx/D,EAAEF,EAAEtP,cAAcoP,EAAEE,EAAEjO,YAAY,GAAG,SAASuB,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEinE,kBAAkB,SAAS1mE,EAAErD,WAAWmvE,aAAansE,EAAEmsE,cAAcnsE,EAAEzB,kBAAa,IAASyB,EAAEzB,YAAYC,YAAhJ,CAA6J,CAAC8lE,aAAatkE,EAAE+mE,kBAAkBhnE,IAAI,CAAC,IAAI4M,EAAE,SAAS7M,GAAG,IAAIO,EAAE,GAAG,OAAOP,EAAE1C,UAAU6N,OAAO,GAAGnL,EAAE1C,UAAU8W,SAAS,SAASpU,GAAG,GAAGA,EAAEm/C,KAAKmtB,OAAO,CAAC,IAAIpsE,EAAEF,EAAEm/C,KAAKmtB,OAAOrsE,EAAEC,EAAE7D,KAAKqQ,EAAExM,EAAE0nB,KAAKrnB,EAAEmM,KAAKnM,EAAEmM,GAAG,CAACkb,KAAKlb,EAAErQ,KAAK,CAAC2f,KAAK,EAAEuwD,OAAO,EAAEruE,IAAI,EAAEsuE,MAAM,KAAKhhE,EAAEgU,SAASvf,IAAIM,EAAEmM,GAAGrQ,KAAK4D,KAAKM,EAAEmM,GAAGrQ,KAAKmwE,YAAYjsE,EAA1P,CAA6PqM,GAAGC,EAAE1B,QAAQwB,IAAIpM,EAAEsM,EAAEuiB,QAAQ,SAASpvB,GAAG,OAAOA,EAAE3D,KAAKsQ,GAAG,KAAKwI,MAAM,SAASnV,EAAEO,GAAG,OAAOA,EAAElE,KAAKsQ,GAAG3M,EAAE3D,KAAKsQ,OAAOpM,GAAGA,EAAE4K,SAAS5K,EAAEsM,EAAEsI,MAAM,SAASnV,EAAEO,GAAG,OAAOA,EAAElE,KAAKmwE,MAAMxsE,EAAE3D,KAAKmwE,UAAUjsE,GAAGA,EAAE,IAAIsL,GAAAA,CAAIW,EAAEtM,EAAEhD,WAAWmvE,YAAY9rE,EAAE,GAAGqnB,QAAQ/b,GAAAA,CAAIW,EAAEtM,EAAEhD,WAAWmvE,YAAY,MAAMzH,wBAAwB,SAAS5kE,GAAG,GAAGA,EAAE3C,YAAY8N,OAAO,EAAE,CAAC,IAAI5K,EAAEP,EAAE6kE,sBAAsBj0D,QAAQ,GAAG,GAAG,IAAIrQ,EAAE,CAAC,IAAIL,EAAEF,EAAE6kE,sBAAsB,GAAG7kE,EAAE6kE,sBAAsB,GAAG,EAAE7kE,EAAE6kE,sBAAsBtkE,GAAGL,MAAU8L,EAAE,CAACw7D,iBAAiB,SAASxnE,GAAG,IAAIO,EAAEP,EAAEynE,aAAavnE,EAAEF,EAAEknE,cAAcjnE,EAAED,EAAE0nE,aAAah7D,EAAE1M,EAAEysE,oBAAoB9/D,OAAE,IAASD,GAAGA,EAAEE,EAAErB,EAAEi8D,iBAAiB,CAACC,aAAalnE,EAAE2mE,cAAchnE,EAAEwnE,aAAaznE,IAAIuM,EAAEI,EAAE1P,WAAW,OAAOyP,GAAG2D,EAAE9D,EAAE,kBAAkB,uBAAuB8D,EAAE9D,EAAE,kBAAkB,yBAAyB8D,EAAE9D,EAAE,kBAAkB,yBAAyB8D,EAAE9D,EAAE,kBAAkB,0BAA0BI,GAAGm7D,iBAAiB,SAAS/nE,GAAG,IAAIO,EAAEP,EAAEwkE,aAAatkE,EAAEF,EAAEinE,kBAAkBhnE,EAAED,EAAE+mE,eAAer6D,EAAE1M,EAAEgoE,sBAAsBr7D,EAAE3M,EAAEknE,cAAct6D,EAAE5M,EAAEosE,YAAY5/D,EAAExM,EAAEioE,UAAUp7D,EAAE7M,EAAEkoE,iBAAiBz7D,EAAEzM,EAAEmoE,sBAAsB55D,EAAEhD,EAAEw8D,iBAAiB,CAACvD,aAAajkE,EAAE0mE,kBAAkB/mE,EAAE6mE,eAAe9mE,EAAE+nE,sBAAsBt7D,EAAEw6D,cAAcv6D,EAAEs7D,UAAUz7D,EAAE07D,iBAAiBr7D,EAAEs7D,sBAAsB17D,IAAIsD,EAAExB,EAAEo5D,UAAU,OAAOzJ,EAAEgO,iBAAiB,CAACjF,kBAAkB/mE,EAAEhD,WAAW6S,IAAImuD,EAAEiO,mBAAmB,CAAC3H,aAAajkE,EAAE0mE,kBAAkB/mE,EAAEhD,WAAW6S,EAAEq8D,YAAYx/D,IAAIsxD,EAAE0G,wBAAwB70D,EAAE3S,eAAemR,IAAI,SAAShC,EAAEvM,EAAEO,EAAEL,GAAG,MAAM,6BAA6B+S,OAAOjT,EAAE,KAAKiT,OAAO1S,EAAE,KAAK0S,OAAO/S,GAAG,SAASoM,EAAEtM,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAE0sE,UAAUzsE,EAAED,EAAE2sE,eAAejgE,EAAE1M,EAAE4sE,UAAUhgE,EAAE5M,EAAE6sE,SAASlgE,EAAEyrB,SAAS73B,EAAEL,EAAE,IAAIkU,SAAS,SAASpU,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAE2sE,eAAe1sE,EAAED,EAAE4sE,UAAUlgE,EAAE1M,EAAEktB,KAAKtgB,EAAE5M,EAAE6sE,SAASrgE,EAAEG,EAAEyrB,SAAS1rB,EAAEE,GAAG,QAAG,IAASJ,EAAE,CAAC,IAAIK,EAAEF,EAAEyrB,SAAS1rB,EAAE,YAAYG,IAAIA,EAAEF,EAAE8N,aAAa9N,EAAEm+C,SAASp+C,EAAE,WAAWG,IAAI,IAAIJ,EAAEF,EAAErM,EAAED,EAAE4M,GAAGF,EAAEm+C,SAASvqD,EAAEkM,EAAED,GAAGG,EAAEm+C,SAASp+C,EAAEE,OAAE,IAAvP,CAAiQ,CAAC1P,WAAWqD,EAAEosE,eAAe1sE,EAAE2sE,UAAUlgE,EAAEwgB,KAAKltB,EAAE6sE,SAASjgE,OAAO,SAASE,GAAG9M,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAE0sE,UAAUzsE,EAAED,EAAE2sE,eAAejgE,EAAE1M,EAAE4sE,UAAUhgE,EAAE5M,EAAE6sE,SAASlgE,EAAEyrB,SAAS73B,EAAEL,EAAE,IAAIkU,SAAS,SAASpU,GAAG,OAAO,SAASA,GAAG,IAAIO,EAAEP,EAAE9C,WAAWgD,EAAEF,EAAE2sE,eAAe1sE,EAAED,EAAE4sE,UAAUlgE,EAAE1M,EAAEktB,KAAKtgB,EAAE5M,EAAE6sE,SAASrgE,EAAEG,EAAEyrB,SAAS1rB,EAAE,YAAY,GAAGF,EAAE,CAAC,IAAIK,EAAEN,EAAErM,EAAED,EAAEuM,GAAGC,EAAEE,EAAEyrB,SAAS73B,EAAEsM,QAAG,IAASJ,IAAIE,EAAEm+C,SAASp+C,EAAEE,EAAEH,GAAGE,EAAEm+C,SAASvqD,EAAEsM,OAAE,KAAtM,CAAiN,CAAC3P,WAAWqD,EAAEosE,eAAe1sE,EAAE2sE,UAAUlgE,EAAEwgB,KAAKltB,EAAE6sE,SAASjgE,OAAO,IAAIe,GAAG,CAACq1D,WAAW,SAAShjE,GAAGsM,EAAE,CAACpP,WAAW8C,EAAE0sE,UAAU,0BAA0BC,eAAe,sBAAsBC,UAAU,WAAWC,SAAS,8BAA8BC,aAAa,SAAS9sE,GAAG8M,GAAG,CAAC5P,WAAW8C,EAAE0sE,UAAU,0BAA0BG,SAAS,2BAA2BD,UAAU,WAAWD,eAAe,0BAA8Bj/D,GAAG,CAACs1D,WAAW,SAAShjE,GAAGsM,EAAE,CAACpP,WAAW8C,EAAE0sE,UAAU,0BAA0BC,eAAe,sBAAsBC,UAAU,WAAWC,SAAS,mBAAmBvgE,EAAE,CAACpP,WAAW8C,EAAE0sE,UAAU,4BAA4BC,eAAe,sBAAsBC,UAAU,aAAaC,SAAS,oBAAoBC,aAAa,SAAS9sE,GAAG8M,GAAG,CAAC5P,WAAW8C,EAAE0sE,UAAU,0BAA0BC,eAAe,sBAAsBC,UAAU,WAAWC,SAAS,mBAAmB//D,GAAG,CAAC5P,WAAW8C,EAAE0sE,UAAU,4BAA4BC,eAAe,sBAAsBC,UAAU,aAAaC,SAAS,qBAAqBtsE,EAAEwvB,QAAQ,CAACg9C,UAAUvsE,EAAEwsE,WAAWzhE,EAAE0hE,UAAUjhE,EAAEkhE,mBAAmB58D,EAAE68D,qBAAqBh1D,EAAEi1D,oBAAoB9gE,EAAE+gE,sBAAsBvgE,GAAGwgE,oBAAoB3/D,GAAG4/D,gBAAgB7/D,QCSzu4E,IAAe8/D,GAAA,CACbC,iBAVF,SAA0BluE,GAAM,IAAAmuE,EAAAC,EAC9B,MAAMC,EAAWruE,MAAAA,OAAAA,EAAAA,EAAMnC,cACjBywE,EAAgBtuE,MAAAA,GAAA,QAAAA,EAAAA,EAAMg/C,oBAAN,IAAAmvB,GAAH,QAAGC,EAAAD,EAAoBnX,WAAvB,IAAAoX,OAAGpuE,EAAAouE,EAAyBvwE,cAC3CwwE,GAAYC,IACdA,EAAcC,UAAYF,EAASE,UACnCD,EAAcE,eAAiBH,EAASG,kBCG5C,SAASC,GAAezuE,GACtB,QAASA,EAAK5B,MAAQ4B,EAAK5B,KAAKC,MAGlC,SAASqwE,GAAa1uE,GACpB,OAAOyuE,GAAezuE,IARH,aAQYA,EAAK5B,KAAKM,QAG5B,SAASiwE,GAAmB1uE,GACzC,MAAMC,WAAEA,GAAeD,EA8BjB0c,EAAQ1c,EAAI2uE,SAASC,MAAMlyD,MAgC3BmyD,EAAe,CACnBhyE,KAAM,QACNugE,YAAa,0BACbhgC,MAAO,CACLne,UAAW,CACTpiB,KAAM,QACNiyE,SAAU,CACRC,IAAK,sBAEP3xC,MAAO,CACL4xC,cAAe,CACbxyE,IAAK,iBACLK,KAAM,UACNugE,YAAa,8BACbnjE,UAAW,SACXujE,cAAc,EACdnhD,QAAS,CACP,CACEnM,OAAO,EACPktD,YAAa,eAEf,CACEltD,OAAO,EACPktD,YAAa,mBAInB6R,YAAa,CACXzyE,IAAK,oBACLK,KAAM,SACN5C,UAAW,WACXujE,aAAc,EACdnhD,QAAS,CACP,CACEnM,MAAO,EACPktD,YAAa,+BAEf,CACEltD,MAAO,EACPktD,YAAa,8BAEf,CACEltD,MAAO,EACPktD,YAAa,+BAGjBp+D,KAAKe,GACIA,EAAKR,YAAcQ,EAAKR,UAAUnB,QAKjDU,WAAY,CACVtC,IAAK,uBACLK,KAAM,UACNugE,YAAa,kCACbnjE,UAAW,SACXujE,cAAc,EACdnhD,QAAS,CACP,CACEnM,OAAO,EACPktD,YAAa,eAEf,CACEltD,OAAO,EACPktD,YAAa,mBAGjB0R,SAAU,CACRC,IAAK,0BAMPG,EAAe,CACnB9xC,MAAO,CACLpU,OAAQ,CACNoU,MAAO,CACLyc,OAAQ,CACN76C,KAAK4qB,GAAO,IAAAulD,EACV,OAAA,QAAAA,EAAOvlD,EAAMhsB,cAAcC,mBAA3B,IAAAsxE,OAAA,EAAOA,EAAiCxjE,SAG5CyjE,YAAa,CACXn1E,UAAW,WACXuC,IAAK,uBACLK,KAAM,UACNugE,YAAa,qBACbp+D,KAAK4qB,GAAO,IAAAylD,EACV,OAAA,QAAAA,EAAOzlD,EAAMhsB,cAAcC,mBAA3B,IAAAwxE,OAAA,EAAOA,EAAiC1jE,SAG5C2jE,eAAgB,CACdr1E,UAAW,WACXuC,IAAK,qBACLK,KAAM,SACNugE,YAAa,0BACbI,aAAc,MACdx+D,KAAK4qB,GAAO,IAAA2lD,EACV,OAAA,QAAAA,EAAO3lD,EAAMhsB,cAAcC,mBAA3B,IAAA0xE,OAAA,EAAOA,EAAiC5jE,QAE1C6jE,iBAAkB,CAChBnvE,IAAG,CAACovE,EAAQh3D,EAAKywB,EAAMnpC,IACc,WAA5BA,EAAKhB,cAAcC,MAAiD,SAA5Be,EAAKhB,cAAcC,KAEpEm2B,IAAIjlB,EAAOw/D,EAAQj3D,EAAKywB,EAAMnpC,GAC5BA,EAAKhB,cAAcC,KAAOkR,EAAQ,SAAW,SAInDy/D,aAAc,CACZ11E,UAAW,WACXuC,IAAK,mBACLK,KAAM,SACNugE,YAAa,0BACbI,aAAc,MACdx+D,KAAK4qB,GAAO,IAAAgmD,EACV,OAAA,QAAAA,EAAOhmD,EAAMhsB,cAAcC,mBAA3B,IAAA+xE,OAAA,EAAOA,EAAiCjkE,QAE1C6jE,iBAAkB,CAChBnvE,IAAG,CAACovE,EAAQh3D,EAAKywB,EAAMnpC,IACY,WAA1BA,EAAKd,YAAYD,MAA+C,SAA1Be,EAAKd,YAAYD,KAEhEm2B,IAAIjlB,EAAOw/D,EAAQj3D,EAAKywB,EAAMnpC,GAC5BA,EAAKd,YAAYD,KAAOkR,EAAQ,SAAW,aA8OzD,MAAO,CACLrT,KAAM,QACN5C,UAAW,YACXmjC,MAAO,CACLr9B,KAjJS,CACX8vE,KAAM,OACNzyC,MAAO,CACLj9B,WAvDe,CACjBi9D,YAAa,gBACb0S,uBAAwB,gCACxB1yC,MAAO,CACL2yC,gBAAiB,CACf/wE,MAAM,EACNo+B,MAAO,CACL4yC,UAAW,CACTC,UAAU,GAEZC,cAAe,CACblxE,KAAKy+B,GACyD,kBAArD7E,GAAS6E,EAAU,+BAG9B0yC,aAAc,CACZnxE,KAAKy+B,GACyD,kBAArD7E,GAAS6E,EAAU,+BAG9B2yC,eAAgB,CACdpxE,KAAKy+B,GACH,MAAM4yC,EAAYz3C,GAAS6E,EAAU,8BACrC,MAAqB,sBAAd4yC,GAAmD,sBAAdA,IAGhDC,WAAY,CACVtxE,KAAKy+B,GACH,MAAM4yC,EAAYz3C,GAAS6E,EAAU,8BACrC,MAAqB,sBAAd4yC,GAAmD,sBAAdA,IAGhDE,yBAA0B,CACxBvxE,MAAM,EACNhE,QACE,MAAMw1E,EAAcvwE,EAAWI,IAAI,0CACnC,OAAOJ,EAAWI,IAAI,+CAAgDmwE,OAK9EC,OAAQ,CACNzxE,MAAM,EACNo+B,MAAO,CACLszC,cAAe,CACblT,cAAc,SAyJpBr/D,KAvHS,CACXi/D,YAAa,+BACbvgE,KAAM,QACN5C,UAAW,QACXmjC,MAAO,CACLh/B,KAAM,CACJ5B,IAAK,YACL4gE,YAAa,kCACbnjE,UAAW,SACX4C,KAAM,UACN2gE,cAAc,EACdmT,gBAAgB,EAChBt0D,QAAS,CACP,CACEnM,OAAO,EACPktD,YAAa,wCAEf,CACEltD,OAAO,EACPktD,YAAa,4CAInBwT,YAAa,CACX32E,UAAW,OACXmjE,YAAa,kDACbp+D,KAAKe,IACKyuE,GAAezuE,IAI3BqpB,KAnDkB,CACpB5sB,IAAK,eACLK,KAAM,SACN5C,UAAW,WACXoiB,QAAS,CACP,CACEnM,MArTa,WAsTbktD,YAAa,sDAEf,CACEltD,MAxTS,OAyTTktD,YAAa,mDAGjBI,aA7TiB,WA8TjBx+D,KAAKe,GACIyuE,GAAezuE,IAqCtB1B,SAAU,CACR7B,IAAK,gBACLK,KAAM,SACN8nD,WAAY,WACZksB,eAAgB,kBAChBzT,YAAa,2CACbI,aAAc,GACdgS,iBAAkB,CAChBnvE,IAAIovE,EAAQqB,EAAY5nC,GACtB,MAAM7qC,EAAW6qC,EAAKxrC,WAAWS,KAAKE,SAEtC,OAAIypD,GAAeS,QAAQlqD,GAClBypD,GAAeI,mBAAmBhf,EAAKhuC,QAGzCu0E,EAAO,OAAS,IAEzBt6C,IAAIjlB,EAAOw/D,EAAQoB,GACjBpB,EAAOoB,EAAWj0E,KAAMqT,OAAOwN,KAGnC1e,KAAMyvE,IAERsC,WAAY,CACV92E,UAAW,OACXmjE,YAAa,mDACbp+D,KAAKe,GACH,MAAM1B,EAAWu6B,GAAS74B,EAAM,iBAC1BixE,EAAmC,iBAAb3yE,EAE5B,OACEowE,GAAa1uE,KACZ+nD,GAAeS,QAAQlqD,KACvB2yE,IACAnpB,GAAUxpD,IACXA,EAAW,IAIjB4yE,cAAe,CACbh3E,UAAW,OACXmjE,YAAa,8CACbp+D,KAAKe,GACH,MAAM1B,EAAWu6B,GAAS74B,EAAM,iBAEhC,SAAU0uE,GAAa1uE,KAAU+nD,GAAeS,QAAQlqD,IAAaA,GAAY,KAGrFC,QAAS,CACP9B,IAAK,eACLK,KAAM,SACN8nD,WAAY,WACZksB,eAAgB,kBAChBrT,aAAc,GACdx+D,KAAKe,GACIyuE,GAAezuE,IA1Zf,SA0ZwBA,EAAK5B,KAAKM,QAE3C2+D,YAAa,2CAGf7+D,OAAQ,CACN/B,IAAK,cACLK,KAAM,SACN8nD,WAAY,WACZksB,eAAgB,kBAChB7xE,KAAKe,GACIyuE,GAAezuE,IAraf,SAqawBA,EAAK5B,KAAKM,QAE3C2+D,YAAa,0CAGflT,SAAU,CACR1tD,IAAK,qBACLK,KAAM,UACN2gE,cAAc,EACdvjE,UAAW,WACXmjE,YAAa,2CAWf8T,OAhOW,CACbr0E,KAAM,QACN5C,UAAW,mBACXmjE,YAAa,oBACbhgC,MAAO,CACL+zC,aAAc,CACZtB,KAAM,eACNzyC,MAAO,CACLg0C,SAAU,CACRvB,KAAM,WACN3f,OAAQ8d,GAAWC,oBAIzBxuE,SAAU,CACRowE,KAAM,WACNzyC,MAAO,CACLi0C,gBAAiB,CACfryE,MAAM,OA+MZjE,SA5Oa,CACf80E,KAAM,WACNzyC,MAAO,CACL8xC,aAAAA,EACAL,aAAAA,EACAyC,OAnKW,CACblU,YAAa,oBACbvgE,KAAM,QACNugC,MAAO,CACLk0C,OAAQ,CACNC,eAAgB,CACdC,QAAS,QACTpjC,KAAM,CAAC,WAETvxC,KAAM,QACNugC,MAAO,CACLq0C,SAAU,CACRj1E,IAAK,yBACL4gE,YAAa,gCACbvgE,KAAM,SACN5C,UAAW,eACXy3E,YAAY,EACZlU,aAxBW,KACnB,MAAMyM,QAAEA,GAAYvtD,EAAMi1D,uBACpBC,EAAUl1D,EAAMm1D,6BAA6B,GAAGP,OAChD1yE,EAAQgzE,EAAQxgE,QAAQ64D,GAC9B,MAAO,CAAErrE,OAAkB,IAAXA,EAAe+N,KAAKvN,IAAI,EAAGwyE,EAAQjmE,OAAS,GAAK/M,SAuK/DK,YAxMgB,CAClB4wE,KAAM,2BACNzyC,MAAO,CACLpiC,MAAO,CACL6B,KAAM,SACN8nD,WAAY,WACZksB,eAAgB,mBAChBr0E,IAAK,oBACLghE,aAAc,GACdJ,YAAa,eACb0U,uBAAwB,8CA+L1B/yE,cA1LkB,CACpB8wE,KAAM,6BACNzyC,MAAO,CACL20C,YAAa,CACX30C,MAAO,CACLpiC,MAAO,CACLgE,MAAM,WCxClB,IAAegzE,GAAA,CACbn1E,KAAM,QACN5C,UAAW,YACXmjC,MAAO,CACLr9B,KAAM,CACJ8vE,KAAM,OACNzyC,MAAO,CACLj9B,WAAY,CACVi9D,YAAa,qBCQvB,IAAe6U,GAAA,CACbC,wBAbF,SAAiCC,EAAMx2C,EAAMy2C,GAS3C,OARAD,EAAKE,QAAQ,CACXjV,YAAa,qBACb2R,IAAK,SACLl6B,SACEu9B,EAAapzE,KAAK28B,EAAK0mB,MAAO,sCAI3B1qB,QAAQC,YCPF,SAASkmC,GAAI99D,GAAK,IAAAsyE,EAC/B,WAAIA,EAACtyE,EAAI2uE,uBAAJ2D,EAAc1D,MAInB,MAAO,CACLkC,WAAYyB,GAAGvyE,GACfwyE,eAAgBR,GAChBjU,QAAS,CACP0U,YAAY,EACZ3D,UAAU,EACV4D,QAAQ,EACRC,YAAY,EACZC,SAAS,EACTC,UAAU,GAEZtK,iBAAkB,CAACvD,EAAcyC,EAAmBgB,EAAWf,KAC7D,MAAMH,EAAiBxnE,EAAKC,GAC5ByoE,EAAUqK,gBACV,MAAMtK,EAAwB,CAC5BtB,iBAAkBuB,EAAUsK,gCAC5B1L,eAAgBoB,EAAUuK,+BAE5B,OAAOC,GAAW1F,UAAUhF,iBAAiB,CAC3CvD,aAAAA,EACAyC,kBAAAA,EACAF,eAAAA,EACAiB,sBAAAA,EACAd,cAAAA,KAGJM,iBAAgB,CAACC,EAAciL,EAAehL,IACrC+K,GAAW1F,UAAUvF,iBAAiB,CAAEC,aAAAA,EAAciL,cAAAA,EAAehL,aAAAA,IAE9EiL,yBAAyB,EACzBC,sBAAsBnL,GAGbgL,GAAW1F,UAAUvF,iBAAiB,CAAEC,aAAAA,EAAcP,cADvC,qBAGxBwK,wBAAyBD,GAAgBC,yBCrB9B,SAASmB,GAAUrzE,ICvBnB,SAAsBC,GACnC,GAAIA,GAAcA,EAAWI,KAAOJ,EAAW5F,IAAK,CAClD,MAAMoG,EAAI,gCAIV,GAHUR,EAAWI,IAAII,KAGfA,EACR,OAGFjD,OAAOiY,KAAKoqC,GAAKjrC,SAAS7E,IACxB9P,EAAW5F,IAAIwlD,EAAI9vC,QDavB+8B,CAAO9sC,EAAIC,YACX,MAAMs1B,EEpBO,WACb,MAAMA,EAAU+9C,IAahB,OAXA/9C,EAAQ56B,SAAS44E,KAAK,CAAC,WAOvBh+C,EAAQi+C,IAAI5+B,GACZrf,EAAQi+C,IAAIC,EAAcrnB,IAC1B72B,EAAQi+C,IAAIxkD,GACZuG,EAAQt7B,UAAU,aAAcS,GACzB66B,EFMSm+C,GACVnM,EAAiBxnE,EAAKC,GAE5B,MAAO,CACL2zE,IAAK,CACHj2E,WAAAA,EACAqC,KAAM,CACJ2rD,QAAS,CAAC6b,KAGdzJ,IAAKA,GAAI99D,GACT/F,YACE,MAAMy+D,EAAckb,IACdz5E,EAAU05E,IACV7/C,EGvCG,WACb,MAAMorB,EAAM00B,IACNp7C,EAAYq7C,IACZ51B,EAAa61B,IACb33D,EAAU43D,IACVv3D,EAAQw3D,IACRj0E,EAAak0E,IAcnB,OAZoBC,GAClB,KAAO,CACLh1B,IAAAA,EACA1mB,UAAAA,EACAylB,WAAAA,EACA9hC,QAAAA,EACAK,MAAAA,EACAzc,WAAAA,KAEF,CAACm/C,EAAK1mB,EAAWrc,EAAQlB,UAAWkB,EAAQ0b,WAAY93B,EAAWo0E,WAAY33D,EAAM3C,OAAQokC,IHsBvEm2B,GACd/1D,EIvCG,WACb,MAAMm6C,EAAckb,KACbzP,EAASoQ,GAAcC,GAAS,IAChCxgC,EAAQygC,GAAaD,GAAS,GAC/BE,IAAmBC,IAAYC,eAAeC,eAC7Ct2D,GAASi2D,GAAS,KAAO,CAC9Bl/B,SACEm/B,GAAWrnE,IAAOA,SA4BtB,OAxBA0nE,GAAU,KACHpc,GAIL6b,GAAY7b,EAAY7jB,SAAW6jB,EAAY1kB,UAC9C,CAAC0kB,IAEJqc,GACE,KAAO,CACLhlE,IAAK,QACL/U,MAAO,QACPg6E,KAAMr4E,EACNs4E,QAAS9Q,IAAYuQ,EACrB1gC,OAAAA,EACArnB,SACE8nD,GAAWrnE,IAAOA,QAGtB,CAACsnE,EAAgB1gC,EAAQmwB,IAG3B5lD,EAAM4lD,QAAU,IAAMA,EACtB5lD,EAAMy1B,OAAS,IAAMA,EACdz1B,EJIW22D,GACR7yB,EAAQ8yB,IACRjkC,EAAakkC,IACbl6E,EAASm6E,IACThd,EAAcid,KAEbn6C,EAAUo6C,GAAef,IAEhCM,GAAU,KACR,MAAMt/C,EAAWjpB,EAAEpS,GACbs7B,EAAa,IAAI8jC,GAAWlX,GAE5BmzB,EAAO,IAAIlgD,GAAU,CACzBE,SAAAA,EACAC,WAAAA,EACAzB,YAAAA,EACAzV,MAAAA,EACAgX,QAAAA,EACAG,cAPoBwb,EAQpBmnB,YAAAA,IAKF,OAFAkd,EAAYC,GAEL,KACLA,EAAKv8C,aAEN,IAEH,MAASzB,CAAAA,GAASi+C,GAAWnuB,UACtBnsB,IAGLA,EAASlF,kBAAkBjC,GAC3BmH,EAASs9B,kBAAkBC,SAIrBv9B,EAAShD,WAAWj9B,SACpBigC,EAASpE,WACd,CAAC77B,EAAQigC,EAAUnH,IACtB,GAAIwD,EACF,MAAMA,E1HlFSjQ,IAAAA,G+HAR,SAAmBA,GAChC,MAAM5rB,EAAO+5E,IACPr5D,EAAU43D,IACVvb,EAAckb,KAEXp8C,CAAAA,GAASi+C,GAAWnuB,UACtB//B,IAGLA,EAAckxC,kBAAkBC,GAChCnxC,EAAclL,QAAUA,QAClBkL,EAAcsQ,YACnB,CAACl8B,EAAKO,MAAOP,EAAKQ,SAErB,GAAIq7B,EACF,MAAMA,ELsEJm+C,CAAUx6C,G1HrFO5T,E0HsFH4T,E1HrFlBy6C,GAAgB16E,IACd,GAAKqsB,EAIL,OAAOA,EAAc8R,gBAAgBn+B,MAGvC26E,GACE,KAAO,CACL18C,eACE,GAAK5R,EAGL,OAAOA,EAAc4R,mBAGzB,CAAC5R"}