@dsh-agent-toolkit/token-usage 0.1.0 → 0.3.0
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.
- package/LICENSE +1 -1
- package/README.md +36 -15
- package/cordis.patch.yml +1 -5
- package/lib/client-module.d.ts +10 -0
- package/lib/client-module.js +24972 -0
- package/lib/client-module.js.map +1 -0
- package/lib/client.js +51409 -208
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +10 -5
- package/lib/index.js +186 -75
- package/lib/index.js.map +1 -1
- package/package.json +17 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-module.js","names":["css","theme","css","allowedEventKeys","_excluded","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","regexIsDeepProp","get","get","noop","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","constant","curveLinear","x","pointX","y","pointY","array","constant","curveLinear","pointX","pointY","array","line","point","noop","noop","point","constant","orderNone","offsetNone","array","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","uniqBy","identity","get","cloneDeepWith","cloneDeep","cloneDeep","has","get","has","identity","identity","noop","useSyncExternalStoreWithSelector","sortBy","sortBy","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","formatProdErrorMessage","isPlainObject","isPlainObject","is","isBoolean","thunk","thunkMiddleware","isPlainObject","draft","noop","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","get","stackOffsetExpand","stackOffsetNone","stackOffsetSilhouette","stackOffsetWiggle","shapeStack","stackOrderNone","sortBy","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","debounce","_excluded","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","noop","React","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","sortBy","_tooltipBoundary","_viewBoxBoundary","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","React","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","curveLinear","getPath","shapeArea","shapeLine","_excluded","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_objectWithoutProperties","_objectWithoutPropertiesLoose","_defineProperty","_toPropertyKey","_toPrimitive","PENDING","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","noop","_excluded","_excluded2","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_taggedTemplateLiteral","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_extends","getDeltaAngle","range","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Decimal","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Decimal","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","zero","number","number","quantile","number","sequence","define","linear","constant","rgb","colorRgb","basis","basisClosed","value","value","number","constant","number","rgb","string","date","numberArray","object","value","number","identity","constant","bisect","copy","transformer","interpolateValue","interpolateNumber","number","interpolateRound","formatDecimal","formatRounded","formatPrefixAuto","identity","formatGroup","formatNumerals","formatTypes","formatTrim","exponent","locale","defaultLocale","formatLocale","exponent","exponent","exponent","precisionPrefix","precisionRound","precisionFixed","copy","number","transformer","copy","transformer","copy","identity","transformer","copy","number","threshold","bisect","bisect","bisect","copy","timeWeek","timeSecond","utcWeek","utcSecond","transformer","identity","interpolate","interpolateRound","identity","bisect","quantile","identity","interpolate","interpolateRound","d3Scales","d3Scales","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","selectDomainOfAllAppliedNumericalValuesIncludingErrorValues","range","selectTooltipEventType","initialState","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","selectTooltipInteractionState","selectActiveLabel","selectTooltipPayloadConfigurations","selectIsTooltipActive","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","sortBy","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","initialState","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","EventEmitter","EventEmitter","_excluded","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_objectWithoutProperties","_objectWithoutPropertiesLoose","noop","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Tooltip","React","_defineProperty","_toPropertyKey","_toPrimitive","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_defineProperty","_toPropertyKey","_toPrimitive","_match","_excluded","_excluded2","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_excluded","_excluded2","_objectWithoutProperties","_objectWithoutPropertiesLoose","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_extends","_excluded","_excluded2","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","isFragment","get","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","React","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","initialState","initialState","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","initialState","_excluded","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","get","noop","_excluded","_excluded2","_excluded3","_excluded4","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_extends","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_excluded2","_excluded3","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_objectWithoutProperties","_objectWithoutPropertiesLoose","noop","React","_excluded","_excluded2","_objectWithoutProperties","_objectWithoutPropertiesLoose","_excluded","_excluded2","_excluded3","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_objectWithoutProperties","_objectWithoutPropertiesLoose","React","_excluded","_extends","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_objectWithoutProperties","_objectWithoutPropertiesLoose","React","rafId","timeoutId","selectTooltipEventType","rafId","timeoutId","selectTooltipEventType","selectActiveLabel","selectIsTooltipActive","selectTooltipEventType","Provider","React","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","_extends","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_extends","React","React","css","Tooltip","css"],"sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/client/shared/entry.tsx","../src/usage/aggregate.ts","../src/usage/heatmap.ts","../src/client/shared/load-state.ts","../src/client/usage/ActivityHeatmap.tsx","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/excludeEventProps.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/svgPropertiesNoEvents.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/svgPropertiesAndEvents.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/container/Surface.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/container/Layer.js","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/toString.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/toPath.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/object/get.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/round.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/DataUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/cartesianViewBoxToTrapezoid.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/getCartesianPosition.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/legendPortalContext.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js","../../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/area.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/stack.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/types.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/resolveDefaultProps.js","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/array/uniqBy.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/function/ary.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/function/identity.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/object/property.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/_internal/globalThis.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isBuffer.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/object/cloneDeep.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/eq.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isMatchWith.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isMatch.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/matches.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/object/cloneDeep.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/object/has.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/iteratee.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/normalizeZero.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/array/uniqBy.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/payload/getUniqPayload.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.2_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.2_react@18.2.0/node_modules/use-sync-external-store/shim/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.2_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.2_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/RechartsReduxContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/hooks.js","../../../node_modules/.pnpm/reselect@5.2.0/node_modules/reselect/dist/reselect.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/array/flatten.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/compareValues.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/predicate/isSymbol.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/_internal/isKey.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/array/orderBy.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/array/sortBy.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/legendSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/useElementOffset.js","../../../node_modules/.pnpm/redux@5.0.1/node_modules/redux/dist/redux.mjs","../../../node_modules/.pnpm/immer@11.1.18/node_modules/immer/dist/immer.mjs","../../../node_modules/.pnpm/redux-thunk@3.1.0_redux@5.0.1/node_modules/redux-thunk/dist/redux-thunk.mjs","../../../node_modules/.pnpm/@reduxjs+toolkit@2.12.0_rea_1a96d520c51867072c951e6b2bb512f5/node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/layoutSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getSliced.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/isWellBehavedNumber.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/ChartUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/containerSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectAllAxes.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/Constants.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/PanoramaContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/brushSelectors.js","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/function/debounce.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/function/debounce.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/function/throttle.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/LogUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/responsiveContainerUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/ResponsiveContainer.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/chartLayoutContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/legendSlice.js","../../../node_modules/.pnpm/use-sync-external-store@1.4.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../../../node_modules/.pnpm/use-sync-external-store@1.4.0_react@18.2.0/node_modules/use-sync-external-store/with-selector.js","../../../node_modules/.pnpm/react-redux@9.3.0_@types+re_ba97e46e85905400e6bd2d4962fbc6e9/node_modules/react-redux/dist/react-redux.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/propsAreEqual.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/DefaultTooltipContent.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/tooltip/translate.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/Global.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/usePrefersReducedMotion.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/TooltipBoundingBox.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/accessibilityContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/shape/Curve.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/shape/Cross.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/easing.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/AnimationControllerImpl.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/useAnimationController.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/AnimationHandle.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/timeoutController.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/JavascriptAnimate.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/useAnimationId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/util.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/shape/Rectangle.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/PolarUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/shape/Sector.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/cursor/getCursorPoints.js","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/toNumber.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/util/toFinite.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/compat/math/range.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/dataSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../../../node_modules/.pnpm/decimal.js-light@2.5.1/node_modules/decimal.js-light/decimal.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/scale/util/arithmetic.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/scale/getNiceTickValues.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/rootPropsSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/zIndex/DefaultZIndexes.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/polar/defaultPolarAngleAxisProps.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/polar/defaultPolarRadiusAxisProps.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineAxisRangeWithReverse.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getAxisTypeBasedOnLayout.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/polarAxisSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/pickAxisType.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/pickAxisId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/stacks/getStackSeriesIdentifier.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineDisplayedStackedData.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/types/StackedGraphicalItem.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/numberDomainEqualityCheck.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/arrayEqualityCheck.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipAxisType.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipAxisId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/scale/RechartsScale.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineCheckedDomain.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js","../../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/sort.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quickselect.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quantile.js","../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/piecewise.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/identity.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/log.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/pow.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/radial.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantile.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantize.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/threshold.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js","../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js","../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequential.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequentialQuantile.js","../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/diverging.js","../../../node_modules/.pnpm/victory-vendor@37.3.6/node_modules/victory-vendor/es/d3-scale.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineConfiguredScale.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineRealScaleType.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/scale/createCategoricalInverse.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineInverseScaleFunction.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/axisSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipEventType.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineActiveLabel.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipSettings.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/tooltipSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineTooltipInteractionState.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineActiveTooltipIndex.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineCoordinateForDefaultIndex.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayloadConfigurations.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipPayloadSearcher.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectTooltipState.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayload.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/tooltipSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/useTooltipAxis.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getActiveCoordinate.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/zIndex/zIndexSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/zIndexSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/zIndex/ZIndexLayer.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/Cursor.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/tooltipPortalContext.js","../../../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.js","../../../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/Events.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/optionsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/synchronisation/syncSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/chartDataSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/synchronisation/useChartSynchronisation.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/Tooltip.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/Cell.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/LRUCache.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/DOMUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/ReduceCSSCalc.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/Text.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/Label.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/component/LabelList.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/polarAxisSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getClassNameFromUnknown.js","../../../node_modules/.pnpm/react-is@17.0.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@17.0.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/ReactUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/ActiveShapeUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/tooltipContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/SetTooltipEntrySettings.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/SetLegendPayload.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/matchBy.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/useAnimationStartSnapshot.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/animation/AnimatedItems.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/useId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/useUniqueId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/RegisterGraphicalItemId.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/graphicalItemsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/SetGraphicalItem.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/cartesianAxisSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectChartOffset.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectPlotArea.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/hooks.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineBarSizeList.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineAllBarPositions.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineStackedData.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/combiners/combineBarPosition.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/chartDataContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/brushSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/CartesianUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/referenceElementsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/container/ClipPathProvider.js","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/function/noop.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs","../../../node_modules/.pnpm/es-toolkit@1.51.0/node_modules/es-toolkit/dist/predicate/isEqual.mjs","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getEveryNth.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/TickUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/getTicks.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/YAxisUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/XAxisUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/renderedTicksSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/CartesianAxis.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/theme/legacyTheme.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/theme/RechartsThemeContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/CartesianGrid.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/errorBarSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/context/ErrorBarContext.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/GraphicalItemClipPath.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/graphicalItemSelectors.js","../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/BarUtils.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/barSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/BarStack.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/Bar.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/axisPropsAreEqual.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/XAxis.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/cartesian/YAxis.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/getRelativeCoordinate.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/mouseEventsMiddleware.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/rootPropsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/polarOptionsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/keyboardEventsMiddleware.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/createEventProxy.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/externalEventsMiddleware.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/selectors/touchSelectors.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/touchEventsMiddleware.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/eventSettingsSlice.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/store.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/RechartsStoreProvider.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/ReportMainChartProps.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/ReportChartProps.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/state/ReportEventSettings.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/zIndex/ZIndexPortal.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/container/RootSurface.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/util/useReportScale.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/chart/RechartsWrapper.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/chart/CategoricalChart.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/chart/CartesianChart.js","../../../node_modules/.pnpm/recharts@3.10.1_@types+reac_6d8bb2f94d456ca56e40384474a34d15/node_modules/recharts/es6/chart/BarChart.js","../src/client/usage/DailyBarChart.tsx","../src/client/usage/UsageModal.tsx","../src/client/usage/entry.tsx","../src/client/usage/index.ts","../src/client/index.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/** 侧边栏底栏入口工厂:宽栏窄栏统一仅图标 + Tooltip,点击经 renderModal 打开模态框。 */\r\nimport { useState, type ComponentType, type ReactNode } from 'react'\r\nimport clsx from 'clsx'\r\nimport { Tooltip } from '@deepseek-ai/dsh-client-ui-primitives'\r\nimport css from './entry.module.css'\r\n\r\nexport interface SidebarEntryDeps<Extra = Record<never, never>> {\r\n /** slot 注册元数据(sidebar.footer.action 的 id),由调用方消费。 */\r\n id: string\r\n /** slot 注册元数据(sidebar.footer.action 的 order),由调用方消费。 */\r\n order: number\r\n icon: ReactNode\r\n title: string\r\n /** renderModal 除 open/onClose 外还可经 Extra 透传入口组件额外 props(如运行时 share)。 */\r\n renderModal: (props: { open: boolean; onClose: () => void } & Extra) => ReactNode\r\n}\r\n\r\nexport function createSidebarEntry<Extra extends object = Record<never, never>>(\r\n deps: SidebarEntryDeps<Extra>,\r\n): ComponentType<{ wide: boolean } & Extra> {\r\n const { icon, title, renderModal } = deps\r\n return function SidebarEntry(props: { wide: boolean } & Extra): ReactNode {\r\n const { wide } = props\r\n // 交集 {wide} & Extra 可赋值给 Extra(成员交集子类型),透传其余 props 给 renderModal。\r\n const extra: Extra = props\r\n const [open, setOpen] = useState(false)\r\n return (\r\n <>\r\n <Tooltip label={title} delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={clsx(css.trigger, !wide && css.rail)}\r\n aria-label={title}\r\n onClick={() => { setOpen(true) }}\r\n >\r\n {icon}\r\n </button>\r\n </Tooltip>\r\n {renderModal({ open, onClose: () => { setOpen(false) }, ...extra })}\r\n </>\r\n )\r\n }\r\n}\r\n","/** dsh-agent-toolkit 纯函数:日期换算、K/M/B 格式化、聚合。无运行时依赖,浏览器半可内联。 */\r\nimport type { Session, SessionEvent } from '@deepseek-ai/dsh-session'\r\nimport type { Message } from '@deepseek-ai/dsh-llm/types'\r\n// 激活 @deepseek-ai/dsh-compaction 对 SessionEventMap 的声明合并(compaction/summary 等事件类型)。\r\nimport type {} from '@deepseek-ai/dsh-compaction/types'\r\nimport type { Bucket, DailyRecord } from './store.ts'\r\n\r\n/** 一条待聚合样本;每个样本隐含 calls=1。 */\r\nexport interface UsageSample {\r\n date: string\r\n hour: number\r\n input: number\r\n output: number\r\n cacheRead: number\r\n cacheWrite: number\r\n /** 估算样本的计费 token 量;真实样本为 0。 */\r\n estimated: number\r\n estimatedCall: boolean\r\n /** 'provider/model';compaction 样本无。 */\r\n model?: string\r\n sessionId?: string\r\n cwd?: string\r\n compaction: boolean\r\n}\r\n\r\n/** 桶的计费总量(含估算)。 */\r\nexport function billedOf(b: Bucket): number {\r\n return b.input + b.output + b.cacheRead + b.cacheWrite + b.estimated\r\n}\r\n\r\nexport function emptyBucket(): Bucket {\r\n return { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, calls: 0, estimated: 0 }\r\n}\r\n\r\nexport function emptyDaily(date: string): DailyRecord {\r\n return {\r\n date,\r\n totals: { ...emptyBucket(), estimatedCalls: 0 },\r\n hours: Array.from({ length: 24 }, emptyBucket),\r\n byModel: {},\r\n bySession: {},\r\n byProject: {},\r\n compaction: emptyBucket(),\r\n }\r\n}\r\n\r\nfunction addToBucket(b: Bucket, s: UsageSample): Bucket {\r\n return {\r\n input: b.input + s.input, output: b.output + s.output,\r\n cacheRead: b.cacheRead + s.cacheRead, cacheWrite: b.cacheWrite + s.cacheWrite,\r\n calls: b.calls + 1, estimated: b.estimated + s.estimated,\r\n }\r\n}\r\n\r\n/** 把一条样本并入日记录,返回新对象(存储记录禁止就地修改)。 */\r\nexport function addSample(rec: DailyRecord, s: UsageSample): DailyRecord {\r\n const totals = { ...addToBucket(rec.totals, s), estimatedCalls: rec.totals.estimatedCalls + (s.estimatedCall ? 1 : 0) }\r\n const hours = rec.hours.slice()\r\n hours[s.hour] = addToBucket(hours[s.hour], s)\r\n const byModel = { ...rec.byModel }\r\n if (s.model !== undefined) byModel[s.model] = addToBucket(byModel[s.model] ?? emptyBucket(), s)\r\n const bySession = { ...rec.bySession }\r\n if (s.sessionId !== undefined && s.cwd !== undefined) {\r\n bySession[s.sessionId] = { ...addToBucket(bySession[s.sessionId] ?? { ...emptyBucket(), cwd: s.cwd }, s), cwd: s.cwd }\r\n }\r\n const byProject = { ...rec.byProject }\r\n if (s.cwd !== undefined && !s.compaction) byProject[s.cwd] = addToBucket(byProject[s.cwd] ?? emptyBucket(), s)\r\n const compaction = s.compaction ? addToBucket(rec.compaction, s) : rec.compaction\r\n return { ...rec, totals, hours, byModel, bySession, byProject, compaction }\r\n}\r\n\r\n/** 从 session 事件提取样本;不相关事件与无 usage 的 compaction 返回 undefined。 */\r\nexport function sampleFromEvent(\r\n session: Session,\r\n event: SessionEvent,\r\n timeZone: string,\r\n estimate: (message: Message) => number,\r\n): UsageSample | undefined {\r\n const { date, hour } = dayParts(event.time, timeZone)\r\n if (event.type === 'assistant/message') {\r\n const { message, usage } = event.data\r\n const base = { date, hour, model: `${message.source.provider}/${message.source.model}`, sessionId: String(session.header.id), cwd: session.header.cwd, compaction: false }\r\n if (usage === undefined) {\r\n return { ...base, input: 0, output: 0, cacheRead: 0, cacheWrite: 0, estimated: estimate(message), estimatedCall: true }\r\n }\r\n return {\r\n ...base, estimated: 0, estimatedCall: false,\r\n input: usage.inputTokens, output: usage.outputTokens,\r\n cacheRead: usage.cacheReadTokens ?? 0, cacheWrite: usage.cacheWriteTokens ?? 0,\r\n }\r\n }\r\n if (event.type === 'compaction/summary') {\r\n const { usage } = event.data\r\n if (usage === undefined) return undefined // 摘要块不是 Message,不做启发式估算\r\n return {\r\n date, hour, model: undefined, estimated: 0, estimatedCall: false, compaction: true,\r\n input: usage.inputTokens, output: usage.outputTokens,\r\n cacheRead: usage.cacheReadTokens ?? 0, cacheWrite: usage.cacheWriteTokens ?? 0,\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\n/** 把 UTC 毫秒换算成指定时区的日期串与小时序号。 */\r\nexport function dayParts(time: number, timeZone: string): { date: string; hour: number } {\r\n const parts = new Intl.DateTimeFormat('en-CA', {\r\n timeZone, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', hour12: false,\r\n }).formatToParts(time)\r\n const get = (type: string): string => parts.find((p) => p.type === type)!.value\r\n return {\r\n date: `${get('year')}-${get('month')}-${get('day')}`,\r\n hour: Number(get('hour')) % 24, // 部分 ICU 版本午夜给 24\r\n }\r\n}\r\n\r\n/** 日期串加减天数(锚 UTC 正午,避开 DST)。 */\r\nexport function shiftDate(date: string, days: number): string {\r\n return new Date(Date.parse(`${date}T12:00:00Z`) + days * 86_400_000).toISOString().slice(0, 10)\r\n}\r\n\r\n/** 计费 token 数自动换算 K/M/B(10 进制,1 位小数)。 */\r\nexport function formatTokens(n: number): string {\r\n const units = ['', 'K', 'M', 'B'] as const\r\n let value = n\r\n let unit = 0\r\n while (value >= 1000 && unit < units.length - 1) {\r\n value /= 1000\r\n unit += 1\r\n }\r\n return unit === 0 ? String(n) : `${value.toFixed(1)}${units[unit]}`\r\n}\r\n","/** dsh-agent-toolkit 纯函数:range 端点参数与摘要、13 周热力图网格、缓存/新增拆分。无运行时依赖,两半共用。 */\r\nimport { billedOf, shiftDate } from './aggregate.ts'\r\nimport type { Bucket, DailyRecord } from './store.ts'\r\n\r\n/** range 端点与热力图共用的每日紧凑摘要。 */\r\nexport interface HeatmapDay { date: string; billed: number; calls: number }\r\n\r\nconst DAY_MS = 86_400_000\r\n\r\n/** 解析 range 端点 days 参数:null → 默认 91;1..366 合法;其余返回 null(非法)。 */\r\nexport function parseDaysParam(raw: string | null): number | null {\r\n if (raw === null) return 91\r\n if (!/^\\d+$/.test(raw)) return null\r\n const n = Number(raw)\r\n return n >= 1 && n <= 366 ? n : null\r\n}\r\n\r\n/** 以 today 为终点向前取 days 天的紧凑摘要(缺失日记 0),日期升序。 */\r\nexport function rangeSummaries(get: (date: string) => DailyRecord | undefined, today: string, days: number): HeatmapDay[] {\r\n return Array.from({ length: days }, (_, i) => {\r\n const date = shiftDate(today, i - (days - 1))\r\n const rec = get(date)\r\n return rec === undefined\r\n ? { date, billed: 0, calls: 0 }\r\n : { date, billed: billedOf(rec.totals), calls: rec.totals.calls }\r\n })\r\n}\r\n\r\nexport type HeatmapLevel = 0 | 1 | 2 | 3 | 4\r\n\r\n/** 分档:0 用量 → 0;非零按 max 线性 1..4 档(max <= 0 时兜底 1)。 */\r\nexport function levelOf(billed: number, max: number): HeatmapLevel {\r\n if (billed <= 0) return 0\r\n if (max <= 0) return 1\r\n return Math.min(4, Math.max(1, Math.ceil((billed / max) * 4))) as HeatmapLevel\r\n}\r\n\r\nexport interface HeatmapCell {\r\n date: string\r\n day: HeatmapDay | undefined\r\n level: HeatmapLevel\r\n /** today 之后的格子:禁用、不计档位。 */\r\n future: boolean\r\n}\r\n\r\n/** 13 列 × 每列 7 格(周日在上);末列为 today 所在周(周六结束)。 */\r\nexport function heatmapGrid(today: string, days: HeatmapDay[]): HeatmapCell[][] {\r\n const byDate = new Map(days.map((d) => [d.date, d]))\r\n const todayMs = Date.parse(`${today}T12:00:00Z`)\r\n const endMs = todayMs + (6 - new Date(todayMs).getUTCDay()) * DAY_MS\r\n const startMs = endMs - 90 * DAY_MS\r\n const max = Math.max(0, ...days.map((d) => d.billed))\r\n return Array.from({ length: 13 }, (_, c) =>\r\n Array.from({ length: 7 }, (_, r) => {\r\n const ms = startMs + (c * 7 + r) * DAY_MS\r\n const date = new Date(ms).toISOString().slice(0, 10)\r\n const day = byDate.get(date)\r\n const future = ms > todayMs\r\n return { date, day, level: future || day === undefined ? 0 : levelOf(day.billed, max), future }\r\n }))\r\n}\r\n\r\n/** 缓存/新增拆分:缓存 = cacheRead;新增 = input+output+cacheWrite+estimated。 */\r\nexport function cacheSplit(b: Bucket): { fresh: number; cached: number } {\r\n return { fresh: b.input + b.output + b.cacheWrite + b.estimated, cached: b.cacheRead }\r\n}\r\n\r\n/** 缓存命中率 = cacheRead/(input+cacheRead);分母为 0 返回 null。 */\r\nexport function cacheHitRate(totals: Bucket): number | null {\r\n const denom = totals.input + totals.cacheRead\r\n return denom === 0 ? null : totals.cacheRead / denom\r\n}\r\n","/** shared 数据加载状态机:loading/error/ok 三态 + stale 标志 + reload 计数器。 */\r\nimport { useEffect, useState } from 'react'\r\n\r\nexport type LoadState<T> =\r\n | { kind: 'loading' }\r\n | { kind: 'error'; message: string }\r\n | { kind: 'ok'; data: T }\r\n\r\nexport function useLoadState<T>(\r\n load: () => Promise<T>,\r\n deps: unknown[],\r\n): { state: LoadState<T>; reload: () => void } {\r\n const [state, setState] = useState<LoadState<T>>({ kind: 'loading' })\r\n const [tick, setTick] = useState(0)\r\n useEffect(() => {\r\n let stale = false\r\n setState({ kind: 'loading' })\r\n load()\r\n .then((data) => { if (!stale) setState({ kind: 'ok', data }) })\r\n .catch((error) => {\r\n if (!stale) setState({ kind: 'error', message: error instanceof Error ? error.message : String(error) })\r\n })\r\n return () => { stale = true }\r\n // deps 由调用方明确提供(重新加载触发条件),tick 由 reload 驱动。\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [...deps, tick])\r\n return { state, reload: () => { setTick((n) => n + 1) } }\r\n}\r\n","/** 13 周活动热力图:7 行(周日在上)× 13 列;格子颜色 = 当日计费总量档位;纯展示,title tooltip 显示当日用量。 */\r\nimport type { ReactNode } from 'react'\r\nimport { formatTokens } from '../../usage/aggregate.ts'\r\nimport { heatmapGrid, type HeatmapDay } from '../../usage/heatmap.ts'\r\nimport theme from './chart.module.css'\r\nimport css from './ActivityHeatmap.module.css'\r\n\r\nexport interface ActivityHeatmapProps {\r\n today: string\r\n days: HeatmapDay[]\r\n}\r\n\r\nexport function ActivityHeatmap({ today, days }: ActivityHeatmapProps): ReactNode {\r\n const columns = heatmapGrid(today, days)\r\n return (\r\n <div className={theme.chartTheme}>\r\n <div className={css.months}>\r\n {columns.map((col, c) => {\r\n const first = col.find((cell) => cell.date.endsWith('-01'))\r\n return <span key={c}>{first === undefined ? '' : `${Number(first.date.slice(5, 7))}月`}</span>\r\n })}\r\n </div>\r\n <div className={css.grid}>\r\n {columns.map((col, c) => (\r\n <div key={c} className={css.week}>\r\n {col.map((cell) => (\r\n <div\r\n key={cell.date}\r\n className={css[`level${cell.level}`]}\r\n aria-disabled={cell.future || undefined}\r\n title={cell.future ? undefined : `${cell.date} ${formatTokens(cell.day?.billed ?? 0)} · ${cell.day?.calls ?? 0} 次`}\r\n />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\nexport function isEventKey(key) {\n if (typeof key !== 'string') {\n return false;\n }\n var allowedEventKeys = EventKeys;\n return allowedEventKeys.includes(key);\n}","import { isValidElement } from 'react';\nvar SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it, and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar SVGElementPropKeySet = new Set(SVGElementPropKeys);\nexport function isSvgElementPropKey(key) {\n if (typeof key !== 'string') {\n return false;\n }\n return SVGElementPropKeySet.has(key);\n}\n/**\n * Checks if the property is a data attribute.\n * @param key The property key.\n * @returns True if the key starts with 'data-', false otherwise.\n */\nexport function isDataAttribute(key) {\n return typeof key === 'string' && key.startsWith('data-');\n}\n\n/**\n * Filters an object to only include SVG properties. Removes all event handlers too.\n * @param obj - The object to filter\n * @returns A new object containing only valid SVG properties, excluding event handlers.\n */\nexport function svgPropertiesNoEvents(obj) {\n if (typeof obj !== 'object' || obj === null) {\n return {};\n }\n var result = {};\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (isSvgElementPropKey(key) || isDataAttribute(key)) {\n result[key] = obj[key];\n }\n }\n }\n return result;\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesNoEventsFromUnknown(input) {\n if (input == null) {\n return null;\n }\n if (/*#__PURE__*/isValidElement(input) && typeof input.props === 'object' && input.props !== null) {\n var p = input.props;\n return svgPropertiesNoEvents(p);\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n return svgPropertiesNoEvents(input);\n }\n return null;\n}","import { isValidElement } from 'react';\nimport { isEventKey } from './excludeEventProps';\nimport { isDataAttribute, isSvgElementPropKey } from './svgPropertiesNoEvents';\n/**\n * Filters an object to only include SVG properties, data attributes, and event handlers.\n * @param obj - The object to filter.\n * @returns A new object containing only valid SVG properties, data attributes, and event handlers.\n */\nexport function svgPropertiesAndEvents(obj) {\n var result = {};\n // for ... in loop is 10x faster than Object.entries + filter + Object.fromEntries in Chrome\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (isSvgElementPropKey(key) || isDataAttribute(key) || isEventKey(key)) {\n result[key] = obj[key];\n }\n }\n }\n return result;\n}\n\n/**\n * Function to filter SVG properties from various input types.\n * The input types can be:\n * - A record of string keys to any values, in which case it returns a record of only SVG properties\n * - A React element, in which case it returns the props of the element filtered to only SVG properties\n * - Anything else, in which case it returns null\n *\n * This function has a wide-open return type, because it will read and filter the props of an arbitrary React element.\n * This can be SVG, HTML, whatnot, with arbitrary values, so we can't type it more specifically.\n *\n * If you wish to have a type-safe version, use svgPropertiesNoEvents directly with a typed object.\n *\n * @param input - The input to filter, which can be a record, a React element, or other types.\n * @returns A record of SVG properties if the input is a record or React element, otherwise null.\n */\nexport function svgPropertiesAndEventsFromUnknown(input) {\n if (input == null) {\n return null;\n }\n if (/*#__PURE__*/isValidElement(input)) {\n // @ts-expect-error we can't type this better because input can be any React element\n return svgPropertiesAndEvents(input.props);\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n return svgPropertiesAndEvents(input);\n }\n return null;\n}","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n/**\n * Renders an SVG element.\n *\n * All charts already include a Surface component, so you would not normally use this directly.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg\n */\nexport var Surface = /*#__PURE__*/forwardRef((props, ref) => {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width,\n height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, svgPropertiesAndEvents(others), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n ref: ref\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n});","var _excluded = [\"children\", \"className\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n/**\n * Creates an SVG group element to group other SVG elements.\n *\n * Useful if you want to apply transformations or styles to a set of elements\n * without affecting other elements in the SVG.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g\n */\nexport var Layer = /*#__PURE__*/React.forwardRef((props, ref) => {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, svgPropertiesAndEvents(others), {\n ref: ref\n }), children);\n});","//#region src/_internal/isUnsafeProperty.ts\n/**\n* Checks if a property key is unsafe to access or copy directly.\n*\n* This function is used in functions like `get`, `unset`, and `merge` to prevent\n* prototype pollution attacks by identifying `__proto__`, which modifies the object's\n* prototype chain. `constructor` and `prototype` stay accessible here because lodash\n* keeps reads of them unrestricted; write paths use `isUnsafeToWriteProperty` instead,\n* which also blocks those keys.\n*\n* @param key - The property key to check\n* @returns `true` if the property is unsafe to access directly, `false` otherwise\n* @internal\n*/\nfunction isUnsafeProperty(key) {\n\treturn key === \"__proto__\";\n}\n//#endregion\nexport { isUnsafeProperty };\n","//#region src/compat/_internal/isDeepKey.ts\n/** Matches any deep property path. Examples: `a.b`, `a[0]`, `a[\"b\"]` */\nconst regexIsDeepProp = /\\.|(\\[(?:[^[\\]]*|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*?\\2)\\])/;\n/**\n* Checks if a given key is a deep key.\n*\n* A deep key is a string that contains a dot (.) or square brackets with a property accessor.\n*\n* @param {PropertyKey} key - The key to check.\n* @returns {boolean} - Returns true if the key is a deep key, otherwise false.\n*\n* Examples:\n*\n* isDeepKey('a.b') // true\n* isDeepKey('a[b]') // true\n* isDeepKey('a') // false\n* isDeepKey(123) // false\n* isDeepKey('a.b.c') // true\n* isDeepKey('a[b][c]') // true\n* isDeepKey('a.') // false\n* isDeepKey('.a') // false\n* isDeepKey('a[b') // false\n* isDeepKey('a]b]') // false\n* isDeepKey('a][b') // false\n* isDeepKey('') // false\n* isDeepKey('a[0]') // true\n*\n*/\nfunction isDeepKey(key) {\n\tswitch (typeof key) {\n\t\tcase \"number\":\n\t\tcase \"symbol\": return false;\n\t\tcase \"string\":\n\t\t\tif (key === \"\" || key.startsWith(\".\") || key.endsWith(\".\")) return false;\n\t\t\treturn regexIsDeepProp.test(key);\n\t\tdefault: return false;\n\t}\n}\n//#endregion\nexport { isDeepKey };\n","//#region src/compat/_internal/toKey.ts\n/**\n* Converts `value` to a string key if it's not a string or symbol.\n*\n* @private\n* @param {unknown} value The value to inspect.\n* @returns {string|symbol} Returns the key.\n*/\nfunction toKey(value) {\n\tif (typeof value === \"string\" || typeof value === \"symbol\") return value;\n\tif (Object.is(value?.valueOf?.(), -0)) return \"-0\";\n\treturn String(value);\n}\n//#endregion\nexport { toKey };\n","//#region src/compat/util/toString.ts\n/**\n* Converts `value` to a string.\n*\n* An empty string is returned for `null` and `undefined` values.\n* The sign of `-0` is preserved.\n*\n* @param value - The value to convert.\n* @returns Returns the converted string.\n*\n* @example\n* toString(null) // returns ''\n* toString(undefined) // returns ''\n* toString(-0) // returns '-0'\n* toString([1, 2, -0]) // returns '1,2,-0'\n* toString([Symbol('a'), Symbol('b')]) // returns 'Symbol(a),Symbol(b)'\n*/\nfunction toString(value) {\n\tif (value == null) return \"\";\n\treturn baseToString(value);\n}\nfunction baseToString(value) {\n\tif (typeof value === \"string\") return value;\n\tif (Array.isArray(value)) return value.map(baseToString).join(\",\");\n\tconst result = String(value);\n\tif (result === \"0\" && Object.is(Number(value), -0)) return \"-0\";\n\treturn result;\n}\n//#endregion\nexport { toString };\n","import { toKey } from \"../_internal/toKey.mjs\";\nimport { toString } from \"./toString.mjs\";\n//#region src/compat/util/toPath.ts\n/**\n* Converts a deep key string into an array of path segments.\n*\n* This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.\n*\n* @param deepKey - The deep key string to convert.\n* @returns An array of strings, each representing a segment of the path.\n*\n* Examples:\n*\n* toPath('a.b.c') // Returns ['a', 'b', 'c']\n* toPath('a[b][c]') // Returns ['a', 'b', 'c']\n* toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']\n* toPath('a[\"b.c\"].d') // Returns ['a', 'b.c', 'd']\n* toPath('') // Returns []\n* toPath('.a[b].c.d[e][\"f.g\"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']\n*/\nfunction toPath(deepKey) {\n\tif (Array.isArray(deepKey)) return deepKey.map(toKey);\n\tif (typeof deepKey === \"symbol\") return [deepKey];\n\tdeepKey = toString(deepKey);\n\tconst result = [];\n\tconst length = deepKey.length;\n\tif (length === 0) return result;\n\tlet index = 0;\n\tlet key = \"\";\n\tlet quoteChar = \"\";\n\tlet bracket = false;\n\tlet bracketHadQuote = false;\n\tconst bracketNumberRegex = /^-?\\d+(?:\\.\\d+)?$/;\n\tif (deepKey.charCodeAt(0) === 46) result.push(\"\");\n\twhile (index < length) {\n\t\tconst char = deepKey[index];\n\t\tif (quoteChar) if (char === \"\\\\\" && index + 1 < length) {\n\t\t\tindex++;\n\t\t\tkey += deepKey[index];\n\t\t} else if (char === quoteChar) quoteChar = \"\";\n\t\telse key += char;\n\t\telse if (bracket) if (char === \"\\\"\" || char === \"'\") {\n\t\t\tquoteChar = char;\n\t\t\tbracketHadQuote = true;\n\t\t} else if (char === \"]\") {\n\t\t\tbracket = false;\n\t\t\tif (!bracketHadQuote && key.includes(\".\") && !bracketNumberRegex.test(key)) {\n\t\t\t\tconst segments = key.split(\".\");\n\t\t\t\tfor (let i = 0; i < segments.length; i++) if (segments[i] !== \"\") result.push(segments[i]);\n\t\t\t} else result.push(key);\n\t\t\tkey = \"\";\n\t\t} else key += char;\n\t\telse if (char === \"[\") {\n\t\t\tbracket = true;\n\t\t\tbracketHadQuote = false;\n\t\t\tif (key) {\n\t\t\t\tresult.push(key);\n\t\t\t\tkey = \"\";\n\t\t\t}\n\t\t} else if (char === \".\") {\n\t\t\tif (key) {\n\t\t\t\tresult.push(key);\n\t\t\t\tkey = \"\";\n\t\t\t}\n\t\t\tconst next = deepKey[index + 1];\n\t\t\tif (next === void 0 || next === \".\") result.push(\"\");\n\t\t} else key += char;\n\t\tindex++;\n\t}\n\tif (key) result.push(key);\n\treturn result;\n}\n//#endregion\nexport { toPath };\n","import { isUnsafeProperty } from \"../../_internal/isUnsafeProperty.mjs\";\nimport { isDeepKey } from \"../_internal/isDeepKey.mjs\";\nimport { toKey } from \"../_internal/toKey.mjs\";\nimport { toPath } from \"../util/toPath.mjs\";\n//#region src/compat/object/get.ts\n/**\n* Retrieves the value at a given path from an object. If the resolved value is undefined, the defaultValue is returned instead.\n*\n* @param object - The object to query.\n* @param path - The path of the property to get.\n* @param [defaultValue] - The value returned if the resolved value is undefined.\n* @returns Returns the resolved value.\n*\n* @example\n* const object = { a: { b: { c: 1 } } };\n* get(object, 'a.b.c');\n* // => 1\n*\n* get(object, ['a', 'b', 'c']);\n* // => 1\n*\n* get(object, 'a.b.d', 'default');\n* // => 'default'\n*/\nfunction get(object, path, defaultValue) {\n\tif (object == null) return defaultValue;\n\tswitch (typeof path) {\n\t\tcase \"string\": {\n\t\t\tif (isUnsafeProperty(path)) return defaultValue;\n\t\t\tconst result = object[path];\n\t\t\tif (result === void 0) if (isDeepKey(path) && !Object.hasOwn(object, path)) return get(object, toPath(path), defaultValue);\n\t\t\telse return defaultValue;\n\t\t\treturn result;\n\t\t}\n\t\tcase \"number\":\n\t\tcase \"symbol\": {\n\t\t\tif (typeof path === \"number\") path = toKey(path);\n\t\t\tconst result = object[path];\n\t\t\tif (result === void 0) return defaultValue;\n\t\t\treturn result;\n\t\t}\n\t\tdefault: {\n\t\t\tif (Array.isArray(path)) return getWithPath(object, path, defaultValue);\n\t\t\tif (Object.is(path?.valueOf(), -0)) path = \"-0\";\n\t\t\telse path = String(path);\n\t\t\tif (isUnsafeProperty(path)) return defaultValue;\n\t\t\tconst result = object[path];\n\t\t\tif (result === void 0) return defaultValue;\n\t\t\treturn result;\n\t\t}\n\t}\n}\nfunction getWithPath(object, path, defaultValue) {\n\tif (path.length === 0) return defaultValue;\n\tlet current = object;\n\tfor (let index = 0; index < path.length; index++) {\n\t\tif (current == null) return defaultValue;\n\t\tif (isUnsafeProperty(path[index])) return defaultValue;\n\t\tcurrent = current[path[index]];\n\t}\n\tif (current === void 0) return defaultValue;\n\treturn current;\n}\n//#endregion\nexport { get };\n","// if you go lower than 3, wild wild things happen during rendering\nvar defaultRoundPrecision = 4;\nexport function round(num) {\n var roundPrecision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoundPrecision;\n var factor = 10 ** roundPrecision;\n var rounded = Math.round(num * factor) / factor;\n if (Object.is(rounded, -0)) {\n return 0;\n }\n return rounded;\n}\n\n/**\n * This function will accept a string template literal and for each\n * variable placeholder, it will round the value to avoid long float numbers in\n * the SVG path which might cause rendering issues in some browsers.\n */\nexport function roundTemplateLiteral(strings) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n return strings.reduce((result, string, i) => {\n var value = values[i - 1];\n if (typeof value === 'string') {\n return result + value + string;\n }\n if (value !== undefined) {\n return result + round(value) + string;\n }\n return result + string;\n }, '');\n}","import get from 'es-toolkit/compat/get';\nimport { round } from './round';\nexport var mathSign = value => {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isNan = value => {\n // eslint-disable-next-line eqeqeq\n return typeof value == 'number' && value != +value;\n};\n\n/**\n * Checks if the value is a percent string.\n * A valid percent string must end with '%' and have at least one character before the '%'.\n *\n * @param {string | number | undefined} value The value to check\n * @returns {boolean} true if the value is a percent string\n */\nexport var isPercent = value => typeof value === 'string' && value.length > 1 && value.indexOf('%') === value.length - 1;\nexport var isNumber = value => (typeof value === 'number' || value instanceof Number) && !isNan(value);\nexport var isNumOrStr = value => isNumber(value) || typeof value === 'string';\nvar idCounter = 0;\nexport var uniqueId = prefix => {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Calculates the numeric value represented by a percent string or number, based on a total value.\n *\n * - If `percent` is not a number or string, returns `defaultValue`.\n * - If `percent` is a percent string but `totalValue` is null/undefined, returns `defaultValue`.\n * - If the result is NaN, returns `defaultValue`.\n * - If `validate` is true and the result exceeds `totalValue`, returns `totalValue`.\n *\n * @param percent - The percent value to convert. Can be a number (e.g. 25) or a string ending with '%' (e.g. '25%').\n * If a string, it must end with '%' to be treated as a percent; otherwise, it is parsed as a number.\n * @param totalValue - The total value to calculate the percent of. Required if `percent` is a percent string.\n * @param defaultValue - The value returned if `percent` is undefined, invalid, or cannot be converted to a number.\n * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).\n * @returns The calculated value, or `defaultValue` for invalid input.\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && typeof percent !== 'string') {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n if (totalValue == null) {\n return defaultValue;\n }\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && totalValue != null && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var hasDuplicate = ary => {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[String(ary[i])]) {\n cache[String(ary[i])] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Function to interpolate between two numbers.\n * If both start and end are numbers, it calculates the interpolated value based on the parameter animationElapsedTime (0 to 1).\n * If either start or end is not a number, it returns the end value directly.\n *\n * You will typically use this function when implementing custom animations.\n *\n * `animationElapsedTime` can be outside the (0, 1) range, depending on easing.\n *\n * This one interpolates only numbers;\n * if you want to interpolate colors or strings then perhaps see {@link https://d3js.org/d3-interpolate d3-interpolate}.\n * @param start the starting value (when animationElapsedTime=0)\n * @param end the final value (when animationElapsedTime=1)\n * @param animationElapsedTime interpolation factor; values in [0, 1] interpolate between start and end, and values outside that range extrapolate\n *\n * @since 3.9\n */\n\nexport function interpolate(start, end, animationElapsedTime) {\n if (isNumber(start) && isNumber(end)) {\n return round(start + animationElapsedTime * (end - start));\n }\n return end;\n}\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return undefined;\n }\n return ary.find(entry => entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue);\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = data => {\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n var _data$i, _data$i2;\n xcurrent = ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.cx) || 0;\n ycurrent = ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.cy) || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin,\n xmax,\n a,\n b: (ysum - a * xsum) / len\n };\n};\n/**\n * Checks if the value is null or undefined\n * @param value The value to check\n * @returns true if the value is null or undefined\n */\nexport var isNullish = value => {\n return value === null || typeof value === 'undefined';\n};\n\n/**\n * Uppercase the first letter of a string\n * @param {string} value The string to uppercase\n * @returns {string} The uppercased string\n */\nexport var upperFirst = value => {\n if (isNullish(value)) {\n return value;\n }\n return \"\".concat(value.charAt(0).toUpperCase()).concat(value.slice(1));\n};\n\n/**\n * Checks if the value is not null nor undefined.\n * @param value The value to check\n * @returns true if the value is not null nor undefined\n */\nexport function isNotNil(value) {\n return value != null;\n}\n\n/**\n * No-operation function that does nothing.\n * Useful as a placeholder or default callback function.\n */\nexport function noop() {}","export function cartesianViewBoxToTrapezoid(box) {\n if (!box) {\n return undefined;\n }\n return {\n x: box.x,\n y: box.y,\n upperWidth: 'upperWidth' in box ? box.upperWidth : box.width,\n lowerWidth: 'lowerWidth' in box ? box.lowerWidth : box.width,\n width: box.width,\n height: box.height\n };\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getPercentValue, isNumber, isPercent } from '../util/DataUtils';\nimport { cartesianViewBoxToTrapezoid } from './cartesianViewBoxToTrapezoid';\n\n/**\n * This type mixes together all the possible label positions for both cartesian and polar coordinates.\n * It is used in some places where the 2.x API allowed both types of charts mixed together.\n * If applicable, prefer to use {@link CalculatedCartesianPosition} instead.\n */\n\n/**\n * @inline\n */\n\n/**\n * Calculates the position and alignment for a generic element in a Cartesian coordinate system.\n *\n * @param options - The options including viewBox, position, and offset.\n * @returns The calculated x, y, alignment and size.\n */\nexport var getCartesianPosition = options => {\n var viewBox = options.viewBox,\n position = options.position,\n _options$offset = options.offset,\n offset = _options$offset === void 0 ? 0 : _options$offset,\n parentViewBoxFromOptions = options.parentViewBox,\n clamp = options.clamp;\n var _cartesianViewBoxToTr = cartesianViewBoxToTrapezoid(viewBox),\n x = _cartesianViewBoxToTr.x,\n y = _cartesianViewBoxToTr.y,\n height = _cartesianViewBoxToTr.height,\n upperWidth = _cartesianViewBoxToTr.upperWidth,\n lowerWidth = _cartesianViewBoxToTr.lowerWidth;\n\n // Funnel.tsx provides a viewBox where `x` is the top-left of the trapezoid shape.\n var upperX = x;\n // The trapezoid is centered, so we can calculate the other corners from the top-left.\n var lowerX = x + (upperWidth - lowerWidth) / 2;\n // middleX is the x-coordinate of the left edge at the vertical midpoint of the trapezoid.\n var middleX = (upperX + lowerX) / 2;\n // The width of the trapezoid at its vertical midpoint.\n var midHeightWidth = (upperWidth + lowerWidth) / 2;\n // The center x-coordinate is constant for the entire height of the trapezoid.\n var centerX = upperX + upperWidth / 2;\n\n // Define vertical offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative height.\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative.\n // This allows labels to be positioned correctly for bars with negative width.\n var horizontalSign = upperWidth >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n // We assume parentViewBox is generic if provided.\n // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.\n var parentViewBox = parentViewBoxFromOptions;\n if (position === 'top') {\n var result = {\n x: upperX + upperWidth / 2,\n y: y - verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n if (clamp && parentViewBox) {\n result.height = Math.max(y - parentViewBox.y, 0);\n result.width = upperWidth;\n }\n return result;\n }\n if (position === 'bottom') {\n var _result = {\n x: lowerX + lowerWidth / 2,\n y: y + height + verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n if (clamp && parentViewBox) {\n _result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);\n _result.width = lowerWidth;\n }\n return _result;\n }\n if (position === 'left') {\n var _result2 = {\n x: middleX - horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result2.width = Math.max(_result2.x - parentViewBox.x, 0);\n _result2.height = height;\n }\n return _result2;\n }\n if (position === 'right') {\n var _result3 = {\n x: middleX + midHeightWidth + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result3.width = Math.max(parentViewBox.x + parentViewBox.width - _result3.x, 0);\n _result3.height = height;\n }\n return _result3;\n }\n var sizeAttrs = clamp && parentViewBox ? {\n width: midHeightWidth,\n height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: middleX + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: middleX + midHeightWidth - horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: upperX + upperWidth / 2,\n y: y + verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: lowerX + lowerWidth / 2,\n y: y + height - verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: upperX + horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: upperX + upperWidth - horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: lowerX + horizontalOffset,\n y: y + height - verticalOffset,\n horizontalAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: lowerX + lowerWidth - horizontalOffset,\n y: y + height - verticalOffset,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (!!position && typeof position === 'object' && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n // TODO: This is not quite right. The width of the trapezoid changes with y.\n // A percentage-based x should be relative to the width at that y.\n // For now, we use the mid-height width as a reasonable approximation.\n return _objectSpread({\n x: x + getPercentValue(position.x, midHeightWidth),\n y: y + getPercentValue(position.y, height),\n horizontalAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: centerX,\n y: y + height / 2,\n horizontalAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar absolutePositions = ['top', 'left', 'right', 'bottom'];\nexport function isOutsidePosition(position) {\n if (position == null) {\n return false;\n }\n if (typeof position === 'object') {\n return true;\n }\n return absolutePositions.includes(position);\n}","import { createContext, useContext } from 'react';\nexport var LegendPortalContext = /*#__PURE__*/createContext(null);\nexport var useLegendPortal = () => useContext(LegendPortalContext);","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import { isValidElement } from 'react';\nimport { isEventKey } from './excludeEventProps';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n *\n * @inline\n */\n\n/**\n * @deprecated use either `CartesianLayout` or `PolarLayout` instead.\n * Mixing both charts families leads to ambiguity in the type system.\n * These two layouts share very few properties, so it is best to keep them separate.\n */\n\n/**\n * The type of axis.\n *\n * `category`: Treats data as distinct values.\n * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n *\n * `number`: Treats data as continuous range.\n * Values that are numerically closer are placed closer together on the axis.\n *\n * `auto`: the type is inferred based on the chart layout.\n *\n * This is external type - users will provide this type in props.\n * Internally we will evaluate it to either 'category' or 'number' based on the layout,\n * before sending it to the store.\n *\n * @inline\n */\n\n/**\n * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',\n * based on the chart layout and axis kind. Then they can start using this type.\n */\n\n/**\n * Extracts values from data objects.\n *\n * @inline\n */\n\n/**\n * A version of PresentationAttributes that excludes SVG-specific props.\n * For use with components that render HTML elements (i.e., Legend and Tooltip, which render <ul>, <li>, <div>).\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.\n * Instead, use either `Coordinate` or `PolarCoordinate`.\n */\n\nexport var isPolarCoordinate = c => {\n return 'radius' in c && 'startAngle' in c && 'endAngle' in c;\n};\n\n/**\n * String shortcuts for scale types.\n * In case none of these does what you want you can also provide your own scale function\n * @see {@link CustomScaleDefinition}\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\n/**\n * The type of easing function to use for animations\n *\n * @inline\n */\n\n/** @deprecated Use EasingInput instead */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/**\n * This object defines the offset of the chart area and width and height and brush and ... it's a bit too much information all in one.\n * We use it internally but let's not expose it to the outside world.\n * If you are looking for this information, instead import `ChartOffset` or `PlotArea` from `recharts`.\n */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/**\n * @inline\n */\n\n/**\n * Props shared in all renderable axes - meaning the ones that are drawn on the chart,\n * can have ticks, axis line, etc.\n */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks always show.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.\n */\n\n/**\n * Ticks can be any type when the axis is the type of category.\n *\n * Ticks must be numbers when the axis is the type of number.\n *\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nexport var adaptEventHandlers = (props, newHandler) => {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if (/*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (typeof inputProps !== 'object' && typeof inputProps !== 'function') {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(key => {\n if (isEventKey(key) && typeof inputProps[key] === 'function') {\n out[key] = newHandler || (e => inputProps[key](inputProps, e));\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = (originalHandler, data, index) => e => {\n originalHandler(data, index, e);\n return null;\n};\nexport var adaptEventsOfChild = (props, data, index) => {\n if (props === null || typeof props !== 'object' && typeof props !== 'function') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(key => {\n var item = props[key];\n if (isEventKey(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};\n\n/**\n * 'axis' means that all graphical items belonging to this axis tick will be highlighted,\n * and all will be present in the tooltip.\n * Tooltip with 'axis' will display when hovering on the chart background.\n *\n * 'item' means only the one graphical item being hovered will show in the tooltip.\n * Tooltip with 'item' will display when hovering over individual graphical items.\n *\n * This is calculated internally;\n * charts have a `defaultTooltipEventType` and `validateTooltipEventTypes` options.\n *\n * Users then use <Tooltip shared={true} /> or <Tooltip shared={false} /> to control their preference,\n * and charts will then see what is allowed and what is not.\n */\n\n/**\n * These are the props we are going to pass to an `activeDot` or `dot` if it is a function or a custom Component\n */\n\n/**\n * This is the type of `activeDot` prop on:\n * - Area\n * - Line\n * - Radar\n *\n * @inline\n */\n\n/**\n * Inside the dot event handlers we provide extra information about the dot point\n * that the Dot component itself does not need but users might find useful.\n */\n\n/**\n * This is the type of `dot` prop on:\n * - Area\n * - Line\n * - Radar\n *\n * @inline\n */\n\n/**\n * Animation metadata forwarded to custom chart shapes.\n *\n * These props let a shape react to the current animation state without needing\n * to know how its parent chart component computes the animated geometry.\n */\n\n/**\n * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.\n *\n * This is meant to represent the React.MouseEvent\n * which is a wrapper on top of https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent\n */\n\n/**\n * Simplified version of the MouseEvent for SVG elements.\n *\n * Similar to MousePointer but uses SVGGraphicsElement properties instead of HTMLElement properties.\n * SVG elements use getBBox() to get the intrinsic size instead of offsetWidth/offsetHeight.\n */\n\n/**\n * Recharts accepts mouse events from both HTML and SVG elements.\n */\n\n/**\n * Coordinates relative to the top-left corner of the active element.\n * Also include scale which means that element that's scaled will return the same coordinates as element that's not scaled.\n */\n\n/**\n * Data provider means that this component accepts a `data` prop which is where you can input your data into the chart state.\n * The data is an array of objects, where each object represents a data point.\n *\n * DataPointType is the type of each data point object in the data array.\n *\n * The data is reused in multiple charts and components. Meaning if you provide data on the chart level,\n * then all child components, graphical items, legend, tooltip, axes ... will be able to access the data.\n *\n * Same goes for the graphical item. If you provide data on the graphical item level,\n * then that data is visible for the main chart, and all axes, tooltip, legend ... in the whole chart.\n * This is not scoped to the graphical item only.\n */\n\n/**\n * Data consumer means that this component accepts a `dataKey` prop which is how you specify\n * which dimension of the data to use for this component.\n *\n * DataPointType is the type of each data point object in the data array.\n * DataValueType is the type of the value that this dataKey extracts from each data point.\n */\n\n/**\n * Props shared with all Cartesian and Polar charts.\n * There are three charts that do not use these base props, and define their own:\n * - Treemap\n * - Sunburst\n * - Sankey\n */\n\nexport var isNonEmptyArray = arr => {\n return Array.isArray(arr) && arr.length > 0;\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * This function mimics the behavior of the `defaultProps` static property in React.\n * Functional components do not have a defaultProps property, so this function is useful to resolve default props.\n *\n * The common recommendation is to use ES6 destructuring with default values in the function signature,\n * but you need to be careful there and make sure you destructure all the individual properties\n * and not the whole object. See the test file for example.\n *\n * And because destructuring all properties one by one is a faff, and it's easy to miss one property,\n * this function exists.\n *\n * @param realProps - the props object passed to the component by the user\n * @param defaultProps - the default props object defined in the component by Recharts\n * @returns - the props object with all the default props resolved. All `undefined` values are replaced with the default value.\n */\nexport function resolveDefaultProps(realProps, defaultProps) {\n /*\n * To avoid mutating the original `realProps` object passed to the function, create a shallow copy of it.\n * `resolvedProps` will be modified directly with the defaults.\n */\n var resolvedProps = _objectSpread({}, realProps);\n /*\n * Since the function guarantees `D extends Partial<T>`, this assignment is safe.\n * It allows TypeScript to work with the well-defined `Partial<T>` type inside the loop,\n * making subsequent type inference (especially for `dp[key]`) much more straightforward for the compiler.\n * This is a key step to improve type safety *without* value assertions later.\n */\n var dp = defaultProps;\n /*\n * `Object.keys` doesn't preserve strong key types - it always returns Array<string>.\n * However, due to the `D extends Partial<T>` constraint,\n * we know these keys *must* also be valid keys of `T`.\n * This assertion informs TypeScript of this relationship, avoiding type errors when using `key` to index `acc` (type T).\n *\n * Type assertions are not sound but in this case it's necessary\n * as `Object.keys` does not do what we want it to do.\n */\n var keys = Object.keys(defaultProps);\n var withDefaults = keys.reduce((acc, key) => {\n if (acc[key] === undefined && dp[key] !== undefined) {\n acc[key] = dp[key];\n }\n return acc;\n }, resolvedProps);\n /*\n * And again type assertions are not safe but here we have done the runtime work\n * so let's bypass the lack of static type safety and tell the compiler what happened.\n */\n return withDefaults;\n}\n\n/**\n * Helper type to extract the keys of T that are required.\n * It iterates through each key K in T. If Pick<T, K> cannot be assigned an empty object {},\n * it means K is required, so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\n\n/**\n * Helper type to extract the keys of T that are optional.\n * It iterates through each key K in T. If Pick<T, K> can be assigned an empty object {},\n * it means K is optional (or potentially missing), so we keep K; otherwise, we discard it (never).\n * [keyof T] at the end creates a union of the kept keys.\n */\n\n/**\n * Helper type to ensure keys of D exist in T.\n * For each key K in D, if K is also a key of T, keep the type D[K].\n * If K is NOT a key of T, map it to type `never`.\n * An object cannot have a property of type `never`, effectively disallowing extra keys.\n */\n\n/**\n * This type will take a source type `Props` and a default type `Defaults` and will return a new type\n * where all properties that are optional in `Props` but required in `Defaults` are made required in the result.\n * Properties that are required in `Props` and optional in `Defaults` will remain required.\n * Properties that are optional in both `Props` and `Defaults` will remain optional.\n *\n * This is useful for creating a type that represents the resolved props of a component with default props.\n */","//#region src/array/uniqBy.ts\n/**\n* Returns a new array containing only the unique elements from the original array,\n* based on the values returned by the mapper function.\n*\n* When duplicates are found, the first occurrence is kept and the rest are discarded.\n*\n* @template T - The type of elements in the array.\n* @template U - The type of mapped elements.\n* @param arr - The array to process.\n* @param mapper - The function used to convert the array elements.\n* @returns A new array containing only the unique elements from the original array, based on the values returned by the mapper function.\n*\n* @example\n* ```ts\n* uniqBy([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], Math.floor);\n* // [1.2, 2.1, 3.2, 5.7, 7.19]\n* ```\n*\n* @example\n* const array = [\n* { category: 'fruit', name: 'apple' },\n* { category: 'fruit', name: 'banana' },\n* { category: 'vegetable', name: 'carrot' },\n* ];\n* uniqBy(array, item => item.category).length\n* // 2\n* ```\n*/\nfunction uniqBy(arr, mapper) {\n\tconst map = /* @__PURE__ */ new Map();\n\tfor (let i = 0; i < arr.length; i++) {\n\t\tconst item = arr[i];\n\t\tconst key = mapper(item, i, arr);\n\t\tif (!map.has(key)) map.set(key, item);\n\t}\n\treturn Array.from(map.values());\n}\n//#endregion\nexport { uniqBy };\n","//#region src/function/ary.ts\n/**\n* Creates a function that invokes func, with up to n arguments, ignoring any additional arguments.\n*\n* @template F - The type of the function.\n* @param func - The function to cap arguments for.\n* @param n - The arity cap.\n* @returns Returns the new capped function.\n*\n* @example\n* function fn(a: number, b: number, c: number) {\n* return Array.from(arguments);\n* }\n*\n* ary(fn, 0)(1, 2, 3) // []\n* ary(fn, 1)(1, 2, 3) // [1]\n* ary(fn, 2)(1, 2, 3) // [1, 2]\n* ary(fn, 3)(1, 2, 3) // [1, 2, 3]\n*/\nfunction ary(func, n) {\n\treturn function(...args) {\n\t\treturn func.apply(this, args.slice(0, n));\n\t};\n}\n//#endregion\nexport { ary };\n","//#region src/function/identity.ts\n/**\n* Returns the input value unchanged.\n*\n* @template T - The type of the input value.\n* @param x - The value to be returned.\n* @returns The input value.\n*\n* @example\n* // Returns 5\n* identity(5);\n*\n* @example\n* // Returns 'hello'\n* identity('hello');\n*\n* @example\n* // Returns { key: 'value' }\n* identity({ key: 'value' });\n*/\nfunction identity(x) {\n\treturn x;\n}\n//#endregion\nexport { identity };\n","//#region src/predicate/isLength.ts\n/**\n* Checks if a given value is a valid length.\n*\n* A valid length is of type `number`, is a non-negative integer, and is less than or equal to\n* JavaScript's maximum safe integer (`Number.MAX_SAFE_INTEGER`).\n* It returns `true` if the value is a valid length, and `false` otherwise.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the\n* argument to a valid length (`number`).\n*\n* @param value The value to check.\n* @returns Returns `true` if `value` is a valid length, else `false`.\n*\n* @example\n* isLength(0); // true\n* isLength(42); // true\n* isLength(-1); // false\n* isLength(1.5); // false\n* isLength(Number.MAX_SAFE_INTEGER); // true\n* isLength(Number.MAX_SAFE_INTEGER + 1); // false\n*/\nfunction isLength(value) {\n\treturn Number.isSafeInteger(value) && value >= 0;\n}\n//#endregion\nexport { isLength };\n","import { isLength } from \"../../predicate/isLength.mjs\";\n//#region src/compat/predicate/isArrayLike.ts\n/**\n* Checks if `value` is array-like.\n*\n* @param value The value to check.\n* @returns Returns `true` if `value` is array-like, else `false`.\n*\n* @example\n* isArrayLike([1, 2, 3]); // true\n* isArrayLike('abc'); // true\n* isArrayLike({ 0: 'a', length: 1 }); // true\n* isArrayLike({}); // false\n* isArrayLike(null); // false\n* isArrayLike(undefined); // false\n*/\nfunction isArrayLike(value) {\n\treturn value != null && typeof value !== \"function\" && isLength(value.length);\n}\n//#endregion\nexport { isArrayLike };\n","import { get } from \"./get.mjs\";\n//#region src/compat/object/property.ts\n/**\n* Creates a function that returns the value at a given path of an object.\n*\n* @template T - The type of object.\n* @template R - The type of the value to return.\n* @param path - The path of the property to get.\n* @returns Returns a new function that takes an object and returns the value at the specified path.\n*\n* @example\n* const getObjectValue = property('a.b.c');\n* const result = getObjectValue({ a: { b: { c: 3 } } });\n* console.log(result); // => 3\n*\n* @example\n* const getObjectValue = property(['a', 'b', 'c']);\n* const result = getObjectValue({ a: { b: { c: 3 } } });\n* console.log(result); // => 3\n*/\nfunction property(path) {\n\treturn function(object) {\n\t\treturn get(object, path);\n\t};\n}\n//#endregion\nexport { property };\n","//#region src/predicate/isPrimitive.ts\n/**\n* Checks whether a value is a JavaScript primitive.\n* JavaScript primitives include null, undefined, strings, numbers, booleans, symbols, and bigints.\n*\n* @param value The value to check.\n* @returns Returns true if `value` is a primitive, false otherwise.\n*\n* @example\n* isPrimitive(null); // true\n* isPrimitive(undefined); // true\n* isPrimitive('123'); // true\n* isPrimitive(false); // true\n* isPrimitive(true); // true\n* isPrimitive(Symbol('a')); // true\n* isPrimitive(123n); // true\n* isPrimitive({}); // false\n* isPrimitive(new Date()); // false\n* isPrimitive(new Map()); // false\n* isPrimitive(new Set()); // false\n* isPrimitive([1, 2, 3]); // false\n*/\nfunction isPrimitive(value) {\n\treturn value == null || typeof value !== \"object\" && typeof value !== \"function\";\n}\n//#endregion\nexport { isPrimitive };\n","//#region src/predicate/isTypedArray.ts\n/**\n* Checks if a value is a TypedArray.\n* @param x The value to check.\n* @returns Returns true if `x` is a TypedArray, false otherwise.\n*\n* @example\n* const arr = new Uint8Array([1, 2, 3]);\n* isTypedArray(arr); // true\n*\n* const regularArray = [1, 2, 3];\n* isTypedArray(regularArray); // false\n*\n* const buffer = new ArrayBuffer(16);\n* isTypedArray(buffer); // false\n*/\nfunction isTypedArray(x) {\n\treturn ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n//#endregion\nexport { isTypedArray };\n","//#region src/compat/_internal/getSymbols.ts\nfunction getSymbols(object) {\n\treturn Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n//#endregion\nexport { getSymbols };\n","//#region src/compat/_internal/getTag.ts\n/**\n* Gets the `toStringTag` of `value`.\n*\n* @private\n* @param {T} value The value to query.\n* @returns {string} Returns the `Object.prototype.toString.call` result.\n*/\nfunction getTag(value) {\n\tif (value == null) return value === void 0 ? \"[object Undefined]\" : \"[object Null]\";\n\treturn Object.prototype.toString.call(value);\n}\n//#endregion\nexport { getTag };\n","//#region src/compat/_internal/tags.ts\nconst regexpTag = \"[object RegExp]\";\nconst stringTag = \"[object String]\";\nconst numberTag = \"[object Number]\";\nconst booleanTag = \"[object Boolean]\";\nconst argumentsTag = \"[object Arguments]\";\nconst symbolTag = \"[object Symbol]\";\nconst dateTag = \"[object Date]\";\nconst mapTag = \"[object Map]\";\nconst setTag = \"[object Set]\";\nconst arrayTag = \"[object Array]\";\nconst functionTag = \"[object Function]\";\nconst arrayBufferTag = \"[object ArrayBuffer]\";\nconst objectTag = \"[object Object]\";\nconst errorTag = \"[object Error]\";\nconst dataViewTag = \"[object DataView]\";\nconst uint8ArrayTag = \"[object Uint8Array]\";\nconst uint8ClampedArrayTag = \"[object Uint8ClampedArray]\";\nconst uint16ArrayTag = \"[object Uint16Array]\";\nconst uint32ArrayTag = \"[object Uint32Array]\";\nconst bigUint64ArrayTag = \"[object BigUint64Array]\";\nconst int8ArrayTag = \"[object Int8Array]\";\nconst int16ArrayTag = \"[object Int16Array]\";\nconst int32ArrayTag = \"[object Int32Array]\";\nconst bigInt64ArrayTag = \"[object BigInt64Array]\";\nconst float32ArrayTag = \"[object Float32Array]\";\nconst float64ArrayTag = \"[object Float64Array]\";\n//#endregion\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","//#region src/_internal/globalThis.ts\nconst globalThis_ = typeof globalThis === \"object\" && globalThis || typeof window === \"object\" && window || typeof self === \"object\" && self || typeof global === \"object\" && global || (function() {\n\treturn this;\n})();\n//#endregion\nexport { globalThis_ };\n","import { globalThis_ } from \"../_internal/globalThis.mjs\";\n//#region src/predicate/isBuffer.ts\n/**\n* Checks if the given value is a Buffer instance.\n*\n* This function tests whether the provided value is an instance of Buffer.\n* It returns `true` if the value is a Buffer, and `false` otherwise.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.\n*\n* @param x - The value to check if it is a Buffer.\n* @returns Returns `true` if `x` is a Buffer, else `false`.\n*\n* @example\n* const buffer = Buffer.from(\"test\");\n* console.log(isBuffer(buffer)); // true\n*\n* const notBuffer = \"not a buffer\";\n* console.log(isBuffer(notBuffer)); // false\n*/\nfunction isBuffer(x) {\n\treturn typeof globalThis_.Buffer !== \"undefined\" && globalThis_.Buffer.isBuffer(x);\n}\n//#endregion\nexport { isBuffer };\n","import { isPrimitive } from \"../predicate/isPrimitive.mjs\";\nimport { isTypedArray } from \"../predicate/isTypedArray.mjs\";\nimport { getSymbols } from \"../compat/_internal/getSymbols.mjs\";\nimport { getTag } from \"../compat/_internal/getTag.mjs\";\nimport { argumentsTag, arrayBufferTag, arrayTag, booleanTag, dataViewTag, dateTag, float32ArrayTag, float64ArrayTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag } from \"../compat/_internal/tags.mjs\";\nimport { isBuffer } from \"../predicate/isBuffer.mjs\";\n//#region src/object/cloneDeepWith.ts\n/**\n* Deeply clones the given object.\n*\n* You can customize the deep cloning process using the `cloneValue` function.\n* The function takes the current value `value`, the property name `key`, and the entire object `obj` as arguments.\n* If the function returns a value, that value is used;\n* if it returns `undefined`, the default cloning method is used.\n*\n* @template T - The type of the object.\n* @param obj - The object to clone.\n* @param [cloneValue] - A function to customize the cloning process.\n* @returns A deep clone of the given object.\n*\n* @example\n* // Clone a primitive value\n* const num = 29;\n* const clonedNum = cloneDeepWith(num);\n* console.log(clonedNum); // 29\n* console.log(clonedNum === num); // true\n*\n* @example\n* // Clone an object with a customizer\n* const obj = { a: 1, b: 2 };\n* const clonedObj = cloneDeepWith(obj, (value) => {\n* if (typeof value === 'number') {\n* return value * 2; // Double the number\n* }\n* });\n* console.log(clonedObj); // { a: 2, b: 4 }\n* console.log(clonedObj === obj); // false\n*\n* @example\n* // Clone an array with a customizer\n* const arr = [1, 2, 3];\n* const clonedArr = cloneDeepWith(arr, (value) => {\n* if (typeof value === 'number') {\n* return value + 1; // Increment each number\n* }\n* });\n* console.log(clonedArr); // [2, 3, 4]\n* console.log(clonedArr === arr); // false\n*/\nfunction cloneDeepWith(obj, cloneValue) {\n\treturn cloneDeepWithImpl(obj, void 0, obj, /* @__PURE__ */ new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = /* @__PURE__ */ new Map(), cloneValue = void 0) {\n\tconst cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n\tif (cloned !== void 0) return cloned;\n\tif (isPrimitive(valueToClone)) return valueToClone;\n\tif (stack.has(valueToClone)) return stack.get(valueToClone);\n\tif (Array.isArray(valueToClone)) {\n\t\tconst result = new Array(valueToClone.length);\n\t\tstack.set(valueToClone, result);\n\t\tfor (let i = 0; i < valueToClone.length; i++) result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n\t\tif (Object.hasOwn(valueToClone, \"index\")) result.index = valueToClone.index;\n\t\tif (Object.hasOwn(valueToClone, \"input\")) result.input = valueToClone.input;\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Date) return new Date(valueToClone.getTime());\n\tif (valueToClone instanceof RegExp) {\n\t\tconst result = new RegExp(valueToClone.source, valueToClone.flags);\n\t\tresult.lastIndex = valueToClone.lastIndex;\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Map) {\n\t\tconst result = /* @__PURE__ */ new Map();\n\t\tstack.set(valueToClone, result);\n\t\tfor (const [key, value] of valueToClone) result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Set) {\n\t\tconst result = /* @__PURE__ */ new Set();\n\t\tstack.set(valueToClone, result);\n\t\tfor (const value of valueToClone) result.add(cloneDeepWithImpl(value, void 0, objectToClone, stack, cloneValue));\n\t\treturn result;\n\t}\n\tif (isBuffer(valueToClone)) return valueToClone.subarray();\n\tif (isTypedArray(valueToClone)) {\n\t\tconst result = new (Object.getPrototypeOf(valueToClone)).constructor(valueToClone.length);\n\t\tstack.set(valueToClone, result);\n\t\tfor (let i = 0; i < valueToClone.length; i++) result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof ArrayBuffer || typeof SharedArrayBuffer !== \"undefined\" && valueToClone instanceof SharedArrayBuffer) return valueToClone.slice(0);\n\tif (valueToClone instanceof DataView) {\n\t\tconst result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (typeof File !== \"undefined\" && valueToClone instanceof File) {\n\t\tconst result = new File([valueToClone], valueToClone.name, { type: valueToClone.type });\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (typeof Blob !== \"undefined\" && valueToClone instanceof Blob) {\n\t\tconst result = new Blob([valueToClone], { type: valueToClone.type });\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Error) {\n\t\tconst result = structuredClone(valueToClone);\n\t\tstack.set(valueToClone, result);\n\t\tresult.message = valueToClone.message;\n\t\tresult.name = valueToClone.name;\n\t\tresult.stack = valueToClone.stack;\n\t\tresult.cause = valueToClone.cause;\n\t\tresult.constructor = valueToClone.constructor;\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Boolean) {\n\t\tconst result = new Boolean(valueToClone.valueOf());\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof Number) {\n\t\tconst result = new Number(valueToClone.valueOf());\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (valueToClone instanceof String) {\n\t\tconst result = new String(valueToClone.valueOf());\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\tif (typeof valueToClone === \"object\" && isCloneableObject(valueToClone)) {\n\t\tconst result = Object.create(Object.getPrototypeOf(valueToClone));\n\t\tstack.set(valueToClone, result);\n\t\tcopyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n\t\treturn result;\n\t}\n\treturn valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n\tconst keys = [...Object.keys(source), ...getSymbols(source)];\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(target, key);\n\t\tif (descriptor == null || descriptor.writable) target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n\t}\n}\nfunction isCloneableObject(object) {\n\tswitch (getTag(object)) {\n\t\tcase argumentsTag:\n\t\tcase arrayTag:\n\t\tcase arrayBufferTag:\n\t\tcase dataViewTag:\n\t\tcase booleanTag:\n\t\tcase dateTag:\n\t\tcase float32ArrayTag:\n\t\tcase float64ArrayTag:\n\t\tcase int8ArrayTag:\n\t\tcase int16ArrayTag:\n\t\tcase int32ArrayTag:\n\t\tcase mapTag:\n\t\tcase numberTag:\n\t\tcase objectTag:\n\t\tcase regexpTag:\n\t\tcase setTag:\n\t\tcase stringTag:\n\t\tcase symbolTag:\n\t\tcase uint8ArrayTag:\n\t\tcase uint8ClampedArrayTag:\n\t\tcase uint16ArrayTag:\n\t\tcase uint32ArrayTag: return true;\n\t\tdefault: return false;\n\t}\n}\n//#endregion\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from \"./cloneDeepWith.mjs\";\n//#region src/object/cloneDeep.ts\n/**\n* Creates a deep clone of the given object.\n*\n* @template T - The type of the object.\n* @param obj - The object to clone.\n* @returns A deep clone of the given object.\n*\n* @example\n* // Clone a primitive value\n* const num = 29;\n* const clonedNum = cloneDeep(num);\n* console.log(clonedNum); // 29\n* console.log(clonedNum === num); // true\n*\n* @example\n* // Clone an array\n* const arr = [1, 2, 3];\n* const clonedArr = cloneDeep(arr);\n* console.log(clonedArr); // [1, 2, 3]\n* console.log(clonedArr === arr); // false\n*\n* @example\n* // Clone an array with nested objects\n* const arr = [1, { a: 1 }, [1, 2, 3]];\n* const clonedArr = cloneDeep(arr);\n* arr[1].a = 2;\n* console.log(arr); // [1, { a: 2 }, [1, 2, 3]]\n* console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]\n* console.log(clonedArr === arr); // false\n*\n* @example\n* // Clone an object\n* const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };\n* const clonedObj = cloneDeep(obj);\n* console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }\n* console.log(clonedObj === obj); // false\n*\n* @example\n* // Clone an object with nested objects\n* const obj = { a: 1, b: { c: 1 } };\n* const clonedObj = cloneDeep(obj);\n* obj.b.c = 2;\n* console.log(obj); // { a: 1, b: { c: 2 } }\n* console.log(clonedObj); // { a: 1, b: { c: 1 } }\n* console.log(clonedObj === obj); // false\n*/\nfunction cloneDeep(obj) {\n\treturn cloneDeepWithImpl(obj, void 0, obj, /* @__PURE__ */ new Map(), void 0);\n}\n//#endregion\nexport { cloneDeep };\n","//#region src/compat/util/eq.ts\n/**\n* Performs a `SameValueZero` comparison between two values to determine if they are equivalent.\n*\n* @param value The value to compare.\n* @param other The other value to compare.\n* @returns Returns `true` if the values are equivalent, else `false`.\n*\n* @example\n* eq(1, 1); // true\n* eq(0, -0); // true\n* eq(NaN, NaN); // true\n* eq('a', Object('a')); // false\n*/\nfunction eq(value, other) {\n\treturn value === other || Number.isNaN(value) && Number.isNaN(other);\n}\n//#endregion\nexport { eq };\n","//#region src/compat/predicate/isObject.ts\n/**\n* Checks if the given value is an object. An object is a value that is\n* not a primitive type (string, number, boolean, symbol, null, or undefined).\n*\n* This function tests whether the provided value is an object or not.\n* It returns `true` if the value is an object, and `false` otherwise.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an object value.\n*\n* @param value - The value to check if it is an object.\n* @returns `true` if the value is an object, `false` otherwise.\n*\n* @example\n* const value1 = {};\n* const value2 = [1, 2, 3];\n* const value3 = () => {};\n* const value4 = null;\n*\n* console.log(isObject(value1)); // true\n* console.log(isObject(value2)); // true\n* console.log(isObject(value3)); // true\n* console.log(isObject(value4)); // false\n*/\nfunction isObject(value) {\n\treturn value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\n//#endregion\nexport { isObject };\n","import { isPrimitive } from \"../../predicate/isPrimitive.mjs\";\nimport { getTag } from \"../_internal/getTag.mjs\";\nimport \"../_internal/tags.mjs\";\nimport { eq } from \"../util/eq.mjs\";\nimport { isObject } from \"./isObject.mjs\";\n//#region src/compat/predicate/isMatchWith.ts\n/**\n* Performs a deep comparison between a target value and a source pattern to determine if they match,\n* using a custom comparison function for fine-grained control over the matching logic.\n*\n* This function recursively traverses both values, calling the custom compare function for each\n* property/element pair. If the compare function returns a boolean, that result is used directly.\n* If it returns undefined, the default matching behavior continues recursively.\n*\n* The matching behavior varies by data type:\n* - **Objects**: Matches if all properties in the source exist in the target and match\n* - **Arrays**: Matches if all elements in the source array can be found in the target array (order-independent)\n* - **Maps**: Matches if all key-value pairs in the source Map exist and match in the target Map\n* - **Sets**: Matches if all elements in the source Set can be found in the target Set\n* - **Functions**: Matches using strict equality, or object comparison if the function has properties\n* - **Primitives**: Matches using strict equality\n*\n* Special cases:\n* - Empty arrays, Maps, and Sets always match any target\n* - An empty object matches any target at the top level, but at nested levels it only matches object targets\n* - `null` and `undefined` source values have specific matching rules\n* - Circular references are handled using an internal stack to prevent infinite recursion\n*\n* @param target - The value to be tested for matching\n* @param source - The pattern/template to match against\n* @param [compare] - Optional custom comparison function that receives:\n* - `objValue` - The value from the target at the current path\n* - `srcValue` - The value from the source at the current path\n* - `key` - The property key or array index being compared\n* - `object` - The parent object/array from the target\n* - `source` - The parent object/array from the source\n* - `stack` - Internal Map used for circular reference detection\n* Should return `true` for a match, `false` for no match, or `undefined` to continue with default behavior\n*\n* @returns `true` if the target matches the source pattern, `false` otherwise\n*\n* @example\n* // Basic matching without custom comparator\n* isMatchWith({ a: 1, b: 2 }, { a: 1 }); // true\n* isMatchWith([1, 2, 3], [1, 3]); // true\n*\n* @example\n* // Custom comparison for case-insensitive string matching\n* const caseInsensitiveCompare = (objVal, srcVal) => {\n* if (typeof objVal === 'string' && typeof srcVal === 'string') {\n* return objVal.toLowerCase() === srcVal.toLowerCase();\n* }\n* return undefined; // Use default behavior for non-strings\n* };\n*\n* isMatchWith(\n* { name: 'JOHN', age: 30 },\n* { name: 'john' },\n* caseInsensitiveCompare\n* ); // true\n*\n* @example\n* // Custom comparison for range matching\n* const rangeCompare = (objVal, srcVal, key) => {\n* if (key === 'age' && typeof srcVal === 'object' && srcVal.min !== undefined) {\n* return objVal >= srcVal.min && objVal <= srcVal.max;\n* }\n* return undefined;\n* };\n*\n* isMatchWith(\n* { name: 'John', age: 25 },\n* { age: { min: 18, max: 30 } },\n* rangeCompare\n* ); // true\n*/\nfunction isMatchWith(target, source, compare) {\n\tif (typeof compare !== \"function\") return isMatchWith(target, source, () => void 0);\n\treturn isMatchWithInternal(target, source, function doesMatch(objValue, srcValue, key, object, source, stack) {\n\t\tconst isEqual = compare(objValue, srcValue, key, object, source, stack);\n\t\tif (isEqual !== void 0) return Boolean(isEqual);\n\t\treturn isMatchWithInternal(objValue, srcValue, doesMatch, stack, false);\n\t}, /* @__PURE__ */ new Map(), true);\n}\nfunction isMatchWithInternal(target, source, compare, stack, isRoot = false) {\n\tif (source === target) return true;\n\tswitch (typeof source) {\n\t\tcase \"object\": return isObjectMatch(target, source, compare, stack, isRoot);\n\t\tcase \"function\":\n\t\t\tif (Object.keys(source).length > 0) return isMatchWithInternal(target, { ...source }, compare, stack, isRoot);\n\t\t\treturn eq(target, source);\n\t\tdefault:\n\t\t\tif (!isObject(target)) return eq(target, source);\n\t\t\tif (isRoot) {\n\t\t\t\tif (typeof source === \"string\") return source === \"\";\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn eq(target, source);\n\t}\n}\nfunction isObjectMatch(target, source, compare, stack, isRoot = false) {\n\tif (source == null) return true;\n\tif (Array.isArray(source)) return isArrayMatch(target, source, compare, stack);\n\tif (source instanceof Map) return isMapMatch(target, source, compare, stack);\n\tif (source instanceof Set) return isSetMatch(target, source, compare, stack);\n\tconst keys = Object.keys(source);\n\tif (target == null) return isRoot && keys.length === 0;\n\tif (isRoot) {\n\t\tif (isPrimitive(target)) target = Object(target);\n\t} else {\n\t\tconst tag = getTag(target);\n\t\tif (tag !== \"[object Object]\" && tag !== \"[object Arguments]\") return false;\n\t}\n\tif (keys.length === 0) return true;\n\tif (stack?.has(source)) return stack.get(source) === target;\n\tstack?.set(source, target);\n\ttry {\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key = keys[i];\n\t\t\tif (!(key in target)) return false;\n\t\t\tif (source[key] === void 0 && target[key] !== void 0) return false;\n\t\t\tif (source[key] === null && target[key] !== null) return false;\n\t\t\tif (!compare(target[key], source[key], key, target, source, stack)) return false;\n\t\t}\n\t\treturn true;\n\t} finally {\n\t\tstack?.delete(source);\n\t}\n}\nfunction isMapMatch(target, source, compare, stack) {\n\tif (source.size === 0) return true;\n\tif (!(target instanceof Map)) return false;\n\tfor (const [key, sourceValue] of source.entries()) if (compare(target.get(key), sourceValue, key, target, source, stack) === false) return false;\n\treturn true;\n}\nfunction isArrayMatch(target, source, compare, stack) {\n\tif (source.length === 0) return true;\n\tif (!Array.isArray(target)) return false;\n\tconst countedIndex = /* @__PURE__ */ new Set();\n\tfor (let i = 0; i < source.length; i++) {\n\t\tconst sourceItem = source[i];\n\t\tlet found = false;\n\t\tfor (let j = 0; j < target.length; j++) {\n\t\t\tif (countedIndex.has(j)) continue;\n\t\t\tconst targetItem = target[j];\n\t\t\tlet matches = false;\n\t\t\tif (compare(targetItem, sourceItem, i, target, source, stack)) matches = true;\n\t\t\tif (matches) {\n\t\t\t\tcountedIndex.add(j);\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!found) return false;\n\t}\n\treturn true;\n}\nfunction isSetMatch(target, source, compare, stack) {\n\tif (source.size === 0) return true;\n\tif (!(target instanceof Set)) return false;\n\treturn isArrayMatch([...target], [...source], compare, stack);\n}\n//#endregion\nexport { isMatchWith };\n","import { isMatchWith } from \"./isMatchWith.mjs\";\n//#region src/compat/predicate/isMatch.ts\n/**\n* Checks if the target matches the source by comparing their structures and values.\n* This function supports deep comparison for objects, arrays, maps, and sets.\n*\n* @param target - The target value to match against.\n* @param source - The source value to match with.\n* @returns Returns `true` if the target matches the source, otherwise `false`.\n*\n* @example\n* // Basic usage\n* isMatch({ a: 1, b: 2 }, { a: 1 }); // true\n*\n* @example\n* // Matching arrays\n* isMatch([1, 2, 3], [1, 2, 3]); // true\n*\n* @example\n* // Matching maps\n* const targetMap = new Map([['key1', 'value1'], ['key2', 'value2']]);\n* const sourceMap = new Map([['key1', 'value1']]);\n* isMatch(targetMap, sourceMap); // true\n*\n* @example\n* // Matching sets\n* const targetSet = new Set([1, 2, 3]);\n* const sourceSet = new Set([1, 2]);\n* isMatch(targetSet, sourceSet); // true\n*/\nfunction isMatch(target, source) {\n\treturn isMatchWith(target, source, () => void 0);\n}\n//#endregion\nexport { isMatch };\n","import { cloneDeep } from \"../../object/cloneDeep.mjs\";\nimport { isMatch } from \"./isMatch.mjs\";\n//#region src/compat/predicate/matches.ts\n/**\n* Creates a function that performs a deep comparison between a given target and the source object.\n*\n* @template T\n* @template V\n* @param source - The source object to create the matcher from.\n* @returns Returns a function that takes a target object and returns `true` if the target matches the source, otherwise `false`.\n*\n* @example\n* // Basic usage\n* const matcher = matches({ a: 1, b: 2 });\n* matcher({ a: 1, b: 2, c: 3 }); // true\n* matcher({ a: 1, c: 3 }); // false\n*\n* @example\n* // Matching arrays\n* const arrayMatcher = matches([1, 2, 3]);\n* arrayMatcher([1, 2, 3, 4]); // true\n* arrayMatcher([4, 5, 6]); // false\n*\n* @example\n* // Matching objects with nested structures\n* const nestedMatcher = matches({ a: { b: 2 } });\n* nestedMatcher({ a: { b: 2, c: 3 } }); // true\n* nestedMatcher({ a: { c: 3 } }); // false\n*/\nfunction matches(source) {\n\tsource = cloneDeep(source);\n\treturn (target) => {\n\t\treturn isMatch(target, source);\n\t};\n}\n//#endregion\nexport { matches };\n","import { getTag } from \"../_internal/getTag.mjs\";\nimport { argumentsTag, booleanTag, numberTag, stringTag } from \"../_internal/tags.mjs\";\nimport { cloneDeepWith as cloneDeepWith$1, copyProperties } from \"../../object/cloneDeepWith.mjs\";\n//#region src/compat/object/cloneDeepWith.ts\n/**\n* Creates a deep clone of the given object using a customizer function.\n*\n* @template T - The type of the object.\n* @param obj - The object to clone.\n* @param [cloneValue] - A function to customize the cloning process.\n* @returns A deep clone of the given object.\n*\n* @example\n* // Clone a primitive value\n* const num = 29;\n* const clonedNum = cloneDeepWith(num);\n* console.log(clonedNum); // 29\n* console.log(clonedNum === num); // true\n*\n* @example\n* // Clone an object with a customizer\n* const obj = { a: 1, b: 2 };\n* const clonedObj = cloneDeepWith(obj, (value) => {\n* if (typeof value === 'number') {\n* return value * 2; // Double the number\n* }\n* });\n* console.log(clonedObj); // { a: 2, b: 4 }\n* console.log(clonedObj === obj); // false\n*\n* @example\n* // Clone an array with a customizer\n* const arr = [1, 2, 3];\n* const clonedArr = cloneDeepWith(arr, (value) => {\n* if (typeof value === 'number') {\n* return value + 1; // Increment each number\n* }\n* });\n* console.log(clonedArr); // [2, 3, 4]\n* console.log(clonedArr === arr); // false\n*/\nfunction cloneDeepWith(obj, customizer) {\n\treturn cloneDeepWith$1(obj, (value, key, object, stack) => {\n\t\tconst cloned = customizer?.(value, key, object, stack);\n\t\tif (cloned !== void 0) return cloned;\n\t\tif (typeof obj !== \"object\") return;\n\t\tif (getTag(obj) === \"[object Object]\" && typeof obj.constructor !== \"function\") {\n\t\t\tconst result = {};\n\t\t\tstack.set(obj, result);\n\t\t\tcopyProperties(result, obj, object, stack);\n\t\t\treturn result;\n\t\t}\n\t\tswitch (Object.prototype.toString.call(obj)) {\n\t\t\tcase numberTag:\n\t\t\tcase stringTag:\n\t\t\tcase booleanTag: {\n\t\t\t\tconst result = new obj.constructor(obj?.valueOf());\n\t\t\t\tcopyProperties(result, obj);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tcase argumentsTag: {\n\t\t\t\tconst result = {};\n\t\t\t\tcopyProperties(result, obj);\n\t\t\t\tresult.length = obj.length;\n\t\t\t\tresult[Symbol.iterator] = obj[Symbol.iterator];\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tdefault: return;\n\t\t}\n\t});\n}\n//#endregion\nexport { cloneDeepWith };\n","import { cloneDeepWith } from \"./cloneDeepWith.mjs\";\n//#region src/compat/object/cloneDeep.ts\n/**\n* Creates a deep clone of the given object.\n*\n* @template T - The type of the object.\n* @param obj - The object to clone.\n* @returns A deep clone of the given object.\n*\n* @example\n* // Clone a primitive value\n* const num = 29;\n* const clonedNum = clone(num);\n* console.log(clonedNum); // 29\n* console.log(clonedNum === num); // true\n*\n* @example\n* // Clone an array\n* const arr = [1, 2, 3];\n* const clonedArr = cloneDeep(arr);\n* console.log(clonedArr); // [1, 2, 3]\n* console.log(clonedArr === arr); // false\n*\n* @example\n* // Clone an array with nested objects\n* const arr = [1, { a: 1 }, [1, 2, 3]];\n* const clonedArr = cloneDeep(arr);\n* arr[1].a = 2;\n* console.log(arr); // [1, { a: 2 }, [1, 2, 3]]\n* console.log(clonedArr); // [1, { a: 1 }, [1, 2, 3]]\n* console.log(clonedArr === arr); // false\n*\n* @example\n* // Clone an object\n* const obj = { a: 1, b: 'es-toolkit', c: [1, 2, 3] };\n* const clonedObj = cloneDeep(obj);\n* console.log(clonedObj); // { a: 1, b: 'es-toolkit', c: [1, 2, 3] }\n* console.log(clonedObj === obj); // false\n*\n* @example\n* // Clone an object with nested objects\n* const obj = { a: 1, b: { c: 1 } };\n* const clonedObj = cloneDeep(obj);\n* obj.b.c = 2;\n* console.log(obj); // { a: 1, b: { c: 2 } }\n* console.log(clonedObj); // { a: 1, b: { c: 1 } }\n* console.log(clonedObj === obj); // false\n*/\nfunction cloneDeep(obj) {\n\treturn cloneDeepWith(obj);\n}\n//#endregion\nexport { cloneDeep };\n","//#region src/compat/_internal/isIndex.ts\nconst IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n\tswitch (typeof value) {\n\t\tcase \"number\": return Number.isInteger(value) && value >= 0 && value < length;\n\t\tcase \"symbol\": return false;\n\t\tcase \"string\": return IS_UNSIGNED_INTEGER.test(value);\n\t}\n}\n//#endregion\nexport { isIndex };\n","import { getTag } from \"../_internal/getTag.mjs\";\n//#region src/compat/predicate/isArguments.ts\n/**\n* Checks if the given value is an arguments object.\n*\n* This function tests whether the provided value is an arguments object or not.\n* It returns `true` if the value is an arguments object, and `false` otherwise.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to an arguments object.\n*\n* @param value - The value to test if it is an arguments object.\n* @returns `true` if the value is an arguments, `false` otherwise.\n*\n* @example\n* const args = (function() { return arguments; })();\n* const strictArgs = (function() { 'use strict'; return arguments; })();\n* const value = [1, 2, 3];\n*\n* console.log(isArguments(args)); // true\n* console.log(isArguments(strictArgs)); // true\n* console.log(isArguments(value)); // false\n*/\nfunction isArguments(value) {\n\treturn value !== null && typeof value === \"object\" && getTag(value) === \"[object Arguments]\";\n}\n//#endregion\nexport { isArguments };\n","import { isDeepKey } from \"../_internal/isDeepKey.mjs\";\nimport { toPath } from \"../util/toPath.mjs\";\nimport { isIndex } from \"../_internal/isIndex.mjs\";\nimport { isArguments } from \"../predicate/isArguments.mjs\";\n//#region src/compat/object/has.ts\n/**\n* Checks if a given path exists within an object.\n*\n* You can provide the path as a single property key, an array of property keys,\n* or a string representing a deep path.\n*\n* If the path is an index and the object is an array or an arguments object, the function will verify\n* if the index is valid and within the bounds of the array or arguments object, even if the array or\n* arguments object is sparse (i.e., not all indexes are defined).\n*\n* @param object - The object to query.\n* @param path - The path to check. This can be a single property key,\n* an array of property keys, or a string representing a deep path.\n* @returns Returns `true` if the path exists in the object, `false` otherwise.\n*\n* @example\n*\n* const obj = { a: { b: { c: 3 } } };\n*\n* has(obj, 'a'); // true\n* has(obj, ['a', 'b']); // true\n* has(obj, ['a', 'b', 'c']); // true\n* has(obj, 'a.b.c'); // true\n* has(obj, 'a.b.d'); // false\n* has(obj, ['a', 'b', 'c', 'd']); // false\n* has([], 0); // false\n* has([1, 2, 3], 2); // true\n* has([1, 2, 3], 5); // false\n*/\nfunction has(object, path) {\n\tlet resolvedPath;\n\tif (Array.isArray(path)) resolvedPath = path;\n\telse if (typeof path === \"string\" && isDeepKey(path) && !(path in Object(object))) resolvedPath = toPath(path);\n\telse resolvedPath = [path];\n\tif (resolvedPath.length === 0) return false;\n\tlet current = object;\n\tfor (let i = 0; i < resolvedPath.length; i++) {\n\t\tconst key = resolvedPath[i];\n\t\tif (current == null || !Object.hasOwn(current, key)) {\n\t\t\tif (!((Array.isArray(current) || isArguments(current)) && isIndex(key) && key < current.length)) return false;\n\t\t}\n\t\tcurrent = current[key];\n\t}\n\treturn true;\n}\n//#endregion\nexport { has };\n","import { toKey } from \"../_internal/toKey.mjs\";\nimport { get } from \"../object/get.mjs\";\nimport { isMatch } from \"./isMatch.mjs\";\nimport { cloneDeep } from \"../object/cloneDeep.mjs\";\nimport { has } from \"../object/has.mjs\";\n//#region src/compat/predicate/matchesProperty.ts\n/**\n* Creates a function that checks if a given target object matches a specific property value.\n*\n* The returned function takes a target object and determines if the property at the\n* specified path within the target object is equal to the given value.\n*\n* @param property - The property path to check within the target object.\n* This can be a single property key or an array of property keys.\n* @param source - The value to compare against the property value in the target object.\n*\n* @returns A function that takes a target object and returns\n* `true` if the property value at the given path in the target object matches the provided value,\n* otherwise returns `false`.\n*\n* @example\n* // Using a single property key\n* const checkName = matchesProperty('name', 'Alice');\n* console.log(checkName({ name: 'Alice' })); // true\n* console.log(checkName({ name: 'Bob' })); // false\n*\n* // Using an array of property keys\n* const checkNested = matchesProperty(['address', 'city'], 'New York');\n* console.log(checkNested({ address: { city: 'New York' } })); // true\n* console.log(checkNested({ address: { city: 'Los Angeles' } })); // false\n*/\nfunction matchesProperty(property, source) {\n\tswitch (typeof property) {\n\t\tcase \"object\":\n\t\t\tif (Object.is(property?.valueOf(), -0)) property = \"-0\";\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tproperty = toKey(property);\n\t\t\tbreak;\n\t}\n\tsource = cloneDeep(source);\n\treturn function(target) {\n\t\tconst result = get(target, property);\n\t\tif (result === void 0) return has(target, property);\n\t\tif (source === void 0) return result === void 0;\n\t\treturn isMatch(result, source);\n\t};\n}\n//#endregion\nexport { matchesProperty };\n","import { identity } from \"../../function/identity.mjs\";\nimport { property } from \"../object/property.mjs\";\nimport { matches } from \"../predicate/matches.mjs\";\nimport { matchesProperty } from \"../predicate/matchesProperty.mjs\";\n//#region src/compat/util/iteratee.ts\n/**\n* Creates a function that returns a value from an element in a collection.\n*\n* You can call `iteratee` with the following types of arguments:\n*\n* - **Function**: Returns the function as-is, which will be called with the element from the collection.\n* - **Property name**: Returns the value of the specified property from the element.\n* - **Property-value pair**: Returns a boolean indicating whether the element's property matches the given value.\n* - **Partial object**: Returns a boolean indicating whether the element matches the properties of the partial object.\n*\n* If you don't provide any arguments or pass `null`, this function will return a function that simply returns its input unchanged.\n*\n* @param value - The value to convert to an iteratee.\n* @returns Returns the new iteratee function.\n* @example\n* const func = iteratee();\n* [{ a: 1 }, { a: 2 }, { a: 3 }].map(func) // => [{ a: 1 }, { a: 2 }, { a: 3 }]\n*\n* const func = iteratee((object) => object.a);\n* [{ a: 1 }, { a: 2 }, { a: 3 }].map(func) // => [1, 2, 3]\n*\n* const func = iteratee('a');\n* [{ a: 1 }, { a: 2 }, { a: 3 }].map(func) // => [1, 2, 3]\n*\n* const func = iteratee({ a: 1 });\n* [{ a: 1 }, { a: 2 }, { a: 3 }].find(func) // => { a: 1 }\n*\n* const func = iteratee(['a', 1]);\n* [{ a: 1 }, { a: 2 }, { a: 3 }].find(func) // => { a: 1 }\n*/\nfunction iteratee(value) {\n\tif (value == null) return identity;\n\tswitch (typeof value) {\n\t\tcase \"function\": return value;\n\t\tcase \"object\":\n\t\t\tif (Array.isArray(value) && value.length === 2) return matchesProperty(value[0], value[1]);\n\t\t\treturn matches(value);\n\t\tdefault: return property(value);\n\t}\n}\n//#endregion\nexport { iteratee };\n","//#region src/compat/_internal/normalizeZero.ts\n/**\n* Normalizes `-0` to `0` to match Lodash, which normalizes `-0` to `+0` in the\n* results of functions like `uniq`, `union`, and `difference`.\n*\n* @param value - The value to normalize.\n* @returns The value with `-0` normalized to `0`.\n*/\nfunction normalizeZero(value) {\n\treturn value === 0 ? 0 : value;\n}\n//#endregion\nexport { normalizeZero };\n","import { uniqBy as uniqBy$1 } from \"../../array/uniqBy.mjs\";\nimport { ary } from \"../../function/ary.mjs\";\nimport { identity } from \"../../function/identity.mjs\";\nimport { isArrayLike } from \"../predicate/isArrayLike.mjs\";\nimport { iteratee } from \"../util/iteratee.mjs\";\nimport { normalizeZero } from \"../_internal/normalizeZero.mjs\";\n//#region src/compat/array/uniqBy.ts\nfunction uniqBy(array, iteratee$1 = identity) {\n\tif (!isArrayLike(array)) return [];\n\treturn uniqBy$1(Array.from(array), ary(iteratee(iteratee$1), 1)).map(normalizeZero);\n}\n//#endregion\nexport { uniqBy };\n","import uniqBy from 'es-toolkit/compat/uniqBy';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (typeof option === 'function') {\n return uniqBy(payload, option);\n }\n return payload;\n}","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { createContext } from 'react';\n\n/*\n * This is a copy of the React-Redux context type, but with our own store type.\n * We could import directly from react-redux like this:\n * import { ReactReduxContextValue } from 'react-redux/src/components/Context';\n * but that makes typescript angry with some errors I am not sure how to resolve\n * so copy it is.\n */\n\n/**\n * We need to use our own independent Redux context because we need to avoid interfering with other people's Redux stores\n * in case they decide to install and use Recharts in another Redux app which is likely to happen.\n *\n * https://react-redux.js.org/using-react-redux/accessing-store#providing-custom-context\n */\nexport var RechartsReduxContext = /*#__PURE__*/createContext(null);","import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { useContext, useMemo } from 'react';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nvar noopDispatch = a => a;\nexport var useAppDispatch = () => {\n var context = useContext(RechartsReduxContext);\n if (context) {\n return context.store.dispatch;\n }\n return noopDispatch;\n};\nvar noop = () => {};\nvar addNestedSubNoop = () => noop;\nvar refEquality = (a, b) => a === b;\n\n/**\n * This is a recharts variant of `useSelector` from 'react-redux' package.\n *\n * The difference is that react-redux version will throw an Error when used outside of Redux context.\n *\n * This, recharts version, will return undefined instead.\n *\n * This is because we want to allow using our components outside the Chart wrapper,\n * and have people provide all props explicitly.\n *\n * If however they use the component inside a chart wrapper then those props become optional,\n * and we read them from Redux state instead.\n *\n * @param selector for pulling things out of Redux store; will not be called if the store is not accessible\n * @return whatever the selector returned; or undefined when outside of Redux store\n */\nexport function useAppSelector(selector) {\n var context = useContext(RechartsReduxContext);\n var outOfContextSelector = useMemo(() => {\n if (!context) {\n return noop;\n }\n return state => {\n if (state == null) {\n return undefined;\n }\n return selector(state);\n };\n }, [context, selector]);\n return useSyncExternalStoreWithSelector(context ? context.subscription.addNestedSub : addNestedSubNoop, context ? context.store.getState : noop, context ? context.store.getState : noop, outOfContextSelector, refEquality);\n}","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue) return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar nextId = 0;\nvar proto = /* @__PURE__ */ Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar getWeakRef = () => typeof WeakRef === \"undefined\" ? StrongRef : WeakRef;\nvar Ref = /* @__PURE__ */ getWeakRef();\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction maybeDeref(r) {\n if (r instanceof Ref) {\n return r.deref();\n }\n return r;\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const lastResultValue = maybeDeref(lastResult);\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? /* @__PURE__ */ new Ref(result) : result;\n }\n }\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = []\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (process.env.NODE_ENV !== \"production\") {\n const { devModeChecks = {} } = combinedOptions;\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun) firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = /* @__PURE__ */ Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\nexport {\n createSelector,\n createSelectorCreator,\n createStructuredSelector,\n lruMemoize,\n referenceEqualityCheck,\n setGlobalDevModeChecks,\n autotrackMemoize as unstable_autotrackMemoize,\n weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","//#region src/array/flatten.ts\n/**\n* Flattens an array up to the specified depth.\n*\n* @template T - The type of elements within the array.\n* @template D - The depth to which the array should be flattened.\n* @param arr - The array to flatten.\n* @param depth - The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.\n* @returns A new array that has been flattened.\n*\n* @example\n* const arr = flatten([1, [2, 3], [4, [5, 6]]], 1);\n* // Returns: [1, 2, 3, 4, [5, 6]]\n*\n* const arr = flatten([1, [2, 3], [4, [5, 6]]], 2);\n* // Returns: [1, 2, 3, 4, 5, 6]\n*/\nfunction flatten(arr, depth = 1) {\n\tconst result = [];\n\tconst flooredDepth = Math.floor(depth);\n\tconst recursive = (arr, currentDepth) => {\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tconst item = arr[i];\n\t\t\tif (Array.isArray(item) && currentDepth < flooredDepth) recursive(item, currentDepth + 1);\n\t\t\telse result.push(item);\n\t\t}\n\t};\n\trecursive(arr, 0);\n\treturn result;\n}\n//#endregion\nexport { flatten };\n","import { eq } from \"../util/eq.mjs\";\nimport { isArrayLike } from \"../predicate/isArrayLike.mjs\";\nimport { isObject } from \"../predicate/isObject.mjs\";\nimport { isIndex } from \"./isIndex.mjs\";\n//#region src/compat/_internal/isIterateeCall.ts\nfunction isIterateeCall(value, index, object) {\n\tif (!isObject(object)) return false;\n\tif (typeof index === \"number\" && isArrayLike(object) && isIndex(index) && index < object.length || typeof index === \"string\" && index in object) return eq(object[index], value);\n\treturn false;\n}\n//#endregion\nexport { isIterateeCall };\n","//#region src/compat/_internal/compareValues.ts\nfunction getPriority(a) {\n\tif (typeof a === \"symbol\") return 1;\n\tif (a === null) return 2;\n\tif (a === void 0) return 3;\n\tif (a !== a) return 4;\n\treturn 0;\n}\nconst compareValues = (a, b, order) => {\n\tif (a !== b) {\n\t\tconst aPriority = getPriority(a);\n\t\tconst bPriority = getPriority(b);\n\t\tif (aPriority === bPriority && aPriority === 0) {\n\t\t\tif (a < b) return order === \"desc\" ? 1 : -1;\n\t\t\tif (a > b) return order === \"desc\" ? -1 : 1;\n\t\t}\n\t\treturn order === \"desc\" ? bPriority - aPriority : aPriority - bPriority;\n\t}\n\treturn 0;\n};\n//#endregion\nexport { compareValues };\n","//#region src/compat/predicate/isSymbol.ts\n/**\n* Check whether a value is a symbol.\n*\n* This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `symbol`.\n*\n* @param value The value to check.\n* @returns Returns `true` if `value` is a symbol, else `false`.\n* @example\n* isSymbol(Symbol.iterator);\n* // => true\n*\n* isSymbol('abc');\n* // => false\n*/\nfunction isSymbol(value) {\n\treturn typeof value === \"symbol\" || value instanceof Symbol;\n}\n//#endregion\nexport { isSymbol };\n","import { isSymbol } from \"../predicate/isSymbol.mjs\";\n//#region src/compat/_internal/isKey.ts\n/** Matches any deep property path. (e.g. `a.b[0].c`)*/\nconst regexIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\n/** Matches any word character (alphanumeric & underscore).*/\nconst regexIsPlainProp = /^\\w*$/;\n/**\n* Checks if `value` is a property name and not a property path. (It's ok that the `value` is not in the keys of the `object`)\n* @param {unknown} value The value to check.\n* @param {unknown} object The object to query.\n* @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n*\n* @example\n* isKey('a', { a: 1 });\n* // => true\n*\n* isKey('a.b', { a: { b: 2 } });\n* // => false\n*/\nfunction isKey(value, object) {\n\tif (Array.isArray(value)) return false;\n\tif (typeof value === \"number\" || typeof value === \"boolean\" || value == null || isSymbol(value)) return true;\n\treturn typeof value === \"string\" && (regexIsPlainProp.test(value) || !regexIsDeepProp.test(value)) || object != null && Object.hasOwn(object, value);\n}\n//#endregion\nexport { isKey };\n","import { isArrayLike } from \"../predicate/isArrayLike.mjs\";\nimport { toPath } from \"../util/toPath.mjs\";\nimport { compareValues } from \"../_internal/compareValues.mjs\";\nimport { isKey } from \"../_internal/isKey.mjs\";\n//#region src/compat/array/orderBy.ts\n/**\n* Sorts an array of objects based on multiple properties and their corresponding order directions.\n*\n* This function takes an array of objects, an array of criteria to sort by, and an array of order directions.\n* It returns the sorted array, ordering by each key according to its corresponding direction ('asc' for ascending or 'desc' for descending).\n* If values for a key are equal, it moves to the next key to determine the order.\n*\n* @template T - The type of elements in the array.\n* @param collection - The array of objects to be sorted.\n* @param criteria - An array of criteria (property names or property paths or custom key functions) to sort by.\n* @param orders - An array of order directions ('asc' for ascending or 'desc' for descending).\n* @param [guard] Enables use as an iteratee for methods like `_.reduce`.\n* @returns The sorted array.\n*\n* @example\n* // Sort an array of objects by 'user' in ascending order and 'age' in descending order.\n* const users = [\n* { user: 'fred', age: 48 },\n* { user: 'barney', age: 34 },\n* { user: 'fred', age: 40 },\n* { user: 'barney', age: 36 },\n* ];\n* const result = orderBy(users, ['user', (item) => item.age], ['asc', 'desc']);\n* // result will be:\n* // [\n* // { user: 'barney', age: 36 },\n* // { user: 'barney', age: 34 },\n* // { user: 'fred', age: 48 },\n* // { user: 'fred', age: 40 },\n* // ]\n*/\nfunction orderBy(collection, criteria, orders, guard) {\n\tif (collection == null) return [];\n\torders = guard ? void 0 : orders;\n\tif (!Array.isArray(collection)) collection = isArrayLike(collection) ? Array.from(collection) : Object.values(collection);\n\tif (!Array.isArray(criteria)) criteria = criteria == null ? [null] : [criteria];\n\tif (criteria.length === 0) criteria = [null];\n\tif (!Array.isArray(orders)) orders = orders == null ? [] : [orders];\n\torders = orders.map((order) => String(order));\n\tconst getValueByNestedPath = (object, path) => {\n\t\tlet target = object;\n\t\tlet index = 0;\n\t\tfor (; index < path.length && target != null; ++index) target = target[path[index]];\n\t\treturn index > 0 && index === path.length ? target : void 0;\n\t};\n\tconst getValueByCriterion = (criterion, object) => {\n\t\tif (criterion == null) return object;\n\t\tif (object == null) return;\n\t\tif (typeof criterion === \"object\" && \"key\" in criterion) {\n\t\t\tif (Object.hasOwn(object, criterion.key)) return object[criterion.key];\n\t\t\treturn getValueByNestedPath(object, criterion.path);\n\t\t}\n\t\tif (typeof criterion === \"function\") return criterion(object);\n\t\tif (Array.isArray(criterion)) return getValueByNestedPath(object, criterion);\n\t\treturn object[criterion];\n\t};\n\tconst preparedCriteria = criteria.map((criterion) => {\n\t\tif (Array.isArray(criterion) && criterion.length === 1) criterion = criterion[0];\n\t\tif (criterion == null || typeof criterion === \"function\" || Array.isArray(criterion) || isKey(criterion)) return criterion;\n\t\treturn {\n\t\t\tkey: criterion,\n\t\t\tpath: toPath(criterion)\n\t\t};\n\t});\n\treturn collection.map((item) => ({\n\t\toriginal: item,\n\t\tcriteria: preparedCriteria.map((criterion) => getValueByCriterion(criterion, item))\n\t})).slice().sort((a, b) => {\n\t\tfor (let i = 0; i < preparedCriteria.length; i++) {\n\t\t\tconst comparedResult = compareValues(a.criteria[i], b.criteria[i], orders[i]);\n\t\t\tif (comparedResult !== 0) return comparedResult;\n\t\t}\n\t\treturn 0;\n\t}).map((item) => item.original);\n}\n//#endregion\nexport { orderBy };\n","import { flatten } from \"../../array/flatten.mjs\";\nimport { isIterateeCall } from \"../_internal/isIterateeCall.mjs\";\nimport { orderBy } from \"./orderBy.mjs\";\n//#region src/compat/array/sortBy.ts\nfunction sortBy(collection, ...criteria) {\n\tconst length = criteria.length;\n\tif (length > 1 && isIterateeCall(collection, criteria[0], criteria[1])) criteria = [];\n\telse if (length > 2 && isIterateeCall(criteria[0], criteria[1], criteria[2])) criteria = [criteria[0]];\n\treturn orderBy(collection, flatten(criteria), [\"asc\"]);\n}\n//#endregion\nexport { sortBy };\n","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nexport var selectLegendSettings = state => state.legend.settings;\nexport var selectLegendSize = state => state.legend.size;\nvar selectAllLegendPayload2DArray = state => state.legend.payload;\nexport var selectLegendPayload = createSelector([selectAllLegendPayload2DArray, selectLegendSettings], (payloads, _ref) => {\n var itemSorter = _ref.itemSorter;\n var flat = payloads.flat(1);\n return itemSorter ? sortBy(flat, itemSorter) : flat;\n});","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { useCallback, useEffect, useRef, useState } from 'react';\nvar EPS = 1;\n\n/**\n * Stores the dimensions and position of a DOM element as returned by `getBoundingClientRect()`.\n *\n * Values are viewport-relative and may be fractional (subpixel precision).\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect}\n */\n\n/**\n * Callback ref setter returned by {@link useElementOffset}.\n *\n * Pass this to a DOM element's `ref` prop to start observing its layout.\n *\n * @param node - the DOM element to observe, or `null` when the element unmounts\n */\n\n/**\n * Checks whether two ElementOffset values differ by more than `EPS` (1px) in any dimension.\n *\n * @param a - the first ElementOffset to compare\n * @param b - the second ElementOffset to compare\n * @returns true if any dimension differs by more than 1px\n */\nfunction hasSignificantChange(a, b) {\n return Math.abs(a.height - b.height) > EPS || Math.abs(a.left - b.left) > EPS || Math.abs(a.top - b.top) > EPS || Math.abs(a.width - b.width) > EPS;\n}\n\n/**\n * Reads the current bounding box of a DOM element using `getBoundingClientRect()`.\n *\n * @param node - the DOM element to measure\n * @returns an ElementOffset with the element's current dimensions and viewport-relative position\n */\nfunction readElementOffset(node) {\n var rect = node.getBoundingClientRect();\n return {\n height: rect.height,\n left: rect.left,\n top: rect.top,\n width: rect.width\n };\n}\n\n/**\n * Use this to listen to element layout changes.\n *\n * Very useful for reading actual sizes of DOM elements relative to the viewport.\n *\n * Uses ResizeObserver to automatically detect size changes of the observed element.\n *\n * @param extraDependencies use this to trigger new DOM dimensions read when any of these change. Good for things like payload and label, that will re-render something down in the children array, but you want to read the layout box of a parent.\n * @returns [lastElementOffset, updateElementOffset] most recent value, and setter. Pass the setter to a DOM element ref like this: `<div ref={updateElementOffset}>`\n */\nexport function useElementOffset() {\n var extraDependencies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var _useState = useState({\n height: 0,\n left: 0,\n top: 0,\n width: 0\n }),\n _useState2 = _slicedToArray(_useState, 2),\n lastBoundingBox = _useState2[0],\n setLastBoundingBox = _useState2[1];\n var observerRef = useRef(null);\n var lastBoundingBoxRef = useRef(lastBoundingBox);\n lastBoundingBoxRef.current = lastBoundingBox;\n var updateBoundingBox = useCallback(node => {\n // Disconnect any previously active ResizeObserver\n if (observerRef.current != null) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n if (node != null) {\n // Measure immediately on ref attach\n var box = readElementOffset(node);\n if (hasSignificantChange(box, lastBoundingBoxRef.current)) {\n setLastBoundingBox(box);\n }\n\n // Set up ResizeObserver for future size changes\n if (typeof ResizeObserver !== 'undefined') {\n var observer = new ResizeObserver(() => {\n var newBox = readElementOffset(node);\n if (hasSignificantChange(newBox, lastBoundingBoxRef.current)) {\n setLastBoundingBox(newBox);\n }\n });\n observer.observe(node);\n observerRef.current = observer;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...extraDependencies]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n var _observerRef$current;\n (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 || _observerRef$current.disconnect();\n };\n }, []);\n return [lastBoundingBox, updateBoundingBox];\n}","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = isFunction(e) ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar O = Object;\nvar getPrototypeOf = O.getPrototypeOf;\nvar CONSTRUCTOR = \"constructor\";\nvar PROTOTYPE = \"prototype\";\nvar CONFIGURABLE = \"configurable\";\nvar ENUMERABLE = \"enumerable\";\nvar WRITABLE = \"writable\";\nvar VALUE = \"value\";\nvar isDraft = (value) => !!value && !!value[DRAFT_STATE];\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();\nvar cachedCtorStrings = /* @__PURE__ */ new WeakMap();\nfunction isPlainObject(value) {\n if (!value || !isObjectish(value))\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null || proto === O[PROTOTYPE])\n return true;\n const Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR];\n if (Ctor === Object)\n return true;\n if (!isFunction(Ctor))\n return false;\n let ctorString = cachedCtorStrings.get(Ctor);\n if (ctorString === void 0) {\n ctorString = Function.toString.call(Ctor);\n cachedCtorStrings.set(Ctor, ctorString);\n }\n return ctorString === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter, strict = true) {\n if (getArchtype(obj) === 0 /* Object */) {\n const keys = strict ? Reflect.ownKeys(obj) : O.keys(obj);\n keys.forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nvar has = (thing, prop, type = getArchtype(thing)) => type === 2 /* Map */ ? thing.has(prop) : O[PROTOTYPE].hasOwnProperty.call(thing, prop);\nvar get = (thing, prop, type = getArchtype(thing)) => (\n // @ts-ignore\n type === 2 /* Map */ ? thing.get(prop) : thing[prop]\n);\nvar set = (thing, propOrOldValue, value, type = getArchtype(thing)) => {\n if (type === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (type === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n};\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nvar isArray = Array.isArray;\nvar isMap = (target) => target instanceof Map;\nvar isSet = (target) => target instanceof Set;\nvar isObjectish = (target) => typeof target === \"object\";\nvar isFunction = (target) => typeof target === \"function\";\nvar isBoolean = (target) => typeof target === \"boolean\";\nfunction isArrayIndex(value) {\n const n = +value;\n return Number.isInteger(n) && String(n) === value;\n}\nvar getProxyDraft = (value) => {\n if (!isObjectish(value))\n return null;\n return value?.[DRAFT_STATE];\n};\nvar latest = (state) => state.copy_ || state.base_;\nvar getValue = (value) => {\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? getFinalValue(proxyDraft) : value;\n};\nvar getFinalValue = (state) => state.modified_ ? state.copy_ : state.base_;\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (isArray(base))\n return Array[PROTOTYPE].slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = O.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc[WRITABLE] === false) {\n desc[WRITABLE] = true;\n desc[CONFIGURABLE] = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n [CONFIGURABLE]: true,\n [WRITABLE]: true,\n // could live with !!desc.set as well here...\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: base[key]\n };\n }\n return O.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = O.create(proto);\n return O.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n O.defineProperties(obj, {\n set: dontMutateMethodOverride,\n add: dontMutateMethodOverride,\n clear: dontMutateMethodOverride,\n delete: dontMutateMethodOverride\n });\n }\n O.freeze(obj);\n if (deep)\n each(\n obj,\n (_key, value) => {\n freeze(value, true);\n },\n false\n );\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nvar dontMutateMethodOverride = {\n [VALUE]: dontMutateFrozenCollections\n};\nfunction isFrozen(obj) {\n if (obj === null || !isObjectish(obj))\n return true;\n return O.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar PluginMapSet = \"MapSet\";\nvar PluginPatches = \"Patches\";\nvar PluginArrayMethods = \"ArrayMethods\";\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nvar isPluginLoaded = (pluginKey) => !!plugins[pluginKey];\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nvar getCurrentScope = () => currentScope;\nvar createScope = (parent_, immer_) => ({\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0,\n handledSet_: /* @__PURE__ */ new Set(),\n processedForPatches_: /* @__PURE__ */ new Set(),\n mapSetPlugin_: isPluginLoaded(PluginMapSet) ? getPlugin(PluginMapSet) : void 0,\n arrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods) ? getPlugin(PluginArrayMethods) : void 0\n});\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n scope.patchPlugin_ = getPlugin(PluginPatches);\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nvar enterScope = (immer2) => currentScope = createScope(currentScope, immer2);\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n }\n const { patchPlugin_ } = scope;\n if (patchPlugin_) {\n patchPlugin_.generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope\n );\n }\n } else {\n result = finalize(scope, baseDraft);\n }\n maybeFreeze(scope, result, true);\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n const finalValue = handleValue(value, rootScope.handledSet_, rootScope);\n return finalValue;\n }\n if (!isSameScope(state, rootScope)) {\n return value;\n }\n if (!state.modified_) {\n return state.base_;\n }\n if (!state.finalized_) {\n const { callbacks_ } = state;\n if (callbacks_) {\n while (callbacks_.length > 0) {\n const callback = callbacks_.pop();\n callback(rootScope);\n }\n }\n generatePatchesAndFinalize(state, rootScope);\n }\n return state.copy_;\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\nfunction markStateFinalized(state) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n}\nvar isSameScope = (state, rootScope) => state.scope_ === rootScope;\nvar EMPTY_LOCATIONS_RESULT = [];\nfunction updateDraftInParent(parent, draftValue, finalizedValue, originalKey) {\n const parentCopy = latest(parent);\n const parentType = parent.type_;\n if (originalKey !== void 0) {\n const currentValue = get(parentCopy, originalKey, parentType);\n if (currentValue === draftValue) {\n set(parentCopy, originalKey, finalizedValue, parentType);\n return;\n }\n }\n if (!parent.draftLocations_) {\n const draftLocations = parent.draftLocations_ = /* @__PURE__ */ new Map();\n each(parentCopy, (key, value) => {\n if (isDraft(value)) {\n const keys = draftLocations.get(value) || [];\n keys.push(key);\n draftLocations.set(value, keys);\n }\n });\n }\n const locations = parent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT;\n for (const location of locations) {\n set(parentCopy, location, finalizedValue, parentType);\n }\n}\nfunction registerChildFinalizationCallback(parent, child, key) {\n parent.callbacks_.push(function childCleanup(rootScope) {\n const state = child;\n if (!state || !isSameScope(state, rootScope)) {\n return;\n }\n rootScope.mapSetPlugin_?.fixSetContents(state);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key);\n generatePatchesAndFinalize(state, rootScope);\n });\n}\nfunction generatePatchesAndFinalize(state, rootScope) {\n const shouldFinalize = state.modified_ && !state.finalized_ && (state.type_ === 3 /* Set */ || state.type_ === 1 /* Array */ && state.allIndicesReassigned_ || (state.assigned_?.size ?? 0) > 0);\n if (shouldFinalize) {\n const { patchPlugin_ } = rootScope;\n if (patchPlugin_) {\n const basePath = patchPlugin_.getPath(state);\n if (basePath) {\n patchPlugin_.generatePatches_(state, basePath, rootScope);\n }\n }\n markStateFinalized(state);\n }\n}\nfunction handleCrossReference(target, key, value) {\n const { scope_ } = target;\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, scope_)) {\n state.callbacks_.push(function crossReferenceCleanup() {\n prepareCopy(target);\n const finalizedValue = getFinalValue(state);\n updateDraftInParent(target, value, finalizedValue, key);\n });\n }\n } else if (isDraftable(value)) {\n target.callbacks_.push(function nestedDraftCleanup() {\n const targetCopy = latest(target);\n if (target.type_ === 3 /* Set */) {\n if (targetCopy.has(value)) {\n handleValue(value, scope_.handledSet_, scope_);\n }\n } else {\n if (get(targetCopy, key, target.type_) === value) {\n if (scope_.drafts_.length > 1 && (target.assigned_.get(key) ?? false) === true && target.copy_) {\n handleValue(\n get(target.copy_, key, target.type_),\n scope_.handledSet_,\n scope_\n );\n }\n }\n }\n });\n }\n}\nfunction handleValue(target, handledSet, rootScope) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return target;\n }\n if (isDraft(target) || handledSet.has(target) || !isDraftable(target) || isFrozen(target)) {\n return target;\n }\n handledSet.add(target);\n each(target, (key, value) => {\n if (isDraft(value)) {\n const state = value[DRAFT_STATE];\n if (isSameScope(state, rootScope)) {\n const updatedValue = getFinalValue(state);\n set(target, key, updatedValue, target.type_);\n markStateFinalized(state);\n }\n } else if (isDraftable(value)) {\n handleValue(value, handledSet, rootScope);\n }\n });\n return target;\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const baseIsArray = isArray(base);\n const state = {\n type_: baseIsArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n // actually instantiated in `prepareCopy()`\n assigned_: void 0,\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false,\n // `callbacks` actually gets assigned in `createProxy`\n callbacks_: void 0\n };\n let target = state;\n let traps = objectTraps;\n if (baseIsArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return [proxy, state];\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n let arrayPlugin = state.scope_.arrayMethodsPlugin_;\n const isArrayWithStringProp = state.type_ === 1 /* Array */ && typeof prop === \"string\";\n if (isArrayWithStringProp) {\n if (arrayPlugin?.isArrayOperationMethod(prop)) {\n return arrayPlugin.createMethodInterceptor(state, prop);\n }\n }\n const source = latest(state);\n if (!has(source, prop, state.type_)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (isArrayWithStringProp && state.operationMethod && arrayPlugin?.isMutatingArrayMethod(\n state.operationMethod\n ) && isArrayIndex(prop)) {\n return value;\n }\n if (value === peek(state.base_, prop) || isRelocatedBaseRef(state, prop, value)) {\n prepareCopy(state);\n const childKey = state.type_ === 1 /* Array */ ? +prop : prop;\n const childDraft = createProxy(state.scope_, value, state, childKey);\n return state.copy_[childKey] = childDraft;\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_.set(prop, false);\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || has(state.copy_, prop, state.type_)) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_.set(prop, true);\n handleCrossReference(state, prop, value);\n return true;\n },\n deleteProperty(state, prop) {\n prepareCopy(state);\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_.set(prop, false);\n markChanged(state);\n } else {\n state.assigned_.delete(prop);\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n [WRITABLE]: true,\n [CONFIGURABLE]: state.type_ !== 1 /* Array */ || prop !== \"length\",\n [ENUMERABLE]: desc[ENUMERABLE],\n [VALUE]: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\nfor (let key in objectTraps) {\n let fn = objectTraps[key];\n arrayTraps[key] = function() {\n const args = arguments;\n args[0] = args[0][0];\n return fn.apply(this, args);\n };\n}\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction isRelocatedBaseRef(state, prop, value) {\n if (state.type_ !== 1 /* Array */ || !state.allIndicesReassigned_ || state.assigned_?.get(prop) || !isDraftable(value) || value[DRAFT_STATE]) {\n return false;\n }\n return state.baseRefs_.has(value);\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? VALUE in desc ? desc[VALUE] : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n this.useStrictIteration_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (isFunction(base) && !isFunction(recipe)) {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (!isFunction(recipe))\n die(6);\n if (patchListener !== void 0 && !isFunction(patchListener))\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || !isObjectish(base)) {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(PluginPatches).generateReplacementPatches_(base, result, {\n patches_: p,\n inversePatches_: ip\n });\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (isFunction(base)) {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (isBoolean(config?.autoFreeze))\n this.setAutoFreeze(config.autoFreeze);\n if (isBoolean(config?.useStrictShallowCopy))\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n if (isBoolean(config?.useStrictIteration))\n this.setUseStrictIteration(config.useStrictIteration);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(scope, base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n /**\n * Pass false to use faster iteration that skips non-enumerable properties\n * but still handles symbols for compatibility.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\n setUseStrictIteration(value) {\n this.useStrictIteration_ = value;\n }\n shouldUseStrictIteration() {\n return this.useStrictIteration_;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(PluginPatches).applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(rootScope, value, parent, key) {\n const [draft, state] = isMap(value) ? getPlugin(PluginMapSet).proxyMap_(value, parent) : isSet(value) ? getPlugin(PluginMapSet).proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent?.scope_ ?? getCurrentScope();\n scope.drafts_.push(draft);\n state.callbacks_ = parent?.callbacks_ ?? [];\n state.key_ = key;\n if (parent && key !== void 0) {\n registerChildFinalizationCallback(parent, state, key);\n } else {\n state.callbacks_.push(function rootDraftCleanup(rootScope2) {\n rootScope2.mapSetPlugin_?.fixSetContents(state);\n const { patchPlugin_ } = rootScope2;\n if (state.modified_ && patchPlugin_) {\n patchPlugin_.generatePatches_(state, [], rootScope2);\n }\n });\n }\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n let strict = true;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n strict = state.scope_.immer_.shouldUseStrictIteration();\n } else {\n copy = shallowCopy(value, true);\n }\n each(\n copy,\n (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n },\n strict\n );\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n function getPath(state, path = []) {\n if (state.key_ !== void 0) {\n const parentCopy = state.parent_.copy_ ?? state.parent_.base_;\n const proxyDraft = getProxyDraft(get(parentCopy, state.key_));\n const valueAtKey = get(parentCopy, state.key_);\n if (valueAtKey === void 0) {\n return null;\n }\n if (valueAtKey !== state.draft_ && valueAtKey !== state.base_ && valueAtKey !== state.copy_) {\n return null;\n }\n if (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n return null;\n }\n const isSet2 = state.parent_.type_ === 3 /* Set */;\n let key;\n if (isSet2) {\n const setParent = state.parent_;\n key = Array.from(setParent.drafts_.keys()).indexOf(state.key_);\n } else {\n key = state.key_;\n }\n if (!(isSet2 && parentCopy.size > key || has(parentCopy, key))) {\n return null;\n }\n path.push(key);\n }\n if (state.parent_) {\n return getPath(state.parent_, path);\n }\n path.reverse();\n try {\n resolvePath(state.copy_, path);\n } catch (e) {\n return null;\n }\n return path;\n }\n function resolvePath(base, path) {\n let current2 = base;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n current2 = get(current2, key);\n if (!isObjectish(current2) || current2 === null) {\n throw new Error(`Cannot resolve path at '${path.join(\"/\")}'`);\n }\n }\n return current2;\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, scope) {\n if (state.scope_.processedForPatches_.has(state)) {\n return;\n }\n state.scope_.processedForPatches_.add(state);\n const { patches_, inversePatches_ } = scope;\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 1 /* Array */:\n return generateArrayPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches_,\n inversePatches_\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n const allReassigned = state.allIndicesReassigned_ === true;\n for (let i = 0; i < base_.length; i++) {\n const copiedItem = copy_[i];\n const baseItem = base_[i];\n const isAssigned = allReassigned || assigned_?.get(i.toString());\n if (isAssigned && copiedItem !== baseItem) {\n const childState = copiedItem?.[DRAFT_STATE];\n if (childState && childState.modified_) {\n continue;\n }\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copiedItem)\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(baseItem)\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_, type_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key, type_);\n const value = get(copy_, key, type_);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(\n op === REMOVE ? { op, path } : { op, path, value: clonePatchValueIfNeeded(value) }\n );\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, scope) {\n const { patches_, inversePatches_ } = scope;\n patches_.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches_.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === CONSTRUCTOR))\n die(errorOffset + 3);\n if (isFunction(base) && p === PROTOTYPE)\n die(errorOffset + 3);\n base = get(base, p);\n if (base === null || !isObjectish(base))\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(PluginPatches, {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_,\n getPath\n });\n}\n\n// src/plugins/mapset.ts\nvar _globalIterator = globalThis.Iterator;\nvar hasIteratorFrom = typeof _globalIterator?.from === \"function\";\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n handleCrossReference(state, key, value);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(state.scope_, value, state, key);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return iteratorFrom({\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n });\n }\n entries() {\n const iterator = this.keys();\n return iteratorFrom({\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n });\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function iteratorFrom(iterable) {\n if (hasIteratorFrom) {\n return _globalIterator.from(iterable);\n }\n const iterator = {\n ...iterable,\n [Symbol.iterator]: () => iterator\n };\n return iterator;\n }\n function proxyMap_(target, parent) {\n const map = new DraftMap(target, parent);\n return [map, map[DRAFT_STATE]];\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false,\n assigned_: void 0,\n callbacks_: []\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n handleCrossReference(state, value, value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n const set2 = new DraftSet(target, parent);\n return [set2, set2[DRAFT_STATE]];\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(state.scope_, value, state, value);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n function fixSetContents(target) {\n if (target.type_ === 3 /* Set */ && target.copy_) {\n const copy = new Set(target.copy_);\n target.copy_.clear();\n copy.forEach((value) => {\n target.copy_.add(getValue(value));\n });\n }\n }\n loadPlugin(PluginMapSet, { proxyMap_, proxySet_, fixSetContents });\n}\n\n// src/plugins/arrayMethods.ts\nfunction enableArrayMethods() {\n const SHIFTING_METHODS = /* @__PURE__ */ new Set([\"shift\", \"unshift\"]);\n const QUEUE_METHODS = /* @__PURE__ */ new Set([\"push\", \"pop\"]);\n const RESULT_RETURNING_METHODS = /* @__PURE__ */ new Set([\n ...QUEUE_METHODS,\n ...SHIFTING_METHODS\n ]);\n const REORDERING_METHODS = /* @__PURE__ */ new Set([\"reverse\", \"sort\"]);\n const MUTATING_METHODS = /* @__PURE__ */ new Set([\n ...RESULT_RETURNING_METHODS,\n ...REORDERING_METHODS,\n \"splice\"\n ]);\n const FIND_METHODS = /* @__PURE__ */ new Set([\"find\", \"findLast\"]);\n const NON_MUTATING_METHODS = /* @__PURE__ */ new Set([\n \"filter\",\n \"slice\",\n \"concat\",\n \"flat\",\n ...FIND_METHODS,\n \"findIndex\",\n \"findLastIndex\",\n \"some\",\n \"every\",\n \"indexOf\",\n \"lastIndexOf\",\n \"includes\",\n \"join\",\n \"toString\",\n \"toLocaleString\"\n ]);\n function isMutatingArrayMethod(method) {\n return MUTATING_METHODS.has(method);\n }\n function isNonMutatingArrayMethod(method) {\n return NON_MUTATING_METHODS.has(method);\n }\n function isArrayOperationMethod(method) {\n return isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method);\n }\n function enterOperation(state, method) {\n state.operationMethod = method;\n }\n function exitOperation(state) {\n state.operationMethod = void 0;\n }\n function executeArrayMethod(state, operation, markLength = true) {\n prepareCopy(state);\n const result = operation();\n markArrayChanged(state, markLength);\n return result;\n }\n function markArrayChanged(state, markLength = true) {\n markChanged(state);\n if (markLength)\n state.assigned_.set(\"length\", true);\n }\n function markAllIndicesReassigned(state) {\n state.allIndicesReassigned_ = true;\n state.baseRefs_ = new Set(state.base_);\n }\n function normalizeSliceIndex(index, length) {\n if (index < 0) {\n return Math.max(length + index, 0);\n }\n return Math.min(index, length);\n }\n function handleInsertedValues(state, startIndex, values) {\n for (let i = 0; i < values.length; i++) {\n const index = \"\" + (startIndex + i);\n state.assigned_.set(index, true);\n handleCrossReference(state, index, values[i]);\n }\n }\n function handleSimpleOperation(state, method, args) {\n const isInsert = method === \"push\" || method === \"unshift\";\n if (isInsert ? args.length === 0 : latest(state).length === 0) {\n return isInsert ? latest(state).length : void 0;\n }\n prepareCopy(state);\n const lengthBefore = state.copy_.length;\n const result = state.copy_[method](...args);\n markArrayChanged(state);\n if (SHIFTING_METHODS.has(method)) {\n markAllIndicesReassigned(state);\n }\n if (method === \"push\") {\n handleInsertedValues(state, lengthBefore, args);\n } else if (method === \"unshift\") {\n handleInsertedValues(state, 0, args);\n }\n return RESULT_RETURNING_METHODS.has(method) ? result : state.draft_;\n }\n function handleReorderingOperation(state, method, args) {\n if (latest(state).length <= 1)\n return state.draft_;\n return executeArrayMethod(\n state,\n () => {\n ;\n state.copy_[method](...args);\n markAllIndicesReassigned(state);\n return state.draft_;\n },\n false\n );\n }\n function createMethodInterceptor(state, originalMethod) {\n return function interceptedMethod(...args) {\n const method = originalMethod;\n enterOperation(state, method);\n try {\n if (isMutatingArrayMethod(method)) {\n if (RESULT_RETURNING_METHODS.has(method)) {\n return handleSimpleOperation(state, method, args);\n }\n if (REORDERING_METHODS.has(method)) {\n return handleReorderingOperation(state, method, args);\n }\n if (method === \"splice\") {\n const insertCount = args.length > 2 ? args.length - 2 : 0;\n if (insertCount === 0) {\n const length = latest(state).length;\n if (args.length === 0 || normalizeSliceIndex(args[0] ?? 0, length) === length || args.length > 1 && !(args[1] >= 1)) {\n return [];\n }\n }\n prepareCopy(state);\n const res = state.copy_.splice(\n ...args\n );\n if (res.length === 0 && insertCount === 0) {\n return res;\n }\n markArrayChanged(state);\n markAllIndicesReassigned(state);\n if (insertCount > 0) {\n const startIndex = normalizeSliceIndex(\n args[0] ?? 0,\n state.copy_.length\n );\n handleInsertedValues(state, startIndex, args.slice(2));\n }\n return res;\n }\n } else {\n return handleNonMutatingOperation(state, method, args);\n }\n } finally {\n exitOperation(state);\n }\n };\n }\n function handleNonMutatingOperation(state, method, args) {\n const source = latest(state);\n if (method === \"filter\") {\n const predicate = args[0];\n const result = [];\n for (let i = 0; i < source.length; i++) {\n if (predicate(source[i], i, source)) {\n result.push(state.draft_[i]);\n }\n }\n return result;\n }\n if (FIND_METHODS.has(method)) {\n const predicate = args[0];\n const isForward = method === \"find\";\n const step = isForward ? 1 : -1;\n const start = isForward ? 0 : source.length - 1;\n for (let i = start; i >= 0 && i < source.length; i += step) {\n if (predicate(source[i], i, source)) {\n return state.draft_[i];\n }\n }\n return void 0;\n }\n if (method === \"slice\") {\n const rawStart = args[0] ?? 0;\n const rawEnd = args[1] ?? source.length;\n const start = normalizeSliceIndex(rawStart, source.length);\n const end = normalizeSliceIndex(rawEnd, source.length);\n const result = [];\n for (let i = start; i < end; i++) {\n result.push(state.draft_[i]);\n }\n return result;\n }\n return source[method](...args);\n }\n loadPlugin(PluginArrayMethods, {\n createMethodInterceptor,\n isArrayOperationMethod,\n isMutatingArrayMethod\n });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(immer);\nvar setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(immer);\nvar setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(immer);\nvar applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);\nvar createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);\nvar finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);\nvar castDraft = (value) => value;\nvar castImmutable = (value) => value;\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableArrayMethods,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictIteration,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","// src/index.ts\nexport * from \"redux\";\nimport { freeze, original as original2 } from \"immer\";\n\n// src/immerImports.ts\nimport { current, isDraft, produce, isDraftable, setUseStrictIteration } from \"immer\";\n\n// src/index.ts\nimport { createSelector, lruMemoize } from \"reselect\";\n\n// src/reselectImports.ts\nimport { createSelectorCreator, weakMapMemoize } from \"reselect\";\n\n// src/createDraftSafeSelector.ts\nvar createDraftSafeSelectorCreator = (...args) => {\n const createSelector2 = createSelectorCreator(...args);\n const createDraftSafeSelector2 = Object.assign((...args2) => {\n const selector = createSelector2(...args2);\n const wrappedSelector = (value, ...rest) => selector(isDraft(value) ? current(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector;\n }, {\n withTypes: () => createDraftSafeSelector2\n });\n return createDraftSafeSelector2;\n};\nvar createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(weakMapMemoize);\n\n// src/reduxImports.ts\nimport { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from \"redux\";\n\n// src/devtoolsExtension.ts\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {\n if (arguments.length === 0) return void 0;\n if (typeof arguments[0] === \"object\") return compose;\n return compose.apply(null, arguments);\n};\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {\n return function(noop3) {\n return noop3;\n };\n};\n\n// src/getDefaultMiddleware.ts\nimport { thunk as thunkMiddleware, withExtraArgument } from \"redux-thunk\";\n\n// src/tsHelpers.ts\nvar hasMatchFunction = (v) => {\n return v && typeof v.match === \"function\";\n};\n\n// src/createAction.ts\nfunction createAction(type, prepareAction) {\n function actionCreator(...args) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"prepareAction did not return an object\");\n }\n return {\n type,\n payload: prepared.payload,\n ...\"meta\" in prepared && {\n meta: prepared.meta\n },\n ...\"error\" in prepared && {\n error: prepared.error\n }\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action) => isAction(action) && action.type === type;\n return actionCreator;\n}\nfunction isActionCreator(action) {\n return typeof action === \"function\" && \"type\" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action);\n}\nfunction isFSA(action) {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key) {\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\n}\n\n// src/actionCreatorInvariantMiddleware.ts\nfunction getMessage(type) {\n const splitType = type ? `${type}`.split(\"/\") : [];\n const actionName = splitType[splitType.length - 1] || \"actionCreator\";\n return `Detected an action creator with type \"${type || \"unknown\"}\" being dispatched.\nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nfunction createActionCreatorInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n }\n const {\n isActionCreator: isActionCreator2 = isActionCreator\n } = options;\n return () => (next) => (action) => {\n if (isActionCreator2(action)) {\n console.warn(getMessage(action.type));\n }\n return next(action);\n };\n}\n\n// src/utils.ts\nfunction getTimeMeasureUtils(maxDelay, fnName) {\n let elapsed = 0;\n return {\n measureTime(fn) {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nvar Tuple = class _Tuple extends Array {\n constructor(...items) {\n super(...items);\n Object.setPrototypeOf(this, _Tuple.prototype);\n }\n static get [Symbol.species]() {\n return _Tuple;\n }\n concat(...arr) {\n return super.concat.apply(this, arr);\n }\n prepend(...arr) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new _Tuple(...arr[0].concat(this));\n }\n return new _Tuple(...arr.concat(this));\n }\n};\nfunction freezeDraftable(val) {\n return isDraftable(val) ? produce(val, () => {\n }) : val;\n}\nfunction getOrInsertComputed(map, key, compute) {\n if (map.has(key)) return map.get(key);\n return map.set(key, compute(key)).get(key);\n}\n\n// src/immutableStateInvariantMiddleware.ts\nfunction isImmutableDefault(value) {\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\n}\nfunction trackForMutations(isImmutable, ignoredPaths, obj) {\n const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n return {\n detectMutations() {\n return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n }\n };\n}\nfunction trackProperties(isImmutable, ignoredPaths = [], obj, path = \"\", checkedObjects = /* @__PURE__ */ new Set()) {\n const tracked = {\n value: obj\n };\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n checkedObjects.add(obj);\n tracked.children = {};\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const key in obj) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n }\n }\n return tracked;\n}\nfunction detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = \"\") {\n const prevObj = trackedProperty ? trackedProperty.value : void 0;\n const sameRef = prevObj === obj;\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return {\n wasMutated: true,\n path\n };\n }\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return {\n wasMutated: false\n };\n }\n const keysToDetect = {};\n for (let key in trackedProperty.children) {\n keysToDetect[key] = true;\n }\n for (let key in obj) {\n keysToDetect[key] = true;\n }\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (let key in keysToDetect) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n if (result.wasMutated) {\n return result;\n }\n }\n return {\n wasMutated: false\n };\n}\nfunction createImmutableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n let stringify2 = function(obj, serializer, indent, decycler) {\n return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);\n }, getSerialize2 = function(serializer, decycler) {\n let stack = [], keys = [];\n if (!decycler) decycler = function(_, value) {\n if (stack[0] === value) return \"[Circular ~]\";\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n };\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) value = decycler.call(this, key, value);\n } else stack.push(value);\n return serializer == null ? value : serializer.call(this, key, value);\n };\n };\n var stringify = stringify2, getSerialize = getSerialize2;\n let {\n isImmutable = isImmutableDefault,\n ignoredPaths,\n warnAfter = 32\n } = options;\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n return ({\n getState\n }) => {\n let state = getState();\n let tracker = track(state);\n let result;\n return (next) => (action) => {\n const measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || \"\"}'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n const dispatchedAction = next(action);\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || \"\"}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n return dispatchedAction;\n };\n };\n }\n}\n\n// src/serializableStateInvariantMiddleware.ts\nfunction isPlain(val) {\n const type = typeof val;\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\n}\nfunction findNonSerializableValue(value, path = \"\", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {\n let foundNestedSerializable;\n if (!isSerializable(value)) {\n return {\n keyPath: path || \"<root>\",\n value\n };\n }\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (cache?.has(value)) return false;\n const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const [key, nestedValue] of entries) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n if (!isSerializable(nestedValue)) {\n return {\n keyPath: nestedPath,\n value: nestedValue\n };\n }\n if (typeof nestedValue === \"object\") {\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n if (foundNestedSerializable) {\n return foundNestedSerializable;\n }\n }\n }\n if (cache && isNestedFrozen(value)) cache.add(value);\n return false;\n}\nfunction isNestedFrozen(value) {\n if (!Object.isFrozen(value)) return false;\n for (const nestedValue of Object.values(value)) {\n if (typeof nestedValue !== \"object\" || nestedValue === null) continue;\n if (!isNestedFrozen(nestedValue)) return false;\n }\n return true;\n}\nfunction createSerializableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n const {\n isSerializable = isPlain,\n getEntries,\n ignoredActions = [],\n ignoredActionPaths = [\"meta.arg\", \"meta.baseQueryMeta\"],\n ignoredPaths = [],\n warnAfter = 32,\n ignoreState = false,\n ignoreActions = false,\n disableCache = false\n } = options;\n const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;\n return (storeAPI) => (next) => (action) => {\n if (!isAction(action)) {\n return next(action);\n }\n const result = next(action);\n const measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\n measureUtils.measureTime(() => {\n const foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\n if (foundActionNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundActionNonSerializableValue;\n console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\n }\n });\n }\n if (!ignoreState) {\n measureUtils.measureTime(() => {\n const state = storeAPI.getState();\n const foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\n if (foundStateNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundStateNonSerializableValue;\n console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n }\n return result;\n };\n }\n}\n\n// src/getDefaultMiddleware.ts\nfunction isBoolean(x) {\n return typeof x === \"boolean\";\n}\nvar buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (immutableCheck) {\n let immutableOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n }\n if (serializableCheck) {\n let serializableOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray;\n};\n\n// src/autoBatchEnhancer.ts\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\nvar prepareAutoBatched = () => (payload) => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nvar createQueueWithTimer = (timeout) => {\n return (notify) => {\n setTimeout(notify, timeout);\n };\n};\nvar createRafWithFallbackTimer = (raf, timeout) => {\n return (notify) => {\n let called = false;\n const callback = () => {\n if (called) return;\n called = true;\n cancelAnimationFrame(rafId);\n clearTimeout(timerId);\n notify();\n };\n const rafId = raf(callback);\n const timerId = setTimeout(callback, timeout);\n };\n};\nvar autoBatchEnhancer = (options = {\n type: \"raf\"\n}) => (next) => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = /* @__PURE__ */ new Set();\n const queueCallback = options.type === \"tick\" ? queueMicrotask : options.type === \"raf\" ? (\n // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n typeof window !== \"undefined\" && window.requestAnimationFrame ? createRafWithFallbackTimer(window.requestAnimationFrame, 100) : createQueueWithTimer(10)\n ) : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach((l) => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener2) {\n const wrappedListener = () => notifying && listener2();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener2);\n return () => {\n unsubscribe();\n listeners.delete(listener2);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action) {\n try {\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n return store.dispatch(action);\n } finally {\n notifying = true;\n }\n }\n });\n};\n\n// src/getDefaultEnhancers.ts\nvar buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === \"object\" ? autoBatch : void 0));\n }\n return enhancerArray;\n};\n\n// src/configureStore.ts\nfunction configureStore(options) {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = void 0,\n middleware,\n devTools = true,\n duplicateMiddlewareCheck = true,\n preloadedState = void 0,\n enhancers = void 0\n } = options || {};\n let rootReducer;\n if (typeof reducer === \"function\") {\n rootReducer = reducer;\n } else if (isPlainObject(reducer)) {\n rootReducer = combineReducers(reducer);\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers\");\n }\n if (process.env.NODE_ENV !== \"production\" && middleware && typeof middleware !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"`middleware` field must be a callback\");\n }\n let finalMiddleware;\n if (typeof middleware === \"function\") {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"when using a middleware builder function, an array of middleware must be returned\");\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (process.env.NODE_ENV !== \"production\" && finalMiddleware.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"each middleware provided to configureStore must be a function\");\n }\n if (process.env.NODE_ENV !== \"production\" && duplicateMiddlewareCheck) {\n let middlewareReferences = /* @__PURE__ */ new Set();\n finalMiddleware.forEach((middleware2) => {\n if (middlewareReferences.has(middleware2)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(42) : \"Duplicate middleware references found when creating the store. Ensure that each middleware is only included once.\");\n }\n middlewareReferences.add(middleware2);\n });\n }\n let finalCompose = compose;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: process.env.NODE_ENV !== \"production\",\n ...typeof devTools === \"object\" && devTools\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if (process.env.NODE_ENV !== \"production\" && enhancers && typeof enhancers !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"`enhancers` field must be a callback\");\n }\n let storeEnhancers = typeof enhancers === \"function\" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"`enhancers` callback must return an array\");\n }\n if (process.env.NODE_ENV !== \"production\" && storeEnhancers.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"each enhancer provided to configureStore must be a function\");\n }\n if (process.env.NODE_ENV !== \"production\" && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error(\"middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`\");\n }\n const composedEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState, composedEnhancer);\n}\n\n// src/mapBuilders.ts\nfunction executeReducerBuilderCallback(builderCallback) {\n const actionsMap = {};\n const actionMatchers = [];\n let defaultCaseReducer;\n const builder = {\n addCase(typeOrActionCreator, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(26) : \"`builder.addCase` should only be called before calling `builder.addMatcher`\");\n }\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(27) : \"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(28) : \"`builder.addCase` cannot be called with an empty action type\");\n }\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(29) : `\\`builder.addCase\\` cannot be called with two reducers for the same action type '${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addAsyncThunk(asyncThunk, reducers) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(43) : \"`builder.addAsyncThunk` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n if (reducers.pending) actionsMap[asyncThunk.pending.type] = reducers.pending;\n if (reducers.rejected) actionsMap[asyncThunk.rejected.type] = reducers.rejected;\n if (reducers.fulfilled) actionsMap[asyncThunk.fulfilled.type] = reducers.fulfilled;\n if (reducers.settled) actionMatchers.push({\n matcher: asyncThunk.settled,\n reducer: reducers.settled\n });\n return builder;\n },\n addMatcher(matcher, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(30) : \"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(31) : \"`builder.addDefaultCase` can only be called once\");\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}\n\n// src/createReducer.ts\nfunction isStateFunction(x) {\n return typeof x === \"function\";\n}\nfunction createReducer(initialState, mapOrBuilderCallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof mapOrBuilderCallback === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n let getInitialState;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action) {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer: reducer2\n }) => reducer2)];\n if (caseReducers.filter((cr) => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer) => {\n if (caseReducer) {\n if (isDraft(previousState)) {\n const draft = previousState;\n const result = caseReducer(draft, action);\n if (result === void 0) {\n return previousState;\n }\n return result;\n } else if (!isDraftable(previousState)) {\n const result = caseReducer(previousState, action);\n if (result === void 0) {\n if (previousState === null) {\n return previousState;\n }\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\n }\n return result;\n } else {\n return produce(previousState, (draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer;\n}\n\n// src/matchers.ts\nvar matches = (matcher, action) => {\n if (hasMatchFunction(matcher)) {\n return matcher.match(action);\n } else {\n return matcher(action);\n }\n};\nfunction isAnyOf(...matchers) {\n return (action) => {\n return matchers.some((matcher) => matches(matcher, action));\n };\n}\nfunction isAllOf(...matchers) {\n return (action) => {\n return matchers.every((matcher) => matches(matcher, action));\n };\n}\nfunction hasExpectedRequestMetadata(action, validStatus) {\n if (!action || !action.meta) return false;\n const hasValidRequestId = typeof action.meta.requestId === \"string\";\n const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a) {\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\n}\nfunction isPending(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isPending()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));\n}\nfunction isRejected(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejected()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));\n}\nfunction isRejectedWithValue(...asyncThunks) {\n const hasFlag = (action) => {\n return action && action.meta && action.meta.rejectedWithValue;\n };\n if (asyncThunks.length === 0) {\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejectedWithValue()(asyncThunks[0]);\n }\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nfunction isFulfilled(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"fulfilled\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isFulfilled()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));\n}\nfunction isAsyncThunkAction(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isAsyncThunkAction()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}\n\n// src/nanoid.ts\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\nvar nanoid = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\n\n// src/createAsyncThunk.ts\nvar commonProperties = [\"name\", \"message\", \"stack\", \"code\"];\nvar RejectWithValue = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n payload;\n meta;\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar FulfillWithMeta = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n payload;\n meta;\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar miniSerializeError = (value) => {\n if (typeof value === \"object\" && value !== null) {\n const simpleError = {};\n for (const property of commonProperties) {\n if (typeof value[property] === \"string\") {\n simpleError[property] = value[property];\n }\n }\n return simpleError;\n }\n return {\n message: String(value)\n };\n};\nvar externalAbortMessage = \"External signal was aborted\";\nvar createAsyncThunk = /* @__PURE__ */ (() => {\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\n const fulfilled = createAction(typePrefix + \"/fulfilled\", (payload, requestId, arg, meta) => ({\n payload,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"fulfilled\"\n }\n }));\n const pending = createAction(typePrefix + \"/pending\", (requestId, arg, meta) => ({\n payload: void 0,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"pending\"\n }\n }));\n const rejected = createAction(typePrefix + \"/rejected\", (error, requestId, arg, payload, meta) => ({\n payload,\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\n meta: {\n ...meta || {},\n arg,\n requestId,\n rejectedWithValue: !!payload,\n requestStatus: \"rejected\",\n aborted: error?.name === \"AbortError\",\n condition: error?.name === \"ConditionError\"\n }\n }));\n function actionCreator(arg, {\n signal\n } = {}) {\n return (dispatch, getState, extra) => {\n const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n const abortController = new AbortController();\n let abortHandler;\n let abortReason;\n function abort(reason) {\n abortReason = reason;\n abortController.abort();\n }\n if (signal) {\n if (signal.aborted) {\n abort(externalAbortMessage);\n } else {\n signal.addEventListener(\"abort\", () => abort(externalAbortMessage), {\n once: true\n });\n }\n }\n const promise = (async function() {\n let finalAction;\n try {\n let conditionResult = options?.condition?.(arg, {\n getState,\n extra\n });\n if (isThenable(conditionResult)) {\n conditionResult = await conditionResult;\n }\n if (conditionResult === false || abortController.signal.aborted) {\n throw {\n name: \"ConditionError\",\n message: \"Aborted due to condition callback returning false.\"\n };\n }\n const abortedPromise = new Promise((_, reject) => {\n abortHandler = () => {\n reject({\n name: \"AbortError\",\n message: abortReason || \"Aborted\"\n });\n };\n abortController.signal.addEventListener(\"abort\", abortHandler, {\n once: true\n });\n });\n dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n requestId,\n arg\n }, {\n getState,\n extra\n })));\n finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n dispatch,\n getState,\n extra,\n requestId,\n signal: abortController.signal,\n abort,\n rejectWithValue: ((value, meta) => {\n return new RejectWithValue(value, meta);\n }),\n fulfillWithValue: ((value, meta) => {\n return new FulfillWithMeta(value, meta);\n })\n })).then((result) => {\n if (result instanceof RejectWithValue) {\n throw result;\n }\n if (result instanceof FulfillWithMeta) {\n return fulfilled(result.payload, requestId, arg, result.meta);\n }\n return fulfilled(result, requestId, arg);\n })]);\n } catch (err) {\n finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);\n } finally {\n if (abortHandler) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n }\n const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\n if (!skipDispatch) {\n dispatch(finalAction);\n }\n return finalAction;\n })();\n return Object.assign(promise, {\n abort,\n requestId,\n arg,\n unwrap() {\n return promise.then(unwrapResult);\n }\n });\n };\n }\n return Object.assign(actionCreator, {\n pending,\n rejected,\n fulfilled,\n settled: isAnyOf(rejected, fulfilled),\n typePrefix\n });\n }\n createAsyncThunk2.withTypes = () => createAsyncThunk2;\n return createAsyncThunk2;\n})();\nfunction unwrapResult(action) {\n if (action.meta && action.meta.rejectedWithValue) {\n throw action.payload;\n }\n if (action.error) {\n throw action.error;\n }\n return action.payload;\n}\nfunction isThenable(value) {\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\n}\n\n// src/createSlice.ts\nvar asyncThunkSymbol = /* @__PURE__ */ Symbol.for(\"rtk-slice-createasyncthunk\");\nvar asyncThunkCreator = {\n [asyncThunkSymbol]: createAsyncThunk\n};\nvar ReducerType = /* @__PURE__ */ ((ReducerType2) => {\n ReducerType2[\"reducer\"] = \"reducer\";\n ReducerType2[\"reducerWithPrepare\"] = \"reducerWithPrepare\";\n ReducerType2[\"asyncThunk\"] = \"asyncThunk\";\n return ReducerType2;\n})(ReducerType || {});\nfunction getType(slice, actionKey) {\n return `${slice}/${actionKey}`;\n}\nfunction buildCreateSlice({\n creators\n} = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice2(options) {\n const {\n name,\n reducerPath = name\n } = options;\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"`name` is a required option for createSlice\");\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n if (options.initialState === void 0) {\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\n }\n }\n const reducers = (typeof options.reducers === \"function\" ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods = {\n addCase(typeOrActionCreator, reducer2) {\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"`context.addCase` cannot be called with an empty action type\");\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"`context.addCase` cannot be called with two reducers for the same action type: \" + type);\n }\n context.sliceCaseReducersByType[type] = reducer2;\n return contextMethods;\n },\n addMatcher(matcher, reducer2) {\n context.sliceMatchers.push({\n matcher,\n reducer: reducer2\n });\n return contextMethods;\n },\n exposeAction(name2, actionCreator) {\n context.actionCreators[name2] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name2, reducer2) {\n context.sliceCaseReducersByName[name2] = reducer2;\n return contextMethods;\n }\n };\n reducerNames.forEach((reducerName) => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === \"function\"\n };\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\n });\n function buildReducer() {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.extraReducers === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, (builder) => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key]);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state) => state;\n const injectedSelectorCache = /* @__PURE__ */ new Map();\n const injectedStateCache = /* @__PURE__ */ new WeakMap();\n let _reducer;\n function reducer(state, action) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps(reducerPath2, injected = false) {\n function selectSlice(state) {\n let sliceState = state[reducerPath2];\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getOrInsertComputed(injectedStateCache, selectSlice, getInitialState);\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"selectSlice returned undefined for an uninjected slice reducer\");\n }\n }\n return sliceState;\n }\n function getSelectors(selectState = selectSelf) {\n const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());\n return getOrInsertComputed(selectorCache, selectState, () => {\n const map = {};\n for (const [name2, selector] of Object.entries(options.selectors ?? {})) {\n map[name2] = wrapSelector(selector, selectState, () => getOrInsertComputed(injectedStateCache, selectState, getInitialState), injected);\n }\n return map;\n });\n }\n return {\n reducerPath: reducerPath2,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice = {\n name,\n reducer,\n actions: context.actionCreators,\n caseReducers: context.sliceCaseReducersByName,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n };\n }\n };\n return slice;\n };\n}\nfunction wrapSelector(selector, selectState, getInitialState, injected) {\n function wrapper(rootState, ...args) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"selectState returned undefined for an uninjected slice reducer\");\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper;\n}\nvar createSlice = /* @__PURE__ */ buildCreateSlice();\nfunction buildReducerCreators() {\n function asyncThunk(payloadCreator, config) {\n return {\n _reducerDefinitionType: \"asyncThunk\" /* asyncThunk */,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: \"reducer\" /* reducer */\n });\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: \"reducerWithPrepare\" /* reducerWithPrepare */,\n prepare,\n reducer\n };\n },\n asyncThunk\n };\n}\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}, maybeReducerWithPrepare, context) {\n let caseReducer;\n let prepareCallback;\n if (\"reducer\" in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : \"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.\");\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"asyncThunk\" /* asyncThunk */;\n}\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"reducerWithPrepare\" /* reducerWithPrepare */;\n}\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}, reducerDefinition, context, cAT) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(18) : \"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.\");\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {\n}\n\n// src/entities/entity_state.ts\nfunction getInitialEntityState() {\n return {\n ids: [],\n entities: {}\n };\n}\nfunction createInitialStateFactory(stateAdapter) {\n function getInitialState(additionalState = {}, entities) {\n const state = Object.assign(getInitialEntityState(), additionalState);\n return entities ? stateAdapter.setAll(state, entities) : state;\n }\n return {\n getInitialState\n };\n}\n\n// src/entities/state_selectors.ts\nfunction createSelectorsFactory() {\n function getSelectors(selectState, options = {}) {\n const {\n createSelector: createSelector2 = createDraftSafeSelector\n } = options;\n const selectIds = (state) => state.ids;\n const selectEntities = (state) => state.entities;\n const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));\n const selectId = (_, id) => id;\n const selectById = (entities, id) => entities[id];\n const selectTotal = createSelector2(selectIds, (ids) => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n selectById: createSelector2(selectEntities, selectId, selectById)\n };\n }\n const selectGlobalizedEntities = createSelector2(selectState, selectEntities);\n return {\n selectIds: createSelector2(selectState, selectIds),\n selectEntities: selectGlobalizedEntities,\n selectAll: createSelector2(selectState, selectAll),\n selectTotal: createSelector2(selectState, selectTotal),\n selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)\n };\n }\n return {\n getSelectors\n };\n}\n\n// src/entities/state_adapter.ts\nvar isDraftTyped = isDraft;\nfunction createSingleArgumentStateOperator(mutator) {\n const operator = createStateOperator((_, state) => mutator(state));\n return function operation(state) {\n return operator(state, void 0);\n };\n}\nfunction createStateOperator(mutator) {\n return function operation(state, arg) {\n function isPayloadActionArgument(arg2) {\n return isFSA(arg2);\n }\n const runMutator = (draft) => {\n if (isPayloadActionArgument(arg)) {\n mutator(arg.payload, draft);\n } else {\n mutator(arg, draft);\n }\n };\n if (isDraftTyped(state)) {\n runMutator(state);\n return state;\n }\n return produce(state, runMutator);\n };\n}\n\n// src/entities/utils.ts\nfunction selectIdValue(entity, selectId) {\n const key = selectId(entity);\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\n }\n return key;\n}\nfunction ensureEntitiesArray(entities) {\n if (!Array.isArray(entities)) {\n entities = Object.values(entities);\n }\n return entities;\n}\nfunction getCurrent(value) {\n return isDraft(value) ? current(value) : value;\n}\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingIdsArray = getCurrent(state.ids);\n const existingIds = new Set(existingIdsArray);\n const added = [];\n const addedIds = /* @__PURE__ */ new Set([]);\n const updated = [];\n for (const entity of newEntities) {\n const id = selectIdValue(entity, selectId);\n if (existingIds.has(id) || addedIds.has(id)) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n addedIds.add(id);\n added.push(entity);\n }\n }\n return [added, updated, existingIdsArray];\n}\n\n// src/entities/unsorted_state_adapter.ts\nfunction createUnsortedStateAdapter(selectId) {\n function addOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n }\n function addManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n addOneMutably(entity, state);\n }\n }\n function setOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (!(key in state.entities)) {\n state.ids.push(key);\n }\n ;\n state.entities[key] = entity;\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n setOneMutably(entity, state);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.ids = [];\n state.entities = {};\n addManyMutably(newEntities, state);\n }\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keys, state) {\n let didMutate = false;\n keys.forEach((key) => {\n if (key in state.entities) {\n delete state.entities[key];\n didMutate = true;\n }\n });\n if (didMutate) {\n state.ids = state.ids.filter((id) => id in state.entities);\n }\n }\n function removeAllMutably(state) {\n Object.assign(state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys, update, state) {\n const original3 = state.entities[update.id];\n if (original3 === void 0) {\n return false;\n }\n const updated = Object.assign({}, original3, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n ;\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n const newKeys = {};\n const updatesPerEntity = {};\n updates.forEach((update) => {\n if (update.id in state.entities) {\n updatesPerEntity[update.id] = {\n id: update.id,\n // Spreads ignore falsy values, so this works even if there isn't\n // an existing update already at this key\n changes: {\n ...updatesPerEntity[update.id]?.changes,\n ...update.changes\n }\n };\n }\n });\n updates = Object.values(updatesPerEntity);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));\n }\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);\n addManyMutably(added, state);\n updateManyMutably(updated, state);\n }\n return {\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably)\n };\n}\n\n// src/entities/sorted_state_adapter.ts\nfunction findInsertIndex(sortedItems, item, comparisonFunction) {\n let lowIndex = 0;\n let highIndex = sortedItems.length;\n while (lowIndex < highIndex) {\n let middleIndex = lowIndex + highIndex >>> 1;\n const currentItem = sortedItems[middleIndex];\n const res = comparisonFunction(item, currentItem);\n if (res >= 0) {\n lowIndex = middleIndex + 1;\n } else {\n highIndex = middleIndex;\n }\n }\n return lowIndex;\n}\nfunction insert(sortedItems, item, comparisonFunction) {\n const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n sortedItems.splice(insertAtIndex, 0, item);\n return sortedItems;\n}\nfunction createSortedStateAdapter(selectId, comparer) {\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newEntities, state, existingIds) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingKeys = new Set(existingIds ?? getCurrent(state.ids));\n const addedKeys = /* @__PURE__ */ new Set();\n const models = newEntities.filter((model) => {\n const modelId = selectIdValue(model, selectId);\n const notAdded = !addedKeys.has(modelId);\n if (notAdded) addedKeys.add(modelId);\n return !existingKeys.has(modelId) && notAdded;\n });\n if (models.length !== 0) {\n mergeFunction(state, models);\n }\n }\n function setOneMutably(entity, state) {\n return setManyMutably([entity], state);\n }\n function setManyMutably(newEntities, state) {\n let deduplicatedEntities = {};\n newEntities = ensureEntitiesArray(newEntities);\n if (newEntities.length !== 0) {\n for (const item of newEntities) {\n const entityId = selectId(item);\n deduplicatedEntities[entityId] = item;\n delete state.entities[entityId];\n }\n newEntities = ensureEntitiesArray(deduplicatedEntities);\n mergeFunction(state, newEntities);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.entities = {};\n state.ids = [];\n addManyMutably(newEntities, state, []);\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n let appliedUpdates = false;\n let replacedIds = false;\n for (let update of updates) {\n const entity = state.entities[update.id];\n if (!entity) {\n continue;\n }\n appliedUpdates = true;\n Object.assign(entity, update.changes);\n const newId = selectId(entity);\n if (update.id !== newId) {\n replacedIds = true;\n delete state.entities[update.id];\n const oldIndex = state.ids.indexOf(update.id);\n state.ids[oldIndex] = newId;\n state.entities[newId] = entity;\n }\n }\n if (appliedUpdates) {\n mergeFunction(state, [], appliedUpdates, replacedIds);\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);\n if (added.length) {\n addManyMutably(added, state, existingIdsArray);\n }\n if (updated.length) {\n updateManyMutably(updated, state);\n }\n }\n function areArraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return false;\n }\n return true;\n }\n const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n const currentEntities = getCurrent(state.entities);\n const currentIds = getCurrent(state.ids);\n const stateEntities = state.entities;\n let ids = currentIds;\n if (replacedIds) {\n ids = new Set(currentIds);\n }\n let sortedEntities = [];\n for (const id of ids) {\n const entity = currentEntities[id];\n if (entity) {\n sortedEntities.push(entity);\n }\n }\n const wasPreviouslyEmpty = sortedEntities.length === 0;\n for (const item of addedItems) {\n stateEntities[selectId(item)] = item;\n if (!wasPreviouslyEmpty) {\n insert(sortedEntities, item, comparer);\n }\n }\n if (wasPreviouslyEmpty) {\n sortedEntities = addedItems.slice().sort(comparer);\n } else if (appliedUpdates) {\n sortedEntities.sort(comparer);\n }\n const newSortedIds = sortedEntities.map(selectId);\n if (!areArraysEqual(currentIds, newSortedIds)) {\n state.ids = newSortedIds;\n }\n };\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably)\n };\n}\n\n// src/entities/create_adapter.ts\nfunction createEntityAdapter(options = {}) {\n const {\n selectId,\n sortComparer\n } = {\n sortComparer: false,\n selectId: (instance) => instance.id,\n ...options\n };\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n const stateFactory = createInitialStateFactory(stateAdapter);\n const selectorsFactory = createSelectorsFactory();\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}\n\n// src/listenerMiddleware/exceptions.ts\nvar task = \"task\";\nvar listener = \"listener\";\nvar completed = \"completed\";\nvar cancelled = \"cancelled\";\nvar taskCancelled = `task-${cancelled}`;\nvar taskCompleted = `task-${completed}`;\nvar listenerCancelled = `${listener}-${cancelled}`;\nvar listenerCompleted = `${listener}-${completed}`;\nvar TaskAbortError = class {\n constructor(code) {\n this.code = code;\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n code;\n name = \"TaskAbortError\";\n message;\n};\n\n// src/listenerMiddleware/utils.ts\nvar assertFunction = (func, expected) => {\n if (typeof func !== \"function\") {\n throw new TypeError(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nvar noop2 = () => {\n};\nvar catchRejection = (promise, onError = noop2) => {\n promise.catch(onError);\n return promise;\n};\nvar addAbortSignalListener = (abortSignal, callback) => {\n abortSignal.addEventListener(\"abort\", callback, {\n once: true\n });\n return () => abortSignal.removeEventListener(\"abort\", callback);\n};\n\n// src/listenerMiddleware/task.ts\nvar validateActive = (signal) => {\n if (signal.aborted) {\n throw new TaskAbortError(signal.reason);\n }\n};\nfunction raceWithSignal(signal, promise) {\n let cleanup = noop2;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n cleanup = noop2;\n });\n}\nvar runTask = async (task2, cleanUp) => {\n try {\n await Promise.resolve();\n const value = await task2();\n return {\n status: \"ok\",\n value\n };\n } catch (error) {\n return {\n status: error instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\n error\n };\n } finally {\n cleanUp?.();\n }\n};\nvar createPause = (signal) => {\n return (promise) => {\n return catchRejection(raceWithSignal(signal, promise).then((output) => {\n validateActive(signal);\n return output;\n }));\n };\n};\nvar createDelay = (signal) => {\n const pause = createPause(signal);\n return (timeoutMs) => {\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));\n };\n};\n\n// src/listenerMiddleware/index.ts\nvar {\n assign\n} = Object;\nvar INTERNAL_NIL_TOKEN = {};\nvar alm = \"listenerMiddleware\";\nvar createFork = (parentAbortSignal, parentBlockingPromises) => {\n const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => controller.abort(parentAbortSignal.reason));\n return (taskExecutor, opts) => {\n assertFunction(taskExecutor, \"taskExecutor\");\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async () => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result2 = await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n });\n validateActive(childAbortController.signal);\n return result2;\n }, () => childAbortController.abort(taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop2));\n }\n return {\n result: createPause(parentAbortSignal)(result),\n cancel() {\n childAbortController.abort(taskCancelled);\n }\n };\n };\n};\nvar createTakePattern = (startListening, signal) => {\n const take = async (predicate, timeout) => {\n validateActive(signal);\n let unsubscribe = () => {\n };\n const tuplePromise = new Promise((resolve, reject) => {\n let stopListening = startListening({\n predicate,\n effect: (action, listenerApi) => {\n listenerApi.unsubscribe();\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n unsubscribe();\n }\n };\n return ((predicate, timeout) => catchRejection(take(predicate, timeout)));\n};\nvar getListenerEntryPropsFrom = (options) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(21) : \"Creating or removing a listener requires one of the known fields for matching an action\");\n }\n assertFunction(effect, \"options.listener\");\n return {\n predicate,\n type,\n effect\n };\n};\nvar createListenerEntry = /* @__PURE__ */ assign((options) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const entry = {\n id: nanoid(),\n effect,\n type,\n predicate,\n pending: /* @__PURE__ */ new Set(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(22) : \"Unsubscribe not initialized\");\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n});\nvar findListenerEntry = (listenerMap, options) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n return Array.from(listenerMap.values()).find((entry) => {\n const matchPredicateOrType = typeof type === \"string\" ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n};\nvar cancelActiveListeners = (entry) => {\n entry.pending.forEach((controller) => {\n controller.abort(listenerCancelled);\n });\n};\nvar createClearListenerMiddleware = (listenerMap, executingListeners) => {\n return () => {\n for (const listener2 of executingListeners.keys()) {\n cancelActiveListeners(listener2);\n }\n listenerMap.clear();\n };\n};\nvar safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\nvar addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {\n withTypes: () => addListener\n});\nvar clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);\nvar removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n});\nvar defaultErrorHandler = (...args) => {\n console.error(`${alm}/error`, ...args);\n};\nvar createListenerMiddleware = (middlewareOptions = {}) => {\n const listenerMap = /* @__PURE__ */ new Map();\n const executingListeners = /* @__PURE__ */ new Map();\n const trackExecutingListener = (entry) => {\n const count = executingListeners.get(entry) ?? 0;\n executingListeners.set(entry, count + 1);\n };\n const untrackExecutingListener = (entry) => {\n const count = executingListeners.get(entry) ?? 1;\n if (count === 1) {\n executingListeners.delete(entry);\n } else {\n executingListeners.set(entry, count - 1);\n }\n };\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, \"onError\");\n const insertEntry = (entry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = ((options) => {\n const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options);\n return insertEntry(entry);\n });\n assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options) => {\n const entry = findListenerEntry(listenerMap, options);\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry, action, api, getOriginalState) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening, internalTaskController.signal);\n const autoJoinPromises = [];\n try {\n entry.pending.add(internalTaskController);\n trackExecutingListener(entry);\n await Promise.resolve(entry.effect(\n action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n controller.abort(listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n internalTaskController.abort(listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })\n ));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: \"effect\"\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n internalTaskController.abort(listenerCompleted);\n untrackExecutingListener(entry);\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap, executingListeners);\n const middleware = (api) => (next) => (action) => {\n if (!isAction(action)) {\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n let originalState = api.getState();\n const getOriginalState = () => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState;\n };\n let result;\n try {\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: \"predicate\"\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n };\n};\n\n// src/dynamicMiddleware/index.ts\nvar createMiddlewareEntry = (middleware) => ({\n middleware,\n applied: /* @__PURE__ */ new Map()\n});\nvar matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;\nvar createDynamicMiddleware = () => {\n const instanceId = nanoid();\n const middlewareMap = /* @__PURE__ */ new Map();\n const withMiddleware = Object.assign(createAction(\"dynamicMiddleware/add\", (...middlewares) => ({\n payload: middlewares,\n meta: {\n instanceId\n }\n })), {\n withTypes: () => withMiddleware\n });\n const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {\n middlewares.forEach((middleware2) => {\n getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);\n });\n }, {\n withTypes: () => addMiddleware\n });\n const getFinalMiddleware = (api) => {\n const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));\n return compose(...appliedMiddleware);\n };\n const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n const middleware = (api) => (next) => (action) => {\n if (isWithMiddleware(action)) {\n addMiddleware(...action.payload);\n return api.dispatch;\n }\n return getFinalMiddleware(api)(next)(action);\n };\n return {\n middleware,\n addMiddleware,\n withMiddleware,\n instanceId\n };\n};\n\n// src/combineSlices.ts\nimport { combineReducers as combineReducers2 } from \"redux\";\nvar isSliceLike = (maybeSliceLike) => \"reducerPath\" in maybeSliceLike && typeof maybeSliceLike.reducerPath === \"string\";\nvar getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nvar ORIGINAL_STATE = /* @__PURE__ */ Symbol.for(\"rtk-state-proxy-original\");\nvar isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];\nvar stateProxyMap = /* @__PURE__ */ new WeakMap();\nvar createStateProxy = (state, reducerMap, initialStateCache) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === \"undefined\") {\n const cached = initialStateCache[prop];\n if (typeof cached !== \"undefined\") return cached;\n const reducer = reducerMap[prop];\n if (reducer) {\n const reducerResult = reducer(void 0, {\n type: nanoid()\n });\n if (typeof reducerResult === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n initialStateCache[prop] = reducerResult;\n return reducerResult;\n }\n }\n return result;\n }\n}));\nvar original = (state) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(25) : \"original must be used on state Proxy\");\n }\n return state[ORIGINAL_STATE];\n};\nvar emptyObject = {};\nvar noopReducer = (state = emptyObject) => state;\nfunction combineSlices(...slices) {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? combineReducers2(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state, action) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const initialStateCache = {};\n const inject = (slice, config = {}) => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n if (config.overrideExisting && currentReducer !== reducerToInject) {\n delete initialStateCache[reducerPath];\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector(selectorFn, selectState) {\n return function selector2(state, ...args) {\n return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap, initialStateCache), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n });\n}\n\n// src/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\nexport {\n ReducerType,\n SHOULD_AUTOBATCH,\n TaskAbortError,\n Tuple,\n addListener,\n asyncThunkCreator,\n autoBatchEnhancer,\n buildCreateSlice,\n clearAllListeners,\n combineSlices,\n configureStore,\n createAction,\n createActionCreatorInvariantMiddleware,\n createAsyncThunk,\n createDraftSafeSelector,\n createDraftSafeSelectorCreator,\n createDynamicMiddleware,\n createEntityAdapter,\n createImmutableStateInvariantMiddleware,\n createListenerMiddleware,\n produce as createNextState,\n createReducer,\n createSelector,\n createSelectorCreator,\n createSerializableStateInvariantMiddleware,\n createSlice,\n current,\n findNonSerializableValue,\n formatProdErrorMessage,\n freeze,\n isActionCreator,\n isAllOf,\n isAnyOf,\n isAsyncThunkAction,\n isDraft,\n isFSA as isFluxStandardAction,\n isFulfilled,\n isImmutableDefault,\n isPending,\n isPlain,\n isRejected,\n isRejectedWithValue,\n lruMemoize,\n miniSerializeError,\n nanoid,\n original2 as original,\n prepareAutoBatched,\n removeListener,\n unwrapResult,\n weakMapMemoize\n};\n//# sourceMappingURL=redux-toolkit.modern.mjs.map","import { createSlice } from '@reduxjs/toolkit';\nvar initialState = {\n layoutType: 'horizontal',\n width: 0,\n height: 0,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n scale: 1\n};\nvar chartLayoutSlice = createSlice({\n name: 'chartLayout',\n initialState,\n reducers: {\n setLayout(state, action) {\n state.layoutType = action.payload;\n },\n setChartSize(state, action) {\n state.width = action.payload.width;\n state.height = action.payload.height;\n },\n setMargin(state, action) {\n var _action$payload$top, _action$payload$right, _action$payload$botto, _action$payload$left;\n state.margin.top = (_action$payload$top = action.payload.top) !== null && _action$payload$top !== void 0 ? _action$payload$top : 0;\n state.margin.right = (_action$payload$right = action.payload.right) !== null && _action$payload$right !== void 0 ? _action$payload$right : 0;\n state.margin.bottom = (_action$payload$botto = action.payload.bottom) !== null && _action$payload$botto !== void 0 ? _action$payload$botto : 0;\n state.margin.left = (_action$payload$left = action.payload.left) !== null && _action$payload$left !== void 0 ? _action$payload$left : 0;\n },\n setScale(state, action) {\n state.scale = action.payload;\n }\n }\n});\nvar _chartLayoutSlice$act = chartLayoutSlice.actions,\n setMargin = _chartLayoutSlice$act.setMargin,\n setLayout = _chartLayoutSlice$act.setLayout,\n setChartSize = _chartLayoutSlice$act.setChartSize,\n setScale = _chartLayoutSlice$act.setScale;\nexport { setMargin, setLayout, setChartSize, setScale };\nexport var chartLayoutReducer = chartLayoutSlice.reducer;","export function getSliced(arr, startIndex, endIndex) {\n if (!Array.isArray(arr)) {\n return arr;\n }\n if (arr && startIndex + endIndex !== 0) {\n return arr.slice(startIndex, endIndex + 1);\n }\n return arr;\n}","export function isWellBehavedNumber(n) {\n return Number.isFinite(n);\n}\nexport function isPositiveNumber(n) {\n return typeof n === 'number' && n > 0 && Number.isFinite(n);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport get from 'es-toolkit/compat/get';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport { findEntryInArray, isNan, isNotNil, isNullish, isNumber, isNumOrStr, mathSign } from './DataUtils';\nimport { getSliced } from './getSliced';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nimport { isOutsidePosition } from '../cartesian/getCartesianPosition';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNullish(obj) || isNullish(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (typeof dataKey === 'function') {\n return dataKey(obj);\n }\n return defaultValue;\n}\nexport var appendOffsetOfLegend = (offset, legendSettings, legendSize) => {\n if (legendSettings && legendSize) {\n var boxWidth = legendSize.width,\n boxHeight = legendSize.height;\n var align = legendSettings.align,\n verticalAlign = legendSettings.verticalAlign,\n layout = legendSettings.layout,\n position = legendSettings.position,\n _legendSettings$offse = legendSettings.offset,\n legendOffset = _legendSettings$offse === void 0 ? 0 : _legendSettings$offse;\n if (position != null) {\n // Position-based legends are absolutely placed. They only move the plot area if they are positioned outside.\n if (isOutsidePosition(position)) {\n if (position === 'top' && isNumber(offset.top)) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n top: offset.top + (boxHeight || 0) + legendOffset\n });\n }\n if (position === 'bottom' && isNumber(offset.bottom)) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n bottom: offset.bottom + (boxHeight || 0) + legendOffset\n });\n }\n if (position === 'left' && isNumber(offset.left)) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n left: offset.left + (boxWidth || 0) + legendOffset\n });\n }\n if (position === 'right' && isNumber(offset.right)) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n right: offset.right + (boxWidth || 0) + legendOffset\n });\n }\n }\n return offset;\n }\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n [align]: offset[align] + (boxWidth || 0)\n });\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, {\n [verticalAlign]: offset[verticalAlign] + (boxHeight || 0)\n });\n }\n }\n return offset;\n};\nexport var isCategoricalAxis = (layout, axisType) => layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimum value of axis\n * @param {Number} maxValue The maximum value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = (ticks, minValue, maxValue, syncWithTicks) => {\n if (syncWithTicks) {\n return ticks.map(entry => entry.coordinate);\n }\n var hasMin, hasMax;\n var values = ticks.map(entry => {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport var getTicksOfAxis = (axis, isGrid, isAll) => {\n if (!axis) {\n return null;\n }\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range,\n scale = axis.scale,\n realScaleType = axis.realScaleType,\n isCategorical = axis.isCategorical,\n categoricalDomain = axis.categoricalDomain,\n tickCount = axis.tickCount,\n ticks = axis.ticks,\n niceTicks = axis.niceTicks,\n axisType = axis.axisType;\n if (!scale) {\n return null;\n }\n var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && range && range.length >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (ticks || niceTicks)) {\n var result = (ticks || niceTicks || []).map((entry, index) => {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n var scaled = scale.map(scaleContent);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scaled + offset,\n value: entry,\n offset,\n index\n };\n }).filter(isNotNil);\n return result;\n }\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n // For type='number' with niceTicks available, skip this branch so ticks are evenly spaced (GitHub issue #4271)\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks && !isAll && tickCount != null) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as an index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param value input that will be truncated\n * @param domain boundaries\n * @returns tuple of two numbers\n */\nexport var truncateByDomain = (value, domain) => {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = series => {\n var _series$;\n var n = series.length;\n if (n <= 0) {\n return;\n }\n var m = (_series$ = series[0]) === null || _series$ === void 0 ? void 0 : _series$.length;\n if (m == null || m <= 0) {\n return;\n }\n for (var j = 0; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var row = series[i];\n var col = row === null || row === void 0 ? void 0 : row[j];\n if (col == null) {\n continue;\n }\n var series1 = col[1];\n var series0 = col[0];\n var value = isNan(series1) ? series0 : series1;\n if (value >= 0) {\n col[0] = positive;\n positive += value;\n col[1] = positive;\n } else {\n col[0] = negative;\n negative += value;\n col[1] = negative;\n }\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = series => {\n var _series$2;\n var n = series.length;\n if (n <= 0) {\n return;\n }\n var m = (_series$2 = series[0]) === null || _series$2 === void 0 ? void 0 : _series$2.length;\n if (m == null || m <= 0) {\n return;\n }\n for (var j = 0; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var row = series[i];\n var col = row === null || row === void 0 ? void 0 : row[j];\n if (col == null) {\n continue;\n }\n var value = isNan(col[1]) ? col[0] : col[1];\n if (value >= 0) {\n col[0] = positive;\n positive += value;\n col[1] = positive;\n } else {\n col[0] = 0;\n col[1] = 0;\n }\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array<Series<>>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = (data, dataKeys, offsetType) => {\n var _STACK_OFFSET_MAP$off;\n var offsetAccessor = (_STACK_OFFSET_MAP$off = STACK_OFFSET_MAP[offsetType]) !== null && _STACK_OFFSET_MAP$off !== void 0 ? _STACK_OFFSET_MAP$off : stackOffsetNone;\n var stack = shapeStack().keys(dataKeys).value((d, key) => Number(getValueByDataKey(d, key, 0))).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n var result = stack(data);\n\n // Post-process ranged data: if value is an array of two numbers, use them directly without stacking\n result.forEach((series, seriesIndex) => {\n series.forEach((point, pointIndex) => {\n var value = getValueByDataKey(data[pointIndex], dataKeys[seriesIndex], 0);\n if (Array.isArray(value) && value.length === 2 && isNumber(value[0]) && isNumber(value[1])) {\n // eslint-disable-next-line prefer-destructuring,no-param-reassign\n point[0] = value[0];\n // eslint-disable-next-line prefer-destructuring,no-param-reassign\n point[1] = value[1];\n }\n });\n });\n return result;\n};\n\n/**\n * Externally, we accept both strings and numbers as stack IDs\n * @inline\n */\n\n/**\n * Stack IDs in the external props allow numbers; but internally we use it as an object key\n * and object keys are always strings. Also, it would be kinda confusing if stackId=8 and stackId='8' were different stacks\n * so let's just force a string.\n */\n\nexport function getNormalizedStackId(publicStackId) {\n return publicStackId == null ? undefined : String(publicStackId);\n}\nexport function getCateCoordinateOfLine(_ref) {\n var axis = _ref.axis,\n ticks = _ref.ticks,\n bandSize = _ref.bandSize,\n entry = _ref.entry,\n index = _ref.index,\n dataKey = _ref.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNullish(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks !== null && ticks !== void 0 && ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNullish(dataKey) ? dataKey : axis.dataKey);\n var scaled = axis.scale.map(value);\n if (!isNumber(scaled)) {\n return null;\n }\n return scaled;\n}\nexport var getCateCoordinateOfBar = _ref2 => {\n var axis = _ref2.axis,\n ticks = _ref2.ticks,\n offset = _ref2.offset,\n bandSize = _ref2.bandSize,\n entry = _ref2.entry,\n index = _ref2.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n // getValueByDataKey does not validate the output type\n var value = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);\n if (isNullish(value)) {\n return null;\n }\n var scaled = axis.scale.map(value);\n if (!isNumber(scaled)) {\n return null;\n }\n return scaled - bandSize / 2 + offset;\n};\nexport var getBaseValueOfBar = _ref3 => {\n var numericAxis = _ref3.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n var minValue = Math.min(domain[0], domain[1]);\n // @ts-expect-error type number means the domain has numbers in it but this relationship is not known to typescript\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nvar getDomainOfSingle = data => {\n var flat = data.flat(2).filter(isNumber);\n return [Math.min(...flat), Math.max(...flat)];\n};\nvar makeDomainFinite = domain => {\n return [domain[0] === Infinity ? 0 : domain[0], domain[1] === -Infinity ? 0 : domain[1]];\n};\nexport var getDomainOfStackGroups = (stackGroups, startIndex, endIndex) => {\n if (stackGroups == null || Object.keys(stackGroups).length === 0) {\n return undefined;\n }\n return makeDomainFinite(Object.keys(stackGroups).reduce((result, stackId) => {\n var group = stackGroups[stackId];\n if (!group) {\n return result;\n }\n var stackedData = group.stackedData;\n var domain = stackedData.reduce((res, entry) => {\n var sliced = getSliced(entry, startIndex, endIndex);\n var s = getDomainOfSingle(sliced);\n if (!isWellBehavedNumber(s[0]) || !isWellBehavedNumber(s[1])) {\n return res;\n }\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]));\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = (axis, ticks, isBar) => {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, o => o.coordinate);\n\n // Collect the pixel gaps between adjacent category positions and track the\n // widest one.\n var gaps = [];\n var maxGap = 0;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var _orderedTicks$i, _orderedTicks;\n var gap = (((_orderedTicks$i = orderedTicks[i]) === null || _orderedTicks$i === void 0 ? void 0 : _orderedTicks$i.coordinate) || 0) - (((_orderedTicks = orderedTicks[i - 1]) === null || _orderedTicks === void 0 ? void 0 : _orderedTicks.coordinate) || 0);\n gaps.push(gap);\n maxGap = Math.max(gap, maxGap);\n }\n\n // High-precision float values can place two ticks at (almost) the same pixel,\n // producing a spurious sub-pixel gap. Such near-coincident positions are the\n // same category slot for rendering purposes and must not define the band\n // size, otherwise every bar collapses to ~0px wide (issue #4043). Ignore gaps\n // that are a negligible fraction of the widest gap so a single near-duplicate\n // value cannot dictate the spacing.\n var minMeaningfulGap = maxGap * 1e-4;\n var bandSize = Infinity;\n for (var _gap of gaps) {\n if (_gap > minMeaningfulGap) {\n bandSize = Math.min(_gap, bandSize);\n }\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\nexport function getTooltipEntry(_ref4) {\n var tooltipEntrySettings = _ref4.tooltipEntrySettings,\n dataKey = _ref4.dataKey,\n payload = _ref4.payload,\n value = _ref4.value,\n name = _ref4.name;\n return _objectSpread(_objectSpread({}, tooltipEntrySettings), {}, {\n dataKey,\n payload,\n value,\n name\n });\n}\nexport function getTooltipNameProp(nameFromItem, dataKey) {\n if (nameFromItem != null) {\n return String(nameFromItem);\n }\n if (typeof dataKey === 'string') {\n return dataKey;\n }\n return undefined;\n}\nexport var calculateCartesianTooltipPos = (coordinate, layout) => {\n if (layout === 'horizontal') {\n return coordinate.relativeX;\n }\n if (layout === 'vertical') {\n return coordinate.relativeY;\n }\n return undefined;\n};\nexport var calculatePolarTooltipPos = (rangeObj, layout) => {\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};","export var selectChartWidth = state => state.layout.width;\nexport var selectChartHeight = state => state.layout.height;\nexport var selectContainerScale = state => state.layout.scale;\nexport var selectMargin = state => state.layout.margin;","import { createSelector } from 'reselect';\nexport var selectAllXAxes = createSelector(state => state.cartesianAxis.xAxis, xAxisMap => {\n return Object.values(xAxisMap);\n});\nexport var selectAllYAxes = createSelector(state => state.cartesianAxis.yAxis, yAxisMap => {\n return Object.values(yAxisMap);\n});","export var COLOR_PANEL = ['#1890FF', '#66B5FF', '#41D9C7', '#2FC25B', '#6EDB8F', '#9AE65C', '#FACC14', '#E6965C', '#57AD71', '#223273', '#738AE6', '#7564CC', '#8543E0', '#A877ED', '#5C8EE6', '#13C2C2', '#70E0E0', '#5CA3E6', '#3436C7', '#8082FF', '#DD81E6', '#F04864', '#FA7D92', '#D598D9'];\n\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * The index is the position of the element in the data array.\n * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).\n */\nexport var DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';\n\n/**\n * We use this attribute to identify which element is the one that the user is touching.\n * Unlike dataKey, or name, it is always unique.\n */\nexport var DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';\nexport var DEFAULT_Y_AXIS_WIDTH = 60;\nexport var DEFAULT_X_AXIS_HEIGHT = 30;","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createSelector } from 'reselect';\nimport { selectLegendSettings, selectLegendSize } from './legendSelectors';\nimport { appendOffsetOfLegend } from '../../util/ChartUtils';\nimport { selectChartHeight, selectChartWidth, selectMargin } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { DEFAULT_X_AXIS_HEIGHT, DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nexport var selectBrushHeight = state => state.brush.height;\nexport function selectLeftAxesOffset(state) {\n var yAxes = selectAllYAxes(state);\n return yAxes.reduce((result, entry) => {\n if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {\n var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n return result + width;\n }\n return result;\n }, 0);\n}\nexport function selectRightAxesOffset(state) {\n var yAxes = selectAllYAxes(state);\n return yAxes.reduce((result, entry) => {\n if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {\n var width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;\n return result + width;\n }\n return result;\n }, 0);\n}\nexport function selectTopAxesOffset(state) {\n var xAxes = selectAllXAxes(state);\n return xAxes.reduce((result, entry) => {\n if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {\n var height = typeof entry.height === 'number' ? entry.height : DEFAULT_X_AXIS_HEIGHT;\n return result + height;\n }\n return result;\n }, 0);\n}\nexport function selectBottomAxesOffset(state) {\n var xAxes = selectAllXAxes(state);\n return xAxes.reduce((result, entry) => {\n if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {\n var height = typeof entry.height === 'number' ? entry.height : DEFAULT_X_AXIS_HEIGHT;\n return result + height;\n }\n return result;\n }, 0);\n}\n\n/**\n * For internal use only.\n *\n * @param root state\n * @return ChartOffsetInternal\n */\nexport var selectChartOffsetInternal = createSelector([selectChartWidth, selectChartHeight, selectMargin, selectBrushHeight, selectLeftAxesOffset, selectRightAxesOffset, selectTopAxesOffset, selectBottomAxesOffset, selectLegendSettings, selectLegendSize], (chartWidth, chartHeight, margin, brushHeight, leftAxesOffset, rightAxesOffset, topAxesOffset, bottomAxesOffset, legendSettings, legendSize) => {\n var offsetH = {\n left: (margin.left || 0) + leftAxesOffset,\n right: (margin.right || 0) + rightAxesOffset\n };\n var offsetV = {\n top: (margin.top || 0) + topAxesOffset,\n bottom: (margin.bottom || 0) + bottomAxesOffset\n };\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n offset.bottom += brushHeight;\n offset = appendOffsetOfLegend(offset, legendSettings, legendSize);\n var offsetWidth = chartWidth - offset.left - offset.right;\n var offsetHeight = chartHeight - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n});\nexport var selectChartViewBox = createSelector(selectChartOffsetInternal, offset => ({\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n}));\nexport var selectAxisViewBox = createSelector(selectChartWidth, selectChartHeight, (width, height) => ({\n x: 0,\n y: 0,\n width,\n height\n}));","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nvar PanoramaContext = /*#__PURE__*/createContext(null);\nexport var useIsPanorama = () => useContext(PanoramaContext) != null;\nexport var PanoramaContextProvider = _ref => {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(PanoramaContext.Provider, {\n value: true\n }, children);\n};","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectMargin } from './containerSelectors';\nimport { isNumber } from '../../util/DataUtils';\nexport var selectBrushSettings = state => state.brush;\nexport var selectBrushDimensions = createSelector([selectBrushSettings, selectChartOffsetInternal, selectMargin], (brushSettings, offset, margin) => ({\n height: brushSettings.height,\n x: isNumber(brushSettings.x) ? brushSettings.x : offset.left,\n y: isNumber(brushSettings.y) ? brushSettings.y : offset.top + offset.height + offset.brushBottom - ((margin === null || margin === void 0 ? void 0 : margin.bottom) || 0),\n width: isNumber(brushSettings.width) ? brushSettings.width : offset.width\n}));","//#region src/function/debounce.ts\n/**\n* Creates a debounced function that delays invoking the provided function until after `debounceMs` milliseconds\n* have elapsed since the last time the debounced function was invoked. The debounced function also has a `cancel`\n* method to cancel any pending execution.\n*\n* @template F - The type of function.\n* @param func - The function to debounce.\n* @param debounceMs - The number of milliseconds to delay.\n* @param options - The options object\n* @param options.signal - An optional AbortSignal to cancel the debounced function.\n* @param options.edges - An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.\n* @returns A new debounced function with a `cancel` method.\n*\n* @example\n* const debouncedFunction = debounce(() => {\n* console.log('Function executed');\n* }, 1000);\n*\n* // Will log 'Function executed' after 1 second if not called again in that time\n* debouncedFunction();\n*\n* // Will not log anything as the previous call is canceled\n* debouncedFunction.cancel();\n*\n* // With AbortSignal\n* const controller = new AbortController();\n* const signal = controller.signal;\n* const debouncedWithSignal = debounce(() => {\n* console.log('Function executed');\n* }, 1000, { signal });\n*\n* debouncedWithSignal();\n*\n* // Will cancel the debounced function call\n* controller.abort();\n*/\nfunction debounce(func, debounceMs, { signal, edges } = {}) {\n\tlet pendingThis = void 0;\n\tlet pendingArgs = null;\n\tconst leading = edges != null && edges.includes(\"leading\");\n\tconst trailing = edges == null || edges.includes(\"trailing\");\n\tconst invoke = () => {\n\t\tif (pendingArgs !== null) {\n\t\t\tfunc.apply(pendingThis, pendingArgs);\n\t\t\tpendingThis = void 0;\n\t\t\tpendingArgs = null;\n\t\t}\n\t};\n\tconst onTimerEnd = () => {\n\t\tif (trailing) invoke();\n\t\tcancel();\n\t};\n\tlet timeoutId = null;\n\tconst schedule = () => {\n\t\tif (timeoutId != null) clearTimeout(timeoutId);\n\t\ttimeoutId = setTimeout(() => {\n\t\t\ttimeoutId = null;\n\t\t\tonTimerEnd();\n\t\t}, debounceMs);\n\t};\n\tconst cancelTimer = () => {\n\t\tif (timeoutId !== null) {\n\t\t\tclearTimeout(timeoutId);\n\t\t\ttimeoutId = null;\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\tcancelTimer();\n\t\tpendingThis = void 0;\n\t\tpendingArgs = null;\n\t};\n\tconst flush = () => {\n\t\tinvoke();\n\t};\n\tconst debounced = function(...args) {\n\t\tif (signal?.aborted) return;\n\t\tpendingThis = this;\n\t\tpendingArgs = args;\n\t\tconst isFirstCall = timeoutId == null;\n\t\tschedule();\n\t\tif (leading && isFirstCall) invoke();\n\t};\n\tdebounced.schedule = schedule;\n\tdebounced.cancel = cancel;\n\tdebounced.flush = flush;\n\tsignal?.addEventListener(\"abort\", cancel, { once: true });\n\treturn debounced;\n}\n//#endregion\nexport { debounce };\n","import { debounce as debounce$1 } from \"../../function/debounce.mjs\";\n//#region src/compat/function/debounce.ts\nfunction debounce(func, debounceMs = 0, options = {}) {\n\tif (typeof options !== \"object\") options = {};\n\tconst { leading = false, trailing = true, maxWait } = options;\n\tconst edges = Array(2);\n\tif (leading) edges[0] = \"leading\";\n\tif (trailing) edges[1] = \"trailing\";\n\tlet result = void 0;\n\tlet pendingAt = null;\n\tconst _debounced = debounce$1(function(...args) {\n\t\tresult = func.apply(this, args);\n\t\tpendingAt = null;\n\t}, debounceMs, { edges });\n\tconst debounced = function(...args) {\n\t\tif (maxWait != null) {\n\t\t\tif (pendingAt === null) pendingAt = Date.now();\n\t\t\tif (Date.now() - pendingAt >= maxWait) {\n\t\t\t\tresult = func.apply(this, args);\n\t\t\t\tpendingAt = Date.now();\n\t\t\t\t_debounced.cancel();\n\t\t\t\t_debounced.schedule();\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\t_debounced.apply(this, args);\n\t\treturn result;\n\t};\n\tconst flush = () => {\n\t\t_debounced.flush();\n\t\treturn result;\n\t};\n\tdebounced.cancel = _debounced.cancel;\n\tdebounced.flush = flush;\n\treturn debounced;\n}\n//#endregion\nexport { debounce };\n","import { debounce } from \"./debounce.mjs\";\n//#region src/compat/function/throttle.ts\n/**\n* Creates a throttled function that only invokes the provided function at most once\n* per every `throttleMs` milliseconds. Subsequent calls to the throttled function\n* within the wait time will not trigger the execution of the original function.\n*\n* @template F - The type of function.\n* @param func - The function to throttle.\n* @param throttleMs - The number of milliseconds to throttle executions to.\n* @param options - The options object\n* @param options.signal - An optional AbortSignal to cancel the throttled function.\n* @param options.leading - If `true`, the function will be invoked on the leading edge of the timeout.\n* @param options.trailing - If `true`, the function will be invoked on the trailing edge of the timeout.\n* @returns A new throttled function that accepts the same parameters as the original function.\n*\n* @example\n* const throttledFunction = throttle(() => {\n* console.log('Function executed');\n* }, 1000);\n*\n* // Will log 'Function executed' immediately\n* throttledFunction();\n*\n* // Will not log anything as it is within the throttle time\n* throttledFunction();\n*\n* // After 1 second\n* setTimeout(() => {\n* throttledFunction(); // Will log 'Function executed'\n* }, 1000);\n*/\nfunction throttle(func, throttleMs = 0, options = {}) {\n\tconst { leading = true, trailing = true } = options;\n\treturn debounce(func, throttleMs, {\n\t\tleading,\n\t\tmaxWait: throttleMs,\n\t\ttrailing\n\t});\n}\n//#endregion\nexport { throttle };\n","/* eslint no-console: 0 */\nvar isDev = true;\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, () => args[argIndex++]));\n }\n }\n }\n};","import { isPercent } from '../util/DataUtils';\nexport var defaultResponsiveContainerProps = {\n width: '100%',\n height: '100%',\n debounce: 0,\n minWidth: 0,\n initialDimension: {\n width: -1,\n height: -1\n }\n};\nexport var calculateChartDimensions = (containerWidth, containerHeight, props) => {\n var _props$width = props.width,\n width = _props$width === void 0 ? defaultResponsiveContainerProps.width : _props$width,\n _props$height = props.height,\n height = _props$height === void 0 ? defaultResponsiveContainerProps.height : _props$height,\n aspect = props.aspect,\n maxHeight = props.maxHeight;\n\n /*\n * The containerWidth and containerHeight are already percentage based because it's set as that percentage in CSS.\n * Means we don't have to calculate percentages here.\n */\n var calculatedWidth = isPercent(width) ? containerWidth : Number(width);\n var calculatedHeight = isPercent(height) ? containerHeight : Number(height);\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight != null && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n return {\n calculatedWidth,\n calculatedHeight\n };\n};\nvar bothOverflow = {\n width: 0,\n height: 0,\n overflow: 'visible'\n};\nvar overflowX = {\n width: 0,\n overflowX: 'visible'\n};\nvar overflowY = {\n height: 0,\n overflowY: 'visible'\n};\nvar noStyle = {};\n\n/**\n * This zero-size, overflow-visible is required to allow the chart to shrink.\n * Without it, the chart itself will fill the ResponsiveContainer, and while it allows the chart to grow,\n * it would always keep the container at the size of the chart,\n * and ResizeObserver would never fire.\n * With this zero-size element, the chart itself never actually fills the container,\n * it just so happens that it is visible because it overflows.\n * I learned this trick from the `react-virtualized` library: https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/src/AutoSizer.ts\n * See https://github.com/recharts/recharts/issues/172 and also https://github.com/bvaughn/react-virtualized/issues/68\n *\n * Also, we don't need to apply the zero-size style if the dimension is a fixed number (or undefined),\n * because in that case the chart can't shrink in that dimension anyway.\n * This fixes defining the dimensions using aspect ratio: https://github.com/recharts/recharts/issues/6245\n */\nexport var getInnerDivStyle = props => {\n var width = props.width,\n height = props.height;\n var isWidthPercent = isPercent(width);\n var isHeightPercent = isPercent(height);\n if (isWidthPercent && isHeightPercent) {\n return bothOverflow;\n }\n if (isWidthPercent) {\n return overflowX;\n }\n if (isHeightPercent) {\n return overflowY;\n }\n return noStyle;\n};\nexport function getDefaultWidthAndHeight(_ref) {\n var width = _ref.width,\n height = _ref.height,\n aspect = _ref.aspect;\n var calculatedWidth = width;\n var calculatedHeight = height;\n if (calculatedWidth === undefined && calculatedHeight === undefined) {\n calculatedWidth = defaultResponsiveContainerProps.width;\n calculatedHeight = defaultResponsiveContainerProps.height;\n } else if (calculatedWidth === undefined) {\n calculatedWidth = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.width;\n } else if (calculatedHeight === undefined) {\n calculatedHeight = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.height;\n }\n return {\n width: calculatedWidth,\n height: calculatedHeight\n };\n}","var _excluded = [\"aspect\", \"initialDimension\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxHeight\", \"children\", \"debounce\", \"id\", \"className\", \"onResize\", \"style\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { clsx } from 'clsx';\nimport * as React from 'react';\nimport { createContext, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport throttle from 'es-toolkit/compat/throttle';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { calculateChartDimensions, defaultResponsiveContainerProps, getDefaultWidthAndHeight, getInnerDivStyle } from './responsiveContainerUtils';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nvar ResponsiveContainerContext = /*#__PURE__*/createContext(defaultResponsiveContainerProps.initialDimension);\nfunction isAcceptableSize(size) {\n return isPositiveNumber(size.width) && isPositiveNumber(size.height);\n}\nfunction ResponsiveContainerContextProvider(_ref) {\n var children = _ref.children,\n width = _ref.width,\n height = _ref.height;\n var size = useMemo(() => ({\n width,\n height\n }), [width, height]);\n if (!isAcceptableSize(size)) {\n /*\n * Don't render the container if width or height is non-positive because\n * in that case the chart will not be rendered properly anyway.\n * We will instead wait for the next resize event to provide the correct dimensions.\n */\n return null;\n }\n return /*#__PURE__*/React.createElement(ResponsiveContainerContext.Provider, {\n value: size\n }, children);\n}\nexport var useResponsiveContainerContext = () => useContext(ResponsiveContainerContext);\nvar SizeDetectorContainer = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var aspect = _ref2.aspect,\n _ref2$initialDimensio = _ref2.initialDimension,\n initialDimension = _ref2$initialDimensio === void 0 ? defaultResponsiveContainerProps.initialDimension : _ref2$initialDimensio,\n width = _ref2.width,\n height = _ref2.height,\n _ref2$minWidth = _ref2.minWidth,\n minWidth = _ref2$minWidth === void 0 ? defaultResponsiveContainerProps.minWidth : _ref2$minWidth,\n minHeight = _ref2.minHeight,\n maxHeight = _ref2.maxHeight,\n children = _ref2.children,\n _ref2$debounce = _ref2.debounce,\n debounce = _ref2$debounce === void 0 ? defaultResponsiveContainerProps.debounce : _ref2$debounce,\n id = _ref2.id,\n className = _ref2.className,\n onResize = _ref2.onResize,\n _ref2$style = _ref2.style,\n style = _ref2$style === void 0 ? {} : _ref2$style,\n others = _objectWithoutProperties(_ref2, _excluded);\n var containerRef = useRef(null);\n /*\n * We are using a ref to avoid re-creating the ResizeObserver when the onResize function changes.\n * The ref is updated on every render, so the latest onResize function is always available in the effect.\n */\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, () => containerRef.current);\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(() => {\n if (containerRef.current == null || typeof ResizeObserver === 'undefined') {\n return noop;\n }\n var callback = entries => {\n var _onResizeRef$current;\n var entry = entries[0];\n if (entry == null) {\n return;\n }\n var _entry$contentRect = entry.contentRect,\n containerWidth = _entry$contentRect.width,\n containerHeight = _entry$contentRect.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var _calculateChartDimens = calculateChartDimensions(containerWidth, containerHeight, {\n width,\n height,\n aspect,\n maxHeight\n }),\n calculatedWidth = _calculateChartDimens.calculatedWidth,\n calculatedHeight = _calculateChartDimens.calculatedHeight;\n warn(containerWidth < 0 || containerHeight < 0 || calculatedWidth != null && calculatedWidth > 0 || calculatedHeight != null && calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width,\n height,\n minWidth,\n minHeight,\n maxHeight\n }),\n ref: containerRef\n }, others), /*#__PURE__*/React.createElement(\"div\", {\n style: getInnerDivStyle({\n width,\n height\n })\n }, /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {\n width: calculatedWidth,\n height: calculatedHeight\n }, children)));\n});\n\n/**\n * The `ResponsiveContainer` component is a container that adjusts its width and height based on the size of its parent element.\n * It is used to create responsive charts that adapt to different screen sizes.\n *\n * This component uses the {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver} API to monitor changes to the size of its parent element.\n * If you need to support older browsers that do not support this API, you may need to include a polyfill.\n *\n * @see {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}\n *\n * @provides ResponsiveContainerContext\n */\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef((props, ref) => {\n var responsiveContainerContext = useResponsiveContainerContext();\n if (isPositiveNumber(responsiveContainerContext.width) && isPositiveNumber(responsiveContainerContext.height)) {\n /*\n * If we detect that we are already inside another ResponsiveContainer,\n * we do not attempt to add another layer of responsiveness.\n */\n return props.children;\n }\n var _getDefaultWidthAndHe = getDefaultWidthAndHeight({\n width: props.width,\n height: props.height,\n aspect: props.aspect\n }),\n width = _getDefaultWidthAndHe.width,\n height = _getDefaultWidthAndHe.height;\n\n /*\n * Let's try to get the calculated dimensions without having the div container set up.\n * Sometimes this does produce fixed, positive dimensions. If so, we can skip rendering the div and monitoring its size.\n */\n var _calculateChartDimens2 = calculateChartDimensions(undefined, undefined, {\n width,\n height,\n aspect: props.aspect,\n maxHeight: props.maxHeight\n }),\n calculatedWidth = _calculateChartDimens2.calculatedWidth,\n calculatedHeight = _calculateChartDimens2.calculatedHeight;\n if (isNumber(calculatedWidth) && isNumber(calculatedHeight)) {\n /*\n * If it just so happens that the combination of width, height, and aspect ratio\n * results in fixed dimensions, then we don't need to monitor the container's size.\n * We can just provide these fixed dimensions to the context.\n *\n * Note that here we are not checking for positive numbers;\n * if the user provides a zero or negative width/height, we will just pass that along\n * as whatever size we detect won't be helping anyway.\n */\n return /*#__PURE__*/React.createElement(ResponsiveContainerContextProvider, {\n width: calculatedWidth,\n height: calculatedHeight\n }, props.children);\n }\n /*\n * Static analysis did not produce fixed dimensions,\n * so we need to render a special div and monitor its size.\n */\n return /*#__PURE__*/React.createElement(SizeDetectorContainer, _extends({}, props, {\n width: width,\n height: height,\n ref: ref\n }));\n});","import { useEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setChartSize, setMargin } from '../state/layoutSlice';\nimport { selectChartOffsetInternal, selectChartViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';\nimport { useIsPanorama } from './PanoramaContext';\nimport { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nexport var useViewBox = () => {\n var _useAppSelector;\n var panorama = useIsPanorama();\n var rootViewBox = useAppSelector(selectChartViewBox);\n var brushDimensions = useAppSelector(selectBrushDimensions);\n var brushPadding = (_useAppSelector = useAppSelector(selectBrushSettings)) === null || _useAppSelector === void 0 ? void 0 : _useAppSelector.padding;\n if (!panorama || !brushDimensions || !brushPadding) {\n return rootViewBox;\n }\n return {\n width: brushDimensions.width - brushPadding.left - brushPadding.right,\n height: brushDimensions.height - brushPadding.top - brushPadding.bottom,\n x: brushPadding.left,\n y: brushPadding.top\n };\n};\nvar manyComponentsThrowErrorsIfOffsetIsUndefined = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0,\n brushBottom: 0\n};\n/**\n * For internal use only. If you want this information, `import { useOffset } from 'recharts'` instead.\n *\n * Returns the offset of the chart in pixels.\n *\n * @returns {ChartOffsetInternal} The offset of the chart in pixels, or a default value if not in a chart context.\n */\nexport var useOffsetInternal = () => {\n var _useAppSelector2;\n return (_useAppSelector2 = useAppSelector(selectChartOffsetInternal)) !== null && _useAppSelector2 !== void 0 ? _useAppSelector2 : manyComponentsThrowErrorsIfOffsetIsUndefined;\n};\n\n/**\n * Returns the width of the chart in pixels.\n *\n * If you are using chart with hardcoded `width` prop, then the width returned will be the same\n * as the `width` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the width will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `width` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the width.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the width number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The width of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useChartWidth = () => {\n return useAppSelector(selectChartWidth);\n};\n\n/**\n * Returns the height of the chart in pixels.\n *\n * If you are using chart with hardcoded `height` props, then the height returned will be the same\n * as the `height` prop on the main chart element.\n *\n * If you are using a chart with a `ResponsiveContainer`, the height will be the size of the chart\n * as the ResponsiveContainer has decided it would be.\n *\n * If the chart has any axes or legend, the `height` will be the size of the chart\n * including the axes and legend. Meaning: adding axes and legend will not change the height.\n *\n * The dimensions do not scale, meaning as user zoom in and out, the height number will not change\n * as the chart gets visually larger or smaller.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {number | undefined} The height of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useChartHeight = () => {\n return useAppSelector(selectChartHeight);\n};\n\n/**\n * Margin is the empty space around the chart. Excludes axes and legend and brushes and the like.\n * This is declared by the user in the chart props.\n * If you are interested in the space occupied by axes, legend, or brushes,\n * use {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @returns {Margin | undefined} The margin of the chart in pixels, or `undefined` if not in a chart context.\n */\nexport var useMargin = () => {\n return useAppSelector(state => state.layout.margin);\n};\nexport var selectChartLayout = state => state.layout.layoutType;\n\n/**\n * Returns the chart layout as configured by the chart.\n *\n * Cartesian charts use `horizontal` or `vertical`.\n * Polar charts use `centric` or `radial`.\n *\n * Returns `undefined` if used outside a chart context.\n *\n * @deprecated this hook mixes cartesian and polar layouts together; prefer to use {@link useCartesianChartLayout} and {@link usePolarChartLayout} instead, which give you better type safety.\n *\n * @returns {LayoutType | undefined} The chart layout, or `undefined` if not in a chart context.\n *\n * @since 3.9\n */\nexport var useChartLayout = () => useAppSelector(selectChartLayout);\n\n/**\n * Returns the chart layout only for Cartesian charts.\n *\n * Returns `horizontal` or `vertical` for Cartesian charts.\n * Returns `undefined` for non-Cartesian charts or outside chart context.\n *\n * @since 3.9\n *\n * @returns {CartesianLayout | undefined} The Cartesian chart layout, or `undefined`.\n */\nexport var useCartesianChartLayout = () => {\n var layout = useChartLayout();\n if (layout === 'horizontal' || layout === 'vertical') {\n return layout;\n }\n return undefined;\n};\nexport var selectPolarChartLayout = state => {\n var layout = state.layout.layoutType;\n if (layout === 'centric' || layout === 'radial') {\n return layout;\n }\n return undefined;\n};\n\n/**\n * Returns the chart layout only for Polar charts.\n *\n * Returns `centric` or `radial` for Polar charts.\n * Returns `undefined` for non-Polar charts or outside chart context.\n *\n * @returns {PolarLayout | undefined} The Polar chart layout, or `undefined`.\n *\n * @since 3.9\n */\nexport var usePolarChartLayout = () => {\n return useAppSelector(selectPolarChartLayout);\n};\n\n/**\n * Returns true if the component is rendered inside a chart context.\n * Some components may be used both inside and outside of charts,\n * and this hook allows them to determine if they are in a chart context or not.\n *\n * Other selectors may return undefined when used outside a chart context,\n * or undefined when inside a chart, but without relevant data.\n * This hook provides a more explicit way to check for chart context.\n *\n * @returns {boolean} True if in chart context, false otherwise.\n */\nexport var useIsInChartContext = () => {\n /*\n * All charts provide a layout type in the chart context.\n * If we have a layout type, we are in a chart context.\n */\n var layout = useChartLayout();\n return layout !== undefined;\n};\nexport var ReportChartSize = props => {\n var dispatch = useAppDispatch();\n\n /*\n * Skip dispatching properties in panorama chart for two reasons:\n * 1. The root chart should be deciding on these properties, and\n * 2. Brush reads these properties from redux store, and so they must remain stable\n * to avoid circular dependency and infinite re-rendering.\n */\n var isPanorama = useIsPanorama();\n var widthFromProps = props.width,\n heightFromProps = props.height;\n var responsiveContainerCalculations = useResponsiveContainerContext();\n var width = widthFromProps;\n var height = heightFromProps;\n if (responsiveContainerCalculations) {\n /*\n * In case we receive width and height from ResponsiveContainer,\n * we will always prefer those.\n * Only in case ResponsiveContainer does not provide width or height,\n * we will fall back to the explicitly provided width and height.\n *\n * This to me feels backwards - we should allow override by the more specific props on individual charts, right?\n * But this is 3.x behaviour, so let's keep it for backwards compatibility.\n *\n * We can change this in 4.x if we want to.\n */\n width = responsiveContainerCalculations.width > 0 ? responsiveContainerCalculations.width : widthFromProps;\n height = responsiveContainerCalculations.height > 0 ? responsiveContainerCalculations.height : heightFromProps;\n }\n useEffect(() => {\n if (!isPanorama && isPositiveNumber(width) && isPositiveNumber(height)) {\n dispatch(setChartSize({\n width,\n height\n }));\n }\n }, [dispatch, isPanorama, width, height]);\n return null;\n};\nexport var ReportChartMargin = _ref => {\n var margin = _ref.margin;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setMargin(margin));\n }, [dispatch, margin]);\n return null;\n};","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * The properties inside this state update independently of each other and quite often.\n * When selecting, never select the whole state because you are going to get\n * unnecessary re-renders. Select only the properties you need.\n *\n * This is why this state type is not exported - don't use it directly.\n */\n\nvar initialState = {\n settings: {\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom',\n itemSorter: 'value',\n position: undefined,\n offset: 0\n },\n size: {\n width: 0,\n height: 0\n },\n payload: []\n};\nvar legendSlice = createSlice({\n name: 'legend',\n initialState,\n reducers: {\n setLegendSize(state, action) {\n state.size.width = action.payload.width;\n state.size.height = action.payload.height;\n },\n setLegendSettings(state, action) {\n state.settings.align = action.payload.align;\n state.settings.layout = action.payload.layout;\n state.settings.verticalAlign = action.payload.verticalAlign;\n state.settings.itemSorter = action.payload.itemSorter;\n state.settings.position = action.payload.position;\n state.settings.offset = action.payload.offset;\n },\n addLegendPayload: {\n reducer(state, action) {\n state.payload.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n replaceLegendPayload: {\n reducer(state, action) {\n var _action$payload = action.payload,\n prev = _action$payload.prev,\n next = _action$payload.next;\n var index = current(state).payload.indexOf(castDraft(prev));\n if (index > -1) {\n state.payload[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeLegendPayload: {\n reducer(state, action) {\n var index = current(state).payload.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.payload.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nvar _legendSlice$actions = legendSlice.actions,\n setLegendSize = _legendSlice$actions.setLegendSize,\n setLegendSettings = _legendSlice$actions.setLegendSettings,\n addLegendPayload = _legendSlice$actions.addLegendPayload,\n replaceLegendPayload = _legendSlice$actions.replaceLegendPayload,\n removeLegendPayload = _legendSlice$actions.removeLegendPayload;\nexport { setLegendSize, setLegendSettings, addLegendPayload, replaceLegendPayload, removeLegendPayload };\nexport var legendReducer = legendSlice.reducer;","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","// src/utils/react.ts\nimport * as React from \"react\";\n\n// src/utils/react-is.ts\nvar IS_REACT_19 = /* @__PURE__ */ React.version.startsWith(\"19\");\nvar REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n IS_REACT_19 ? \"react.transitional.element\" : \"react.element\"\n);\nvar REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\nvar REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.fragment\");\nvar REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for(\"react.strict_mode\");\nvar REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for(\"react.profiler\");\nvar REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for(\"react.consumer\");\nvar REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for(\"react.context\");\nvar REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for(\"react.forward_ref\");\nvar REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense\");\nvar REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n \"react.suspense_list\"\n);\nvar REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for(\"react.memo\");\nvar REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for(\"react.lazy\");\nvar REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for(\"react.offscreen\");\nvar REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n \"react.client.reference\"\n);\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nfunction isValidElementType(type) {\n return typeof type === \"string\" || typeof type === \"function\" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === \"object\" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;\n}\nfunction typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n const { $$typeof } = object;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (object = object.type, object) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (object = object && object.$$typeof, object) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nfunction isContextConsumer(object) {\n return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/connect/verifySubselectors.ts\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === \"mapStateToProps\" || methodName === \"mapDispatchToProps\") {\n if (!Object.prototype.hasOwnProperty.call(selector, \"dependsOnOwnProps\")) {\n warning(\n `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`\n );\n }\n }\n}\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, \"mapStateToProps\");\n verify(mapDispatchToProps, \"mapDispatchToProps\");\n verify(mergeProps, \"mergeProps\");\n}\n\n// src/connect/selectorFactory.ts\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps)\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(\n nextState,\n state,\n nextOwnProps,\n ownProps\n );\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\nfunction finalPropsSelectorFactory(dispatch, {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n ...options\n}) {\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n if (process.env.NODE_ENV !== \"production\") {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n// src/utils/bindActionCreators.ts\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n return boundActionCreators;\n}\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null) return false;\n const proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n let baseProto = proto;\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n return proto === baseProto;\n}\n\n// src/utils/verifyPlainObject.ts\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(\n `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`\n );\n }\n}\n\n// src/connect/wrapMapToProps.ts\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, { displayName }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);\n };\n proxy.dependsOnOwnProps = true;\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n if (typeof props === \"function\") {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(props, displayName, methodName);\n return props;\n };\n return proxy;\n };\n}\n\n// src/connect/invalidArgFactory.ts\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(\n `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`\n );\n };\n}\n\n// src/connect/mapDispatchToProps.ts\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === \"object\" ? wrapMapToPropsConstant(\n (dispatch) => (\n // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)\n )\n ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({\n dispatch\n })) : typeof mapDispatchToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, \"mapDispatchToProps\")\n ) : createInvalidArgFactory(mapDispatchToProps, \"mapDispatchToProps\");\n}\n\n// src/connect/mapStateToProps.ts\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, \"mapStateToProps\")\n ) : createInvalidArgFactory(mapStateToProps, \"mapStateToProps\");\n}\n\n// src/connect/mergeProps.ts\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return { ...ownProps, ...stateProps, ...dispatchProps };\n}\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(mergedProps, displayName, \"mergeProps\");\n }\n return mergedProps;\n };\n };\n}\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === \"function\" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, \"mergeProps\");\n}\n\n// src/utils/batch.ts\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\n// src/utils/Subscription.ts\nfunction createListenerCollection() {\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n notify() {\n defaultNoopBatch(() => {\n let listener = first;\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get() {\n const listeners = [];\n let listener = first;\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n return listeners;\n },\n subscribe(callback) {\n let isSubscribed = true;\n const listener = last = {\n callback,\n next: null,\n prev: last\n };\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\nvar nullListeners = {\n notify() {\n },\n get: () => []\n};\nfunction createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n let subscriptionsAmount = 0;\n let selfSubscribed = false;\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener);\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n function notifyNestedSubs() {\n listeners.notify();\n }\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n function isSubscribed() {\n return selfSubscribed;\n }\n function trySubscribe() {\n subscriptionsAmount++;\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n function tryUnsubscribe() {\n subscriptionsAmount--;\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = void 0;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}\n\n// src/utils/useIsomorphicLayoutEffect.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? React.useLayoutEffect : React.useEffect;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\n\n// src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\n// src/utils/hoistStatics.ts\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS\n};\nfunction getStatics(component) {\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component[\"$$typeof\"]] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent) {\n if (typeof sourceComponent !== \"string\") {\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent);\n }\n }\n let keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {\n }\n }\n }\n }\n return targetComponent;\n}\n\n// src/components/Context.ts\nvar ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);\nvar gT = typeof globalThis !== \"undefined\" ? globalThis : (\n /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n {}\n);\nfunction getContext() {\n if (!React.createContext) return {};\n const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map();\n let realContext = contextMap.get(React.createContext);\n if (!realContext) {\n realContext = React.createContext(\n null\n );\n if (process.env.NODE_ENV !== \"production\") {\n realContext.displayName = \"ReactRedux\";\n }\n contextMap.set(React.createContext, realContext);\n }\n return realContext;\n}\nvar ReactReduxContext = /* @__PURE__ */ getContext();\n\n// src/components/connect.tsx\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\nvar stringifyComponent = (Comp) => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n}\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false;\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {\n if (!shouldHandleStateChanges) return () => {\n };\n let didUnsubscribe = false;\n let lastThrownError = null;\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n return;\n }\n const latestStoreState = store.getState();\n let newChildProps, error;\n try {\n newChildProps = childPropsSelector(\n latestStoreState,\n lastWrapperProps.current\n );\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n if (!error) {\n lastThrownError = null;\n }\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true;\n additionalSubscribeListener();\n }\n };\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n if (lastThrownError) {\n throw lastThrownError;\n }\n };\n return unsubscribeWrapper;\n}\nfunction strictEqual(a, b) {\n return a === b;\n}\nvar hasWarnedAboutDeprecatedPureOption = false;\nfunction _connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning(\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component'\n );\n }\n }\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n const wrapWithConnect = (WrappedComponent) => {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);\n if (!isValid)\n throw new Error(\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n WrappedComponent\n )}`\n );\n }\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;\n return [props.context, reactReduxForwardedRef2, wrapperProps2];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n let ResultContext = Context;\n if (propsContext?.Consumer) {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isContextConsumer(\n // @ts-ignore\n /* @__PURE__ */ React.createElement(propsContext.Consumer, null)\n );\n if (!isValid) {\n throw new Error(\n \"You must pass a valid React context consumer as `props.context`\"\n );\n }\n ResultContext = propsContext;\n }\n }\n return ResultContext;\n }, [propsContext, Context]);\n const contextValue = React.useContext(ContextToUse);\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n if (process.env.NODE_ENV !== \"production\" && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\n `Could not find \"store\" in the context of \"${displayName}\". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`\n );\n }\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;\n const subscription2 = createSubscription(\n store,\n didStoreComeFromProps ? void 0 : contextValue.subscription\n );\n const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);\n return [subscription2, notifyNestedSubs2];\n }, [store, didStoreComeFromProps, contextValue]);\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n return contextValue;\n }\n return {\n ...contextValue,\n subscription\n };\n }, [didStoreComeFromProps, contextValue, subscription]);\n const lastChildProps = React.useRef(void 0);\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef(void 0);\n const renderIsScheduled = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef(\n void 0\n );\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n }\n return childPropsSelector(store.getState(), wrapperProps);\n };\n return selector;\n }, [store, wrapperProps]);\n const subscribeForReact = React.useMemo(() => {\n const subscribe = (reactListener) => {\n if (!subscription) {\n return () => {\n };\n }\n return subscribeUpdates(\n shouldHandleStateChanges,\n store,\n subscription,\n // @ts-ignore\n childPropsSelector,\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n isMounted,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n reactListener\n );\n };\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n wrapperProps,\n childPropsFromStoreUpdate,\n notifyNestedSubs\n ]);\n let actualChildProps;\n try {\n actualChildProps = React.useSyncExternalStore(\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact,\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector,\n getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector\n );\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n`;\n }\n throw err;\n }\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = void 0;\n childPropsFromStoreUpdate.current = void 0;\n lastChildProps.current = actualChildProps;\n });\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n // @ts-ignore\n /* @__PURE__ */ React.createElement(\n WrappedComponent,\n {\n ...actualChildProps,\n ref: reactReduxForwardedRef\n }\n )\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);\n }\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n const _Connect = React.memo(ConnectFunction);\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n if (forwardRef) {\n const _forwarded = React.forwardRef(\n function forwardConnectRef(props, ref) {\n return /* @__PURE__ */ React.createElement(Connect, { ...props, reactReduxForwardedRef: ref });\n }\n );\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);\n }\n return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);\n };\n return wrapWithConnect;\n}\nvar connect = _connect;\nvar legacy_connect = _connect;\n\n// src/components/Provider.tsx\nfunction Provider(providerProps) {\n const { children, context, serverState, store } = providerProps;\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n const baseContextValue = {\n store,\n subscription,\n getServerState: serverState ? () => serverState : void 0\n };\n if (process.env.NODE_ENV === \"production\") {\n return baseContextValue;\n } else {\n const { identityFunctionCheck = \"once\", stabilityCheck = \"once\" } = providerProps;\n return /* @__PURE__ */ Object.assign(baseContextValue, {\n stabilityCheck,\n identityFunctionCheck\n });\n }\n }, [store, serverState]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = void 0;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext;\n return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);\n}\nvar Provider_default = Provider;\n\n// src/hooks/useReduxContext.ts\nfunction createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext2() {\n const contextValue = React.useContext(context);\n if (process.env.NODE_ENV !== \"production\" && !contextValue) {\n throw new Error(\n \"could not find react-redux context value; please ensure the component is wrapped in a <Provider>\"\n );\n }\n return contextValue;\n };\n}\nvar useReduxContext = /* @__PURE__ */ createReduxContextHook();\n\n// src/hooks/useStore.ts\nfunction createStoreHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (\n // @ts-ignore\n createReduxContextHook(context)\n );\n const useStore2 = () => {\n const { store } = useReduxContext2();\n return store;\n };\n Object.assign(useStore2, {\n withTypes: () => useStore2\n });\n return useStore2;\n}\nvar useStore = /* @__PURE__ */ createStoreHook();\n\n// src/hooks/useDispatch.ts\nfunction createDispatchHook(context = ReactReduxContext) {\n const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);\n const useDispatch2 = () => {\n const store = useStore2();\n return store.dispatch;\n };\n Object.assign(useDispatch2, {\n withTypes: () => useDispatch2\n });\n return useDispatch2;\n}\nvar useDispatch = /* @__PURE__ */ createDispatchHook();\n\n// src/hooks/useSelector.ts\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/with-selector.js\";\nvar refEquality = (a, b) => a === b;\nfunction createSelectorHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);\n const useSelector2 = (selector, equalityFnOrOptions = {}) => {\n const { equalityFn = refEquality } = typeof equalityFnOrOptions === \"function\" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;\n if (process.env.NODE_ENV !== \"production\") {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n if (typeof selector !== \"function\") {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n if (typeof equalityFn !== \"function\") {\n throw new Error(\n `You must pass a function as an equality function to useSelector`\n );\n }\n }\n const reduxContext = useReduxContext2();\n const { store, subscription, getServerState } = reduxContext;\n const firstRun = React.useRef(true);\n const wrappedSelector = React.useCallback(\n {\n [selector.name](state) {\n const selected = selector(state);\n if (process.env.NODE_ENV !== \"production\") {\n const { devModeChecks = {} } = typeof equalityFnOrOptions === \"function\" ? {} : equalityFnOrOptions;\n const { identityFunctionCheck, stabilityCheck } = reduxContext;\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks\n };\n if (finalStabilityCheck === \"always\" || finalStabilityCheck === \"once\" && firstRun.current) {\n const toCompare = selector(state);\n if (!equalityFn(selected, toCompare)) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization\",\n {\n state,\n selected,\n selected2: toCompare,\n stack\n }\n );\n }\n }\n if (finalIdentityFunctionCheck === \"always\" || finalIdentityFunctionCheck === \"once\" && firstRun.current) {\n if (selected === state) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned the root state when called. This can lead to unnecessary rerenders.\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.\",\n { stack }\n );\n }\n }\n if (firstRun.current) firstRun.current = false;\n }\n return selected;\n }\n }[selector.name],\n [selector]\n );\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn\n );\n React.useDebugValue(selectedState);\n return selectedState;\n };\n Object.assign(useSelector2, {\n withTypes: () => useSelector2\n });\n return useSelector2;\n}\nvar useSelector = /* @__PURE__ */ createSelectorHook();\n\n// src/exports.ts\nvar batch = defaultNoopBatch;\nexport {\n Provider_default as Provider,\n ReactReduxContext,\n batch,\n connect,\n createDispatchHook,\n createSelectorHook,\n createStoreHook,\n legacy_connect,\n shallowEqual,\n useDispatch,\n useSelector,\n useStore\n};\n//# sourceMappingURL=react-redux.mjs.map","import { shallowEqual } from 'react-redux';\nvar propsToShallowCompare = new Set(['axisLine', 'tickLine', 'activeBar', 'activeDot', 'activeLabel', 'activeShape', 'allowEscapeViewBox', 'background', 'cursor', 'dot', 'label', 'line', 'margin', 'padding', 'position', 'shape', 'style', 'tick', 'wrapperStyle',\n// radius can be an array of 4 numbers, easy to compare shallowly\n'radius', 'throttledEvents']);\n\n/**\n * When comparing two values, returns true if they are the same value or\n * are both NaN.\n *\n * If we used just a simple triple equals, we would get false negatives for two NaNs\n * which could cause extra re-renders so let's have this instead.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality\n *\n * @param x first value to compare\n * @param y second value to compare\n * return true if the same, false if different\n */\nfunction sameValueZero(x, y) {\n if (x == null && y == null) {\n /*\n * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n * so there is no need to re-render.\n */\n return true;\n }\n if (typeof x === 'number' && typeof y === 'number') {\n // x and y are equal (this is true for -0 and 0) or they are both NaN\n // eslint-disable-next-line no-self-compare\n return x === y || x !== x && y !== y;\n }\n return x === y;\n}\n\n/**\n * So usually React would compare only the first level of props using Object.is.\n * However, in our case many props are objects or arrays, and our own docs recommend to do that!\n * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.\n *\n * Because charts can and do receive large props (typically the data array),\n * we only limit this to a subset of known props that are likely to be objects/arrays.\n *\n * @param prevProps\n * @param nextProps\n */\nexport function propsAreEqual(prevProps, nextProps) {\n var allKeys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);\n for (var key of allKeys) {\n /*\n * If a key is on a special allowlist, go one level deeper\n * and do a shallow comparison of the values.\n */\n if (propsToShallowCompare.has(key)) {\n if (prevProps[key] == null && nextProps[key] == null) {\n /*\n * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n * so there is no need to re-render.\n */\n continue;\n }\n if (!shallowEqual(prevProps[key], nextProps[key])) {\n return false;\n }\n /*\n * Otherwise do a simple same-value comparison (with NaN support).\n */\n } else if (!sameValueZero(prevProps[key], nextProps[key])) {\n return false;\n }\n }\n return true;\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport * as React from 'react';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\n/**\n * @inline\n */\n\nexport var defaultDefaultTooltipContentProps = {\n separator: ' : ',\n contentStyle: {\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n },\n itemStyle: {\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: '#000'\n },\n labelStyle: {},\n accessibilityLayer: false\n};\nfunction lodashLikeSortBy(array, itemSorter) {\n if (itemSorter == null) {\n return array;\n }\n // @ts-expect-error sortBy types somehow are returning a number type.\n return sortBy(array, itemSorter);\n}\n\n/**\n * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.\n *\n * You can use this component to customize the content of the tooltip,\n * or you can provide your own completely independent content.\n */\nexport var DefaultTooltipContent = props => {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? defaultDefaultTooltipContentProps.separator : _props$separator,\n contentStyle = props.contentStyle,\n itemStyle = props.itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? defaultDefaultTooltipContentProps.labelStyle : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? defaultDefaultTooltipContentProps.accessibilityLayer : _props$accessibilityL;\n var renderContent = () => {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var sortedPayload = lodashLikeSortBy(payload, itemSorter);\n var items = sortedPayload.map((entry, i) => {\n if (!entry || entry.type === 'none') {\n return null;\n }\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else if (formatted != null) {\n finalValue = formatted;\n } else {\n return null;\n }\n }\n var finalItemStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.itemStyle), {}, {\n color: entry.color || defaultDefaultTooltipContentProps.itemStyle.color\n }, itemStyle);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''));\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread(_objectSpread({}, defaultDefaultTooltipContentProps.contentStyle), contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNullish(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","import { clsx } from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, {\n [\"\".concat(CSS_CLASS_PREFIX, \"-right\")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x,\n [\"\".concat(CSS_CLASS_PREFIX, \"-left\")]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x,\n [\"\".concat(CSS_CLASS_PREFIX, \"-bottom\")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y,\n [\"\".concat(CSS_CLASS_PREFIX, \"-top\")]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y\n });\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offset = _ref2.offset,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - (offset > 0 ? offset : 0);\n var positive = coordinate[key] + offset;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n var viewBoxKey = viewBox[key];\n if (viewBoxKey == null) {\n return 0;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBoxKey;\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBoxKey);\n }\n return Math.max(negative, viewBoxKey);\n }\n if (viewBoxDimension == null) {\n return 0;\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBoxKey + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBoxKey);\n }\n return Math.max(positive, viewBoxKey);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTop = _ref4.offsetTop,\n offsetLeft = _ref4.offsetLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox && tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox,\n coordinate,\n key: 'x',\n offset: offsetLeft,\n position,\n reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox,\n coordinate,\n key: 'y',\n offset: offsetTop,\n position,\n reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX,\n translateY,\n useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX,\n translateY,\n coordinate\n })\n };\n}","var parseIsSsrByDefault = () => !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);\nexport var Global = {\n devToolsEnabled: true,\n isSsr: parseIsSsrByDefault()\n};","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { useEffect, useState } from 'react';\nimport { Global } from './Global';\n\n/**\n * Detects and subscribes to the user's `prefers-reduced-motion` system preference.\n * Returns `true` when the user prefers reduced motion, `false` otherwise.\n * SSR-safe: always returns `false` during server-side rendering.\n */\nexport function usePrefersReducedMotion() {\n var _useState = useState(() => {\n if (Global.isSsr) {\n return false;\n }\n if (!window.matchMedia) {\n return false;\n }\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n prefersReducedMotion = _useState2[0],\n setPrefersReducedMotion = _useState2[1];\n useEffect(() => {\n if (!window.matchMedia) {\n return;\n }\n var mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n var handleChange = () => {\n setPrefersReducedMotion(mediaQuery.matches);\n };\n mediaQuery.addEventListener('change', handleChange);\n // eslint-disable-next-line consistent-return\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n return prefersReducedMotion;\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nimport { usePrefersReducedMotion } from '../util/usePrefersReducedMotion';\nfunction resolveTransitionProperty(args) {\n if (args.prefersReducedMotion && args.isAnimationActive === 'auto') {\n return undefined;\n }\n if (args.isAnimationActive && args.active) {\n var easing = typeof args.animationEasing === 'string' ? args.animationEasing : 'ease';\n return \"transform \".concat(args.animationDuration, \"ms \").concat(easing);\n }\n return undefined;\n}\nfunction TooltipBoundingBoxImpl(props) {\n var _props$coordinate3, _props$coordinate4, _props$coordinate$x2, _props$coordinate5, _props$coordinate$y2, _props$coordinate6;\n var prefersReducedMotion = usePrefersReducedMotion();\n var _React$useState = React.useState(() => ({\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n })),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n setState = _React$useState2[1];\n React.useEffect(() => {\n var handleKeyDown = event => {\n if (event.key === 'Escape') {\n var _props$coordinate$x, _props$coordinate, _props$coordinate$y, _props$coordinate2;\n setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_props$coordinate$x = (_props$coordinate = props.coordinate) === null || _props$coordinate === void 0 ? void 0 : _props$coordinate.x) !== null && _props$coordinate$x !== void 0 ? _props$coordinate$x : 0,\n y: (_props$coordinate$y = (_props$coordinate2 = props.coordinate) === null || _props$coordinate2 === void 0 ? void 0 : _props$coordinate2.y) !== null && _props$coordinate$y !== void 0 ? _props$coordinate$y : 0\n }\n });\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [(_props$coordinate3 = props.coordinate) === null || _props$coordinate3 === void 0 ? void 0 : _props$coordinate3.x, (_props$coordinate4 = props.coordinate) === null || _props$coordinate4 === void 0 ? void 0 : _props$coordinate4.y]);\n if (state.dismissed && (((_props$coordinate$x2 = (_props$coordinate5 = props.coordinate) === null || _props$coordinate5 === void 0 ? void 0 : _props$coordinate5.x) !== null && _props$coordinate$x2 !== void 0 ? _props$coordinate$x2 : 0) !== state.dismissedAtCoordinate.x || ((_props$coordinate$y2 = (_props$coordinate6 = props.coordinate) === null || _props$coordinate6 === void 0 ? void 0 : _props$coordinate6.y) !== null && _props$coordinate$y2 !== void 0 ? _props$coordinate$y2 : 0) !== state.dismissedAtCoordinate.y)) {\n setState(_objectSpread(_objectSpread({}, state), {}, {\n dismissed: false\n }));\n }\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: props.allowEscapeViewBox,\n coordinate: props.coordinate,\n offsetLeft: typeof props.offset === 'number' ? props.offset : props.offset.x,\n offsetTop: typeof props.offset === 'number' ? props.offset : props.offset.y,\n position: props.position,\n reverseDirection: props.reverseDirection,\n tooltipBox: props.lastBoundingBox,\n useTranslate3d: props.useTranslate3d,\n viewBox: props.viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var positionStyle = props.hasPortalFromProps ? {} : _objectSpread(_objectSpread({\n transition: resolveTransitionProperty({\n prefersReducedMotion,\n isAnimationActive: props.isAnimationActive,\n active: props.active,\n animationDuration: props.animationDuration,\n animationEasing: props.animationEasing\n })\n }, cssProperties), {}, {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0\n });\n var outerStyle = _objectSpread(_objectSpread({}, positionStyle), {}, {\n visibility: !state.dismissed && props.active && props.hasPayload ? 'visible' : 'hidden'\n }, props.wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n // @ts-expect-error TypeScript library does not recognize xmlns attribute, but it's required for an HTML chunk inside SVG.\n xmlns: \"http://www.w3.org/1999/xhtml\",\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: props.innerRef\n }, props.children);\n}\nexport var TooltipBoundingBox = /*#__PURE__*/React.memo(TooltipBoundingBoxImpl);","import { useAppSelector } from '../state/hooks';\nexport var useAccessibilityLayer = () => {\n var _useAppSelector;\n return (_useAppSelector = useAppSelector(state => state.rootProps.accessibilityLayer)) !== null && _useAppSelector !== void 0 ? _useAppSelector : true;\n};","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport * as React from 'react';\nimport { area as shapeArea, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, line as shapeLine } from 'victory-vendor/d3-shape';\nimport { clsx } from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { isNumber, upperFirst } from '../util/DataUtils';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { useChartLayout } from '../context/chartLayoutContext';\nvar CURVE_FACTORIES = {\n curveBasisClosed,\n curveBasisOpen,\n curveBasis,\n curveBumpX,\n curveBumpY,\n curveLinearClosed,\n curveLinear,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nvar defined = p => isWellBehavedNumber(p.x) && isWellBehavedNumber(p.y);\nvar areaDefined = d => d.base != null && defined(d.base) && defined(d);\nvar getX = p => p.x;\nvar getY = p => p.y;\nvar getCurveFactory = (type, layout) => {\n if (typeof type === 'function') {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n var factory = CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n if (factory) {\n return factory;\n }\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\n// Mouse event handlers receive the full Props, including the event handlers themselves.\n\nexport var defaultCurveProps = {\n connectNulls: false,\n type: 'linear'\n};\n\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = _ref => {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? defaultCurveProps.type : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? defaultCurveProps.connectNulls : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(defined) : points;\n\n // When dealing with an area chart (where `baseLine` is an array),\n // we need to pair points with their corresponding `baseLine` points first.\n // This is to ensure that we filter points and their baseline counterparts together,\n // preventing errors from mismatched array lengths and ensuring `defined` checks both.\n if (Array.isArray(baseLine)) {\n var _lineFunction;\n var areaPoints = points.map((entry, index) => _objectSpread(_objectSpread({}, entry), {}, {\n base: baseLine[index]\n }));\n if (layout === 'vertical') {\n _lineFunction = shapeArea().y(getY).x1(getX).x0(d => d.base.x);\n } else {\n _lineFunction = shapeArea().x(getX).y1(getY).y0(d => d.base.y);\n }\n /*\n * What happens here is that the `.defined()` call will make it so that this function can accept\n * nullable points, and internally it will filter them out and skip when generating the path.\n * So on the input it accepts NullableCoordinate, but it never calls getX/getY on null points because of the defined() filter.\n *\n * The d3 type definition has only one generic so it doesn't allow to describe this properly.\n * However. d3 types are mutable, but we can pretend that they are not, and we can pretend\n * that calling defined() returns a new function with a different generic type.\n */\n // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\n var _nullableLineFunction = _lineFunction.defined(areaDefined).curve(curveFactory);\n var finalPoints = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;\n return _nullableLineFunction(finalPoints);\n }\n var lineFunction;\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\n var nullableLineFunction = lineFunction.defined(defined).curve(curveFactory);\n return nullableLineFunction(formatPoints);\n};\nexport var Curve = props => {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n var layout = useChartLayout();\n if ((!points || !points.length) && !path) {\n return null;\n }\n var getPathInput = {\n type: props.type,\n points: props.points,\n baseLine: props.baseLine,\n layout: props.layout || layout,\n connectNulls: props.connectNulls\n };\n var realPath = points && points.length ? getPath(getPathInput) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesNoEvents(props), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath === null ? undefined : realPath,\n ref: pathRef\n }));\n};","var _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/**\n * @fileOverview Cross\n */\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nvar getPath = (x, y, width, height, top, left) => {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = _ref => {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x,\n y,\n top,\n left,\n width,\n height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(props), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","export var ACCURACY = 1e-4;\nvar cubicBezierFactor = (c1, c2) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\nvar evaluatePolynomial = (params, animationElapsedTime) => params.map((param, i) => param * animationElapsedTime ** i).reduce((pre, curr) => pre + curr);\nvar cubicBezier = (c1, c2) => animationElapsedTime => {\n var params = cubicBezierFactor(c1, c2);\n return evaluatePolynomial(params, animationElapsedTime);\n};\nvar derivativeCubicBezier = (c1, c2) => animationElapsedTime => {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [...params.map((param, i) => param * i).slice(1), 0];\n return evaluatePolynomial(newParams, animationElapsedTime);\n};\nvar parseCubicBezier = easing => {\n var _easingParts$;\n var easingParts = easing.split('(');\n if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {\n return null;\n }\n var numbers = (_easingParts$ = easingParts[1]) === null || _easingParts$ === void 0 || (_easingParts$ = _easingParts$.split(')')[0]) === null || _easingParts$ === void 0 ? void 0 : _easingParts$.split(',');\n if (numbers == null || numbers.length !== 4) {\n return null;\n }\n var coords = numbers.map(x => parseFloat(x));\n return [coords[0], coords[1], coords[2], coords[3]];\n};\nvar getBezierCoordinates = function getBezierCoordinates() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n return [0.0, 0.0, 1.0, 1.0];\n case 'ease':\n return [0.25, 0.1, 0.25, 1.0];\n case 'ease-in':\n return [0.42, 0.0, 1.0, 1.0];\n case 'ease-out':\n return [0.42, 0.0, 0.58, 1.0];\n case 'ease-in-out':\n return [0.0, 0.0, 0.58, 1.0];\n default:\n {\n var easing = parseCubicBezier(args[0]);\n if (easing) {\n return easing;\n }\n }\n }\n }\n if (args.length === 4) {\n return args;\n }\n\n // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.\n // Returning linear easing is a safe default.\n return [0.0, 0.0, 1.0, 1.0];\n};\nvar createBezierEasing = (x1, y1, x2, y2) => {\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = value => {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = _animationElapsedTime => {\n var animationElapsedTime = _animationElapsedTime > 1 ? 1 : _animationElapsedTime;\n var x = animationElapsedTime;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - animationElapsedTime;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - animationElapsedTime) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n return createBezierEasing(...getBezierCoordinates(...arguments));\n};\n/**\n * Creates a performance-optimized, progress-based spring easing function.\n * It pre-calculates (\"bakes\") spring physics frames upfront based on a fixed duration,\n * then returns a pure, lightweight function mapping progress (0 to 1) to the animated position.\n * This approach is ideal for low-power devices because it removes heavy physics math from the frame loop.\n */\nexport var createSpringEasing = function createSpringEasing() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 16.67 : _config$dt;\n var destX = 1;\n var positions = [0];\n var currX = 0;\n var currV = 0;\n\n // Safety valve to prevent accidental infinite loops if physics config is extreme\n var maxIterations = 10000;\n var iterations = 0;\n\n // 1. Run the simulation until the spring completely stops moving\n while (iterations < maxIterations) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n currV += (FSpring - FDamping) * dt / 1000;\n currX += currV * dt / 1000;\n positions.push(currX);\n\n // Stop only when position is essentially at 1.0 AND bounce velocity has died down\n if (Math.abs(currX - destX) < ACCURACY && Math.abs(currV) < ACCURACY) {\n break;\n }\n iterations++;\n }\n\n // Force the absolute final element to be exactly 1.0 for a perfect finish\n positions[positions.length - 1] = destX;\n var maxIndex = positions.length - 1;\n\n // 2. The ultra-smooth runtime function mapping your 0..1 progress\n return t => {\n var _positions$index, _positions, _positions$index2;\n if (t <= 0) return 0;\n if (t >= 1) return destX;\n\n // Scale t (0..1) proportionally across our entire pre-calculated array\n var exactFrame = t * maxIndex;\n var index = Math.floor(exactFrame);\n var fraction = exactFrame - index;\n\n // Blend between the two closest frames\n return ((_positions$index = positions[index]) !== null && _positions$index !== void 0 ? _positions$index : 0) + (((_positions = positions[index + 1]) !== null && _positions !== void 0 ? _positions : 0) - ((_positions$index2 = positions[index]) !== null && _positions$index2 !== void 0 ? _positions$index2 : 0)) * fraction;\n };\n};\n\n/**\n * @inline\n */\n\nexport var createEasingFunction = easing => {\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return createSpringEasing();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n return null;\n};","/**\n * JavaScript animations require trigger and repaint as soon as possible,\n * so this class uses the timeoutController to trigger updates as quickly as the controller allows.\n *\n * JavaScript animation progress is represented as a stream of values. The exact type depends on the animationHandle type.\n * Each individual consumer is then responsible for mapping those values onto a React component.\n */\nexport var animationControllerImpl = (timeoutController, animationHandle, listener) => {\n var cancellable;\n var nextUpdate = now => {\n var timeRemaining = animationHandle.tick(now);\n if (animationHandle.getState() === 'active') {\n listener(animationHandle.getInterpolated());\n if (animationHandle.getProgress() === 1) {\n animationHandle.complete();\n cancellable = undefined;\n return;\n }\n cancellable = timeoutController.setTimeout(nextUpdate, timeRemaining);\n return;\n }\n cancellable = timeoutController.setTimeout(nextUpdate, timeRemaining);\n };\n cancellable = timeoutController.setTimeout(nextUpdate, 0);\n return () => {\n var _cancellable;\n return (_cancellable = cancellable) === null || _cancellable === void 0 ? void 0 : _cancellable();\n };\n};","import { createContext, useContext, useMemo } from 'react';\nimport { animationControllerImpl } from './AnimationControllerImpl';\nvar AnimationControllerContext = /*#__PURE__*/createContext(animationControllerImpl);\n\n/**\n * Allows overriding the default AnimationController that Recharts uses internally to drive animations.\n * The default one uses requestAnimationFrame-based TimeoutController, and ticks through the animations\n * as time moves forward.\n *\n * Why would you want to use this? Several reasons:\n * - Unit tests are an excellent use (Recharts itself has ton of tests with mock TimeoutController)\n * - If you want to animate charts back and forth (Recharts only animates forward)\n * - If you want to replace requestAnimationFrame with something else\n * - Perhaps a manual animation controls (https://recharts.github.io does this)\n * - If you want to maybe animate charts based on mouse movement, or page scroll position, instead of time\n *\n * If you don't use this provider then all charts use the default requestAnimationFrame and default animation logic.\n *\n * If you use this component then all charts inside use your custom animationController.\n *\n * @see {@link https://recharts.github.io/en-US/guide/animations/ Animation guide}\n *\n * @since 3.9\n */\nexport var AnimationControllerProvider = AnimationControllerContext.Provider;\nexport function useAnimationController(animationControllerFromProps) {\n var animationControllerFromContext = useContext(AnimationControllerContext);\n return useMemo(() => animationControllerFromProps !== null && animationControllerFromProps !== void 0 ? animationControllerFromProps : animationControllerFromContext, [animationControllerFromProps, animationControllerFromContext]);\n}","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// eslint-disable-next-line max-classes-per-file\nimport { interpolate } from '../util/DataUtils';\nvar INIT = 'init';\nvar PENDING = 'pending';\nvar ACTIVE = 'active';\nvar COMPLETED = 'completed';\nfunction duration(time) {\n return Math.max(0, time);\n}\nclass RechartsAnimation {\n /**\n * Returns the absolute time after the animationBegin delay has been completed,\n * and when the animationDuration started ticking.\n */\n getAnimationStartedTime() {\n return this.animationStartedTime;\n }\n\n /**\n * Returns the absolute time of when the animation began - now it will wait for {animationBegin} ms before the transition starts\n */\n getBeginStartedTime() {\n return this.beginStartedTime;\n }\n constructor(param) {\n var _param$onAnimationSta;\n _defineProperty(this, \"state\", INIT);\n this.animationId = param.animationId;\n this.onAnimationEnd = param.onAnimationEnd;\n this.animationDuration = duration(param.animationDuration);\n this.animationBegin = duration(param.animationBegin);\n this.progress = 0;\n this.from = param.from;\n this.to = param.to;\n this.easing = param.easing;\n // Mimic what the previous animationManager was doing - call onAnimationStart immediately and synchronously\n (_param$onAnimationSta = param.onAnimationStart) === null || _param$onAnimationSta === void 0 || _param$onAnimationSta.call(param);\n }\n /**\n * Returns the state machine current state\n * - `init`: animation had just been created. It immediately calls `onAnimationStart`\n * - `pending`: animation is now paused for `animationBegin` milliseconds until the transition begins\n * - `active`: animation is transitioning items on screen\n * - `completed`: animation has completed its transition and executed `onAnimationEnd`.\n * This state is final and the animation is no longer allowed to transition to other states.\n */\n getState() {\n return this.state;\n }\n\n /**\n * Returns the easing input or function\n */\n getEasing() {\n return this.easing;\n }\n\n /**\n * Returns the configuration - the duration of the transition.\n * Does not change in time, does not change when state changes, this is a static value.\n */\n getAnimationDuration() {\n return this.animationDuration;\n }\n\n /**\n * Sets the current time of the animation. The animation sets its internal state and progress accordingly.\n * This is current, absolute time; not additive!\n * This allows you to essentially \"travel back in time\" based on the value you pass in here.\n *\n * Returns the (relative) time remaining until the current activity is over.\n * Meaning: if the state is in a middle of a delay, returns the time left until the delay is finished.\n * If the state is in the middle of a transition, returns time left until that transition is complete.\n * This is useful because it's the same number you can take and put into setTimeout(fn, X)\n * as that's how much time we need to wait until the next state transition happens.\n */\n tick(now) {\n if (this.getState() === INIT) {\n this.state = PENDING;\n this.beginStartedTime = now;\n return this.animationBegin;\n }\n if (this.getState() === PENDING) {\n if (this.beginStartedTime == null) {\n throw new Error();\n }\n var _timeElapsed = now - this.beginStartedTime;\n if (_timeElapsed >= this.animationBegin) {\n this.state = ACTIVE;\n this.animationStartedTime = now;\n // The state flipped just now so the elapsed time is zero\n return this.nextAnimationUpdate(0);\n }\n return duration(this.animationBegin - _timeElapsed);\n }\n if (this.getState() === ACTIVE) {\n if (this.animationStartedTime == null) {\n throw new Error();\n }\n var _timeElapsed2 = now - this.animationStartedTime;\n this.setProgress(_timeElapsed2 / this.animationDuration);\n return this.nextAnimationUpdate(_timeElapsed2);\n }\n\n // state === COMPLETED, nothing interesting is going to happen\n return 0;\n }\n setProgress(newProgress) {\n this.progress = Math.min(1, Math.max(0, newProgress));\n }\n\n /**\n * Returns an abstract \"progress\" which is number between 0 and 1 which shows the distance of transition.\n * This progress depends on the animation state:\n * - `init`: 0\n * - `pending`: 0\n * - `active`: transitioning between [0, 1] based on the time elapsed\n * - `completed`: 1\n *\n * The progress is hard-capped to be between 0 and 1 (inclusive) to avoid overshooting caused by coarse timers.\n * For this reason, the easing function must be applied _after_ this animation state,\n * so that one has a chance to construct dynamic \"overshoot\" animations.\n *\n * The progress is linear with time.\n * If you wish for easing, use `getInterpolated()` instead.\n */\n getProgress() {\n return this.progress;\n }\n\n /**\n * Completes the animation. Completed animation:\n * - cannot be manipulated anymore\n * - its progress is set to 1\n * - tick function doesn't do anything\n * - getState() always returns 'completed'\n */\n complete() {\n this.progress = 1;\n if (this.state === 'active') {\n var _this$onAnimationEnd;\n // Do not call callbacks if the animation was interrupted before it even started!\n (_this$onAnimationEnd = this.onAnimationEnd) === null || _this$onAnimationEnd === void 0 || _this$onAnimationEnd.call(this);\n }\n this.state = COMPLETED;\n }\n\n /**\n * Returns the starting value of the animation.\n * Does not include progress, easing, interpolation, none of that - just the static starting value\n */\n getFrom() {\n return this.from;\n }\n\n /**\n * Returns the end value of the animation.\n * Does not include progress, easing, interpolation, none of that - just the static end value\n */\n getTo() {\n return this.to;\n }\n\n /**\n * Unique identifier of an animation\n */\n getAnimationId() {\n return this.animationId;\n }\n\n /**\n * Returns the configuration - the duration of delay in between animation initialization, and transition.\n * Does not change in time, does not change when state changes, this is a static value.\n */\n getAnimationBegin() {\n return this.animationBegin;\n }\n\n /**\n * Returns value of the transition at the current time.\n * The exact details differ based on the animation type\n */\n\n /**\n * Returns the duration of time of when the controller should ask for the next update\n */\n}\n\n/**\n * Animation handle representing a Javascript-based animation.\n * This animation requires one render cycle for each frame, and it calls setTimeout as quickly as possible\n *\n * @since 3.9\n */\nexport class JavascriptAnimation extends RechartsAnimation {\n // eslint-disable-next-line class-methods-use-this\n nextAnimationUpdate() {\n /*\n * JavaScript-based animations have to update as soon as possible,\n * so we return 0 here to indicate that the next update should be scheduled immediately\n * and it should trigger render on every occasion.\n */\n return 0;\n }\n\n /**\n * Returns value of the animation after its easing function had been applied.\n * This value, unlike getProgress(), can escape the [0..1] range\n * because this is entirely within the easing function control. Spring typically does this.\n */\n getInterpolated() {\n return this.easing(interpolate(this.getFrom(), this.getTo(), this.getProgress()));\n }\n}\n\n/**\n * Animation handle representing a CSS transition.\n * This animation requires only one render, and the actual transition is then handled by the browser.\n *\n * @since 3.9\n */\nexport class CSSTransitionAnimation extends RechartsAnimation {\n nextAnimationUpdate(timeElapsed) {\n /**\n * CSS transitions do not need DOM updates past the initial render\n * so here we just instruct the controller to wait until the animation duration is over.\n */\n return duration(this.animationDuration - timeElapsed);\n }\n\n /**\n * Returns the final value of the animation (the `to`).\n *\n * CSS transitions leave both interpolation and easing to the browser,\n * so all we need to do here is return the final state\n * and let browser handle the rest.\n */\n getInterpolated() {\n return this.getTo();\n }\n}\n\n/**\n * Recharts animation state machine.\n *\n * Possible transitions are:\n * - `init`: starting state - `onAnimationStart` executes\n * - `init` to `pending` - `animationBegin` duration begins\n * - `pending` to `active` - `animationDuration` duration begins, timer ticks decide the progress\n * - `active` to `completed` - `onAnimationEnd` executes\n *\n * The state always moves in this direction, cannot move backwards.\n *\n * The animation queue is static and consists of four elements:\n * - `onAnimationStart`: function that is called when the animation is created\n * - `animationBegin`: delay between `onAnimationStart` and the transition\n * - the transition itself, takes `animationDuration` ms to finish\n * - `onAnimationEnd`: function that is called when the animation is moving from `active` to `completed`\n *\n * @see {@link https://recharts.github.io/en-US/guide/animations/ Animation guide}\n *\n * @since 3.9\n */","/**\n * Callback type for the timeout function.\n * Receives current time as an argument.\n */\n\n/**\n * A function that, when called, cancels the timeout.\n *\n * @since 3.9\n */\n\n/**\n * TimeoutController is responsible for controlling the movement of time.\n * Think of it as a clock.\n *\n * Recharts default implementation uses requestAnimationFrame which works great in a browser.\n * You may choose to override this which is especially useful if you want to control animations.\n *\n * Why would you want to do this?\n * - unit tests\n * - animations based on something other than time: UI controls, page scroll, mouse movement ...\n *\n * @see {@link https://recharts.github.io/en-US/guide/animations/ Animation guide}\n *\n * @since 3.9\n */\n\nexport class RequestAnimationFrameTimeoutController {\n setTimeout(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var startTime = performance.now();\n var requestId = null;\n var executeCallback = now => {\n if (now - startTime >= delay) {\n callback(now);\n } else {\n requestId = requestAnimationFrame(executeCallback);\n }\n };\n requestId = requestAnimationFrame(executeCallback);\n return () => {\n if (requestId != null) {\n cancelAnimationFrame(requestId);\n }\n };\n }\n}","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { useEffect, useState } from 'react';\nimport { noop } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { createEasingFunction } from './easing';\nimport { useAnimationController } from './useAnimationController';\nimport { Global } from '../util/Global';\nimport { usePrefersReducedMotion } from '../util/usePrefersReducedMotion';\nimport { JavascriptAnimation } from './AnimationHandle';\nimport { RequestAnimationFrameTimeoutController } from './timeoutController';\nvar defaultJavascriptAnimateProps = {\n begin: 0,\n duration: 1000,\n easing: 'ease',\n isActive: true,\n canBegin: true,\n onAnimationEnd: () => {},\n onAnimationStart: () => {}\n};\nvar from = 0;\nvar to = 1;\nexport function JavascriptAnimate(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultJavascriptAnimateProps);\n var animationId = props.animationId,\n isActiveProp = props.isActive,\n canBegin = props.canBegin,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart,\n children = props.children;\n var prefersReducedMotion = usePrefersReducedMotion();\n var isActive = isActiveProp === 'auto' ? !Global.isSsr && !prefersReducedMotion : isActiveProp;\n var animationController = useAnimationController(props.animationController);\n var _useState = useState(isActive ? from : to),\n _useState2 = _slicedToArray(_useState, 2),\n style = _useState2[0],\n setStyle = _useState2[1];\n useEffect(() => {\n if (!isActive) {\n setStyle(to);\n }\n }, [isActive]);\n useEffect(() => {\n var easingFunction = createEasingFunction(easing);\n if (!isActive || !canBegin || easingFunction == null) {\n return noop;\n }\n var timeoutController = new RequestAnimationFrameTimeoutController();\n var animation = new JavascriptAnimation({\n animationId,\n easing: easingFunction,\n animationDuration: duration,\n animationBegin: begin,\n onAnimationStart,\n onAnimationEnd,\n from,\n to\n });\n return animationController(timeoutController, animation, setStyle);\n }, [animationController, animationId, isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd]);\n return children(Number(style));\n}","import { useRef } from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * This hook returns a unique animation id for the object input.\n * If input changes (as in, reference equality is different), the animation id will change.\n * If input does not change, the animation id will not change.\n *\n * This is useful for animations. The Animate component\n * does have a `shouldReAnimate` prop but that doesn't seem to be doing what the name implies.\n * Also, we don't always want to re-animate on every render;\n * we only want to re-animate when the input changes. Not the internal state (e.g. `isAnimating`).\n *\n * @param input The object to check for changes. Uses reference equality (=== operator)\n * @param prefix Optional prefix to use for the animation id\n * @returns A unique animation id\n */\nexport function useAnimationId(input) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'animation-';\n var animationId = useRef(uniqueId(prefix));\n var prevProps = useRef(input);\n if (prevProps.current !== input) {\n animationId.current = uniqueId(prefix);\n prevProps.current = input;\n }\n return animationId.current;\n}","/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = name => name.replace(/([A-Z])/g, v => \"-\".concat(v.toLowerCase()));\nexport var getTransitionVal = (props, duration, easing) => props.map(prop => \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing)).join(',');","var _excluded = [\"radius\"],\n _excluded2 = [\"radius\"];\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\n/**\n * @fileOverview Rectangle\n */\nimport * as React from 'react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { interpolate } from '../util/DataUtils';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { getTransitionVal } from '../animation/util';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { round, roundTemplateLiteral } from '../util/round';\n\n/**\n * @inline\n */\n\nvar getRectanglePath = (x, y, width, height, radius) => {\n var roundedWidth = round(width);\n var roundedHeight = round(height);\n var maxRadius = Math.min(Math.abs(roundedWidth) / 2, Math.abs(roundedHeight) / 2);\n var ySign = roundedHeight >= 0 ? 1 : -1;\n var xSign = roundedWidth >= 0 ? 1 : -1;\n var clockWise = roundedHeight >= 0 && roundedWidth >= 0 || roundedHeight < 0 && roundedWidth < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && Array.isArray(radius)) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n var _radius$i;\n var r = (_radius$i = radius[i]) !== null && _radius$i !== void 0 ? _radius$i : 0;\n newRadius[i] = r > maxRadius ? maxRadius : r;\n }\n path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M\", \",\", \"\"])), x, y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\", \",\", \"\"])), newRadius[0], newRadius[0], clockWise, x + xSign * newRadius[0], y);\n }\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + width - xSign * newRadius[1], y);\n if (newRadius[1] > 0) {\n path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[1], newRadius[1], clockWise, x + width, y + ySign * newRadius[1]);\n }\n path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + width, y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[2], newRadius[2], clockWise, x + width - xSign * newRadius[2], y + height);\n }\n path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + xSign * newRadius[3], y + height);\n if (newRadius[3] > 0) {\n path += roundTemplateLiteral(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[3], newRadius[3], clockWise, x, y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = roundTemplateLiteral(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"M \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \" Z\"])), x, y + ySign * _newRadius, _newRadius, _newRadius, clockWise, x + xSign * _newRadius, y, x + width - xSign * _newRadius, y, _newRadius, _newRadius, clockWise, x + width, y + ySign * _newRadius, x + width, y + height - ySign * _newRadius, _newRadius, _newRadius, clockWise, x + width - xSign * _newRadius, y + height, x + xSign * _newRadius, y + height, _newRadius, _newRadius, clockWise, x, y + height - ySign * _newRadius);\n } else {\n path = roundTemplateLiteral(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral([\"M \", \",\", \" h \", \" v \", \" h \", \" Z\"])), x, y, width, height, -width);\n }\n return path;\n};\nexport var defaultRectangleProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\n/**\n * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners\n * and animation.\n *\n * This component accepts X and Y coordinates in pixels.\n * If you need to position the rectangle based on your chart's data,\n * consider using the {@link ReferenceArea} component instead.\n *\n * @param rectangleProps\n * @constructor\n */\nexport var Rectangle = rectangleProps => {\n var props = resolveDefaultProps(rectangleProps, defaultRectangleProps);\n var pathRef = useRef(null);\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(() => {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (_unused) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n var prevWidthRef = useRef(width);\n var prevHeightRef = useRef(height);\n var prevXRef = useRef(x);\n var prevYRef = useRef(y);\n var animationIdInput = useMemo(() => ({\n x,\n y,\n width,\n height,\n radius\n }), [x, y, width, height, radius]);\n var animationId = useAnimationId(animationIdInput, 'rectangle-');\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n var _svgPropertiesAndEven = svgPropertiesAndEvents(props),\n _ = _svgPropertiesAndEven.radius,\n otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven, _excluded);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, otherPathProps, {\n x: round(x),\n y: round(y),\n width: round(width),\n height: round(height),\n radius: typeof radius === 'number' ? radius : undefined,\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n var prevWidth = prevWidthRef.current;\n var prevHeight = prevHeightRef.current;\n var prevX = prevXRef.current;\n var prevY = prevYRef.current;\n var from = \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\");\n var to = \"\".concat(totalLength, \"px \").concat(totalLength, \"px\");\n var transition = getTransitionVal(['strokeDasharray'], animationDuration, typeof animationEasing === 'string' ? animationEasing : defaultRectangleProps.animationEasing);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n key: animationId,\n canBegin: totalLength > 0,\n duration: animationDuration,\n easing: animationEasing,\n isActive: isUpdateAnimationActive,\n begin: animationBegin\n }, animationElapsedTime => {\n var currWidth = interpolate(prevWidth, width, animationElapsedTime);\n var currHeight = interpolate(prevHeight, height, animationElapsedTime);\n var currX = interpolate(prevX, x, animationElapsedTime);\n var currY = interpolate(prevY, y, animationElapsedTime);\n if (pathRef.current) {\n prevWidthRef.current = currWidth;\n prevHeightRef.current = currHeight;\n prevXRef.current = currX;\n prevYRef.current = currY;\n }\n var animationStyle;\n if (!isAnimationActive) {\n animationStyle = {\n strokeDasharray: to\n };\n } else if (animationElapsedTime > 0) {\n animationStyle = {\n transition,\n strokeDasharray: to\n };\n } else {\n animationStyle = {\n strokeDasharray: from\n };\n }\n var _svgPropertiesAndEven2 = svgPropertiesAndEvents(props),\n _ = _svgPropertiesAndEven2.radius,\n otherPathProps = _objectWithoutProperties(_svgPropertiesAndEven2, _excluded2);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, otherPathProps, {\n radius: typeof radius === 'number' ? radius : undefined,\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef,\n style: _objectSpread(_objectSpread({}, animationStyle), props.style)\n }));\n });\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = angle => angle * Math.PI / 180;\nexport var radianToDegree = angleInRadian => angleInRadian * 180 / Math.PI;\nexport var polarToCartesian = (cx, cy, radius, angle) => ({\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n});\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0,\n brushBottom: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\nvar distanceBetweenPoints = (point, anotherPoint) => {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);\n};\nvar getAngleOfPoint = (_ref, _ref2) => {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x,\n y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius,\n angle: 0\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian\n };\n};\nvar formatAngleOfSector = _ref3 => {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSector = (angle, _ref4) => {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = (_ref5, viewBox) => {\n var x = _ref5.relativeX,\n y = _ref5.relativeY;\n var _getAngleOfPoint = getAngleOfPoint({\n x,\n y\n }, viewBox),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return null;\n }\n if (radius === 0) {\n return null;\n }\n var _formatAngleOfSector = formatAngleOfSector(viewBox),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n radius,\n angle: reverseFormatAngleOfSector(formatAngle, viewBox)\n });\n }\n return null;\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx,\n cy,\n radius,\n startAngle,\n endAngle\n };\n}","var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\nvar getDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = _ref => {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center,\n circleTangency,\n lineTangency,\n theta\n };\n};\nvar getSectorPath = _ref2 => {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M \", \",\", \"\\n A \", \",\", \",0,\\n \", \",\", \",\\n \", \",\", \"\\n \"])), outerStartPoint.x, outerStartPoint.y, outerRadius, outerRadius, +(Math.abs(angle) > 180), +(startAngle > tempEndAngle), outerEndPoint.x, outerEndPoint.y);\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"L \", \",\", \"\\n A \", \",\", \",0,\\n \", \",\", \",\\n \", \",\", \" Z\"])), innerEndPoint.x, innerEndPoint.y, innerRadius, innerRadius, +(Math.abs(angle) > 180), +(startAngle <= tempEndAngle), innerStartPoint.x, innerStartPoint.y);\n } else {\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \" Z\"])), cx, cy);\n }\n return path;\n};\nvar getSectorWithCorner = _ref3 => {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx,\n cy,\n radius: outerRadius,\n angle: startAngle,\n sign,\n cornerRadius,\n cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx,\n cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius,\n cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"M \", \",\", \"\\n a\", \",\", \",0,0,1,\", \",0\\n a\", \",\", \",0,0,1,\", \",0\\n \"])), solt.x, solt.y, cornerRadius, cornerRadius, cornerRadius * 2, cornerRadius, cornerRadius, -cornerRadius * 2);\n }\n return getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n var path = roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"M \", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n A\", \",\", \",0,\", \",\", \",\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n \"])), solt.x, solt.y, cornerRadius, cornerRadius, +(sign < 0), soct.x, soct.y, outerRadius, outerRadius, +(outerArcAngle > 180), +(sign < 0), eoct.x, eoct.y, cornerRadius, cornerRadius, +(sign < 0), eolt.x, eolt.y);\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx,\n cy,\n radius: innerRadius,\n angle: startAngle,\n sign,\n isExternal: true,\n cornerRadius,\n cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx,\n cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius,\n cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"L\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n A\", \",\", \",0,\", \",\", \",\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"Z\"])), eilt.x, eilt.y, cornerRadius, cornerRadius, +(sign < 0), eict.x, eict.y, innerRadius, innerRadius, +(innerArcAngle > 180), +(sign > 0), sict.x, sict.y, cornerRadius, cornerRadius, +(sign < 0), silt.x, silt.y);\n } else {\n path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"L\", \",\", \"Z\"])), cx, cy);\n }\n return path;\n};\n\n/**\n * SVG cx, cy are `string | number | undefined`, but internally we use `number` so let's\n * override the types here.\n */\n\nexport var defaultSectorProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = sectorProps => {\n var props = resolveDefaultProps(sectorProps, defaultSectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle\n });\n } else {\n path = getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(props), {\n className: layerClass,\n d: path\n }));\n};","import { polarToCartesian } from '../PolarUtils';\nimport { isPolarCoordinate } from '../types';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n if (layout === 'horizontal') {\n return [{\n x: activeCoordinate.x,\n y: offset.top\n }, {\n x: activeCoordinate.x,\n y: offset.top + offset.height\n }];\n }\n if (layout === 'vertical') {\n return [{\n x: offset.left,\n y: activeCoordinate.y\n }, {\n x: offset.left + offset.width,\n y: activeCoordinate.y\n }];\n }\n if (isPolarCoordinate(activeCoordinate)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n return [{\n x: innerPoint.x,\n y: innerPoint.y\n }, {\n x: outerPoint.x,\n y: outerPoint.y\n }];\n }\n return getRadialCursorPoints(activeCoordinate);\n }\n return undefined;\n}","import { isSymbol } from \"../predicate/isSymbol.mjs\";\n//#region src/compat/util/toNumber.ts\n/**\n* Converts `value` to a number.\n*\n* Unlike `Number()`, this function returns `NaN` for symbols.\n*\n* @param value - The value to convert.\n* @returns Returns the number.\n*\n* @example\n* toNumber(3.2); // => 3.2\n* toNumber(Number.MIN_VALUE); // => 5e-324\n* toNumber(Infinity); // => Infinity\n* toNumber('3.2'); // => 3.2\n* toNumber(Symbol.iterator); // => NaN\n* toNumber(NaN); // => NaN\n*/\nfunction toNumber(value) {\n\tif (isSymbol(value)) return NaN;\n\treturn Number(value);\n}\n//#endregion\nexport { toNumber };\n","import { toNumber } from \"./toNumber.mjs\";\n//#region src/compat/util/toFinite.ts\n/**\n* Converts `value` to a finite number.\n*\n* @param value - The value to convert.\n* @returns Returns the number.\n*\n* @example\n* toFinite(3.2); // => 3.2\n* toFinite(Number.MIN_VALUE); // => 5e-324\n* toFinite(Infinity); // => 1.7976931348623157e+308\n* toFinite('3.2'); // => 3.2\n* toFinite(Symbol.iterator); // => 0\n* toFinite(NaN); // => 0\n*/\nfunction toFinite(value) {\n\tif (!value) return value === 0 ? value : 0;\n\tvalue = toNumber(value);\n\tif (value === Infinity || value === -Infinity) return (value < 0 ? -1 : 1) * Number.MAX_VALUE;\n\treturn value === value ? value : 0;\n}\n//#endregion\nexport { toFinite };\n","import { toFinite } from \"../util/toFinite.mjs\";\nimport { isIterateeCall } from \"../_internal/isIterateeCall.mjs\";\n//#region src/compat/math/range.ts\n/**\n* Returns an array of numbers from `start` (inclusive) to `end` (exclusive), incrementing by `step`.\n*\n* @param start - The starting number of the range (inclusive).\n* @param end - The end number of the range (exclusive).\n* @param step - The step value for the range.\n* @returns An array of numbers from `start` (inclusive) to `end` (exclusive) with the specified `step`.\n*\n* @example\n* // Returns [0, 1, 2, 3]\n* range(4);\n*\n* @example\n* // Returns [0, -1, -2, -3]\n* range(0, -4, -1);\n*/\nfunction range(start, end, step) {\n\tif (step && typeof step !== \"number\" && isIterateeCall(start, end, step)) end = step = void 0;\n\tstart = toFinite(start);\n\tif (end === void 0) {\n\t\tend = start;\n\t\tstart = 0;\n\t} else end = toFinite(end);\n\tstep = step === void 0 ? start < end ? 1 : -1 : toFinite(step);\n\tconst length = Math.max(Math.ceil((end - start) / (step || 1)), 0);\n\tconst result = new Array(length);\n\tfor (let index = 0; index < length; index++) {\n\t\tresult[index] = start;\n\t\tstart += step;\n\t}\n\treturn result;\n}\n//#endregion\nexport { range };\n","import { createSelector } from 'reselect';\n/**\n * This selector always returns the data with the indexes set by a Brush.\n * Trouble is, that might or might not be what you want.\n *\n * In charts with Brush, you will sometimes want to select the full range of data, and sometimes the one decided by the Brush\n * - even if the Brush is active, the panorama inside the Brush should show the full range of data.\n *\n * So instead of this selector, consider using either selectChartDataAndAlwaysIgnoreIndexes or selectChartDataWithIndexesIfNotInPanorama\n *\n * @param state RechartsRootState\n * @returns data defined on the chart root element, such as BarChart or ScatterChart\n */\nexport var selectChartDataWithIndexes = state => state.chartData;\n\n/**\n * This selector will always return the full range of data, ignoring the indexes set by a Brush.\n * Useful for when you want to render the full range of data, even if a Brush is active.\n * For example: in the Brush panorama, in Legend, in Tooltip.\n */\nexport var selectChartDataAndAlwaysIgnoreIndexes = createSelector([selectChartDataWithIndexes], dataState => {\n var dataEndIndex = dataState.chartData != null ? dataState.chartData.length - 1 : 0;\n return {\n chartData: dataState.chartData,\n computedData: dataState.computedData,\n dataEndIndex,\n dataStartIndex: 0\n };\n});\nexport var selectChartDataWithIndexesIfNotInPanoramaPosition4 = (state, _unused1, _unused2, isPanorama) => {\n if (isPanorama) {\n return selectChartDataAndAlwaysIgnoreIndexes(state);\n }\n return selectChartDataWithIndexes(state);\n};\nexport var selectChartDataWithIndexesIfNotInPanoramaPosition3 = (state, _unused1, isPanorama) => {\n if (isPanorama) {\n return selectChartDataAndAlwaysIgnoreIndexes(state);\n }\n return selectChartDataWithIndexes(state);\n};\n\n/**\n * Returns the chart-level data slice (respecting Brush indexes), memoized by content so that\n * spurious Immer reference changes (e.g. dispatching `setChartData(undefined)` when data is\n * already `undefined`) do not propagate to downstream selectors.\n *\n * Used when a selector needs chart-level data but must avoid extra recomputes when the\n * data content has not actually changed.\n */\nexport var selectChartDataSliceIfNotInPanorama = createSelector([selectChartDataWithIndexesIfNotInPanoramaPosition4], _ref => {\n var chartData = _ref.chartData,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n return chartData != null ? chartData.slice(dataStartIndex, dataEndIndex + 1) : [];\n});\n\n/**\n * Returns the chart-level data slice (ignoring Brush indexes), memoized by content.\n * Used in tooltip and polar selectors that always need the full data range.\n */\nexport var selectChartDataSliceIgnoringIndexes = createSelector([selectChartDataAndAlwaysIgnoreIndexes], _ref2 => {\n var chartData = _ref2.chartData,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n return chartData != null ? chartData.slice(dataStartIndex, dataEndIndex + 1) : [];\n});\n\n/**\n * Returns the chart-level data slice (with Brush indexes applied), memoized by content.\n * Used in tooltip selectors.\n */\nexport var selectChartDataSliceWithIndexes = createSelector([selectChartDataWithIndexes], _ref3 => {\n var chartData = _ref3.chartData,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n return chartData != null ? chartData.slice(dataStartIndex, dataEndIndex + 1) : [];\n});","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { MAX_VALUE_REG, MIN_VALUE_REG } from './ChartUtils';\nimport { isNumber } from './DataUtils';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nexport function isWellFormedNumberDomain(v) {\n if (Array.isArray(v) && v.length === 2) {\n var _v = _slicedToArray(v, 2),\n min = _v[0],\n max = _v[1];\n if (isWellBehavedNumber(min) && isWellBehavedNumber(max)) {\n return true;\n }\n }\n return false;\n}\nexport function extendDomain(providedDomain, boundaryDomain, allowDataOverflow) {\n if (allowDataOverflow) {\n // If the data are allowed to overflow - we're fine with whatever user provided\n return providedDomain;\n }\n /*\n * If the data are not allowed to overflow - we need to extend the domain.\n * Means that effectively the user is allowed to make the domain larger\n * but not smaller.\n */\n return [Math.min(providedDomain[0], boundaryDomain[0]), Math.max(providedDomain[1], boundaryDomain[1])];\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n *\n * This function does not accept data as an argument.\n * This is to enable a performance optimization - if the domain is there,\n * and we know what it is without traversing all the data,\n * then we don't have to traverse all the data!\n *\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param allowDataOverflow boolean, provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function numericalDomainSpecifiedWithoutRequiringData(userDomain, allowDataOverflow) {\n if (!allowDataOverflow) {\n // Cannot compute data overflow if the data is not provided\n return undefined;\n }\n if (typeof userDomain === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n if (Array.isArray(userDomain) && userDomain.length === 2) {\n var _userDomain = _slicedToArray(userDomain, 2),\n providedMin = _userDomain[0],\n providedMax = _userDomain[1];\n var finalMin, finalMax;\n if (isWellBehavedNumber(providedMin)) {\n finalMin = providedMin;\n } else if (typeof providedMin === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n if (isWellBehavedNumber(providedMax)) {\n finalMax = providedMax;\n } else if (typeof providedMax === 'function') {\n // The user function expects the data to be provided as an argument\n return undefined;\n }\n var candidate = [finalMin, finalMax];\n if (isWellFormedNumberDomain(candidate)) {\n return candidate;\n }\n }\n return undefined;\n}\n\n/**\n * So Recharts allows users to provide their own domains,\n * but it also places some expectations on what the domain is.\n * We can improve on the typescript typing, but we also need a runtime test\n * to observe that the user-provided domain is well-formed,\n * that is: an array with exactly two numbers.\n * If the user-provided domain is not well-formed,\n * this function will return undefined - in which case we should traverse the data to calculate the real domain.\n *\n * This function is for parsing the numerical domain only.\n *\n * You are probably thinking, why does domain need tick count?\n * Well it adjusts the domain based on where the \"nice ticks\" land, and nice ticks depend on the tick count.\n *\n * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too.\n * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization\n * @param allowDataOverflow provided by users. If true then the data domain wins\n *\n * @return [min, max] domain if it's well-formed; undefined if the domain is invalid\n */\nexport function parseNumericalUserDomain(userDomain, dataDomain, allowDataOverflow) {\n if (!allowDataOverflow && dataDomain == null) {\n // Cannot compute data overflow if the data is not provided\n return undefined;\n }\n if (typeof userDomain === 'function' && dataDomain != null) {\n try {\n var result = userDomain(dataDomain, allowDataOverflow);\n if (isWellFormedNumberDomain(result)) {\n return extendDomain(result, dataDomain, allowDataOverflow);\n }\n } catch (_unused) {\n /* ignore the exception and compute domain from data later */\n }\n }\n if (Array.isArray(userDomain) && userDomain.length === 2) {\n var _userDomain2 = _slicedToArray(userDomain, 2),\n providedMin = _userDomain2[0],\n providedMax = _userDomain2[1];\n var finalMin, finalMax;\n if (providedMin === 'auto') {\n if (dataDomain != null) {\n finalMin = Math.min(...dataDomain);\n }\n } else if (isNumber(providedMin)) {\n finalMin = providedMin;\n } else if (typeof providedMin === 'function') {\n try {\n if (dataDomain != null) {\n finalMin = providedMin(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0]);\n }\n } catch (_unused2) {\n /* ignore the exception and compute domain from data later */\n }\n } else if (typeof providedMin === 'string' && MIN_VALUE_REG.test(providedMin)) {\n var match = MIN_VALUE_REG.exec(providedMin);\n if (match == null || match[1] == null || dataDomain == null) {\n finalMin = undefined;\n } else {\n var value = +match[1];\n finalMin = dataDomain[0] - value;\n }\n } else {\n finalMin = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[0];\n }\n if (providedMax === 'auto') {\n if (dataDomain != null) {\n finalMax = Math.max(...dataDomain);\n }\n } else if (isNumber(providedMax)) {\n finalMax = providedMax;\n } else if (typeof providedMax === 'function') {\n try {\n if (dataDomain != null) {\n finalMax = providedMax(dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1]);\n }\n } catch (_unused3) {\n /* ignore the exception and compute domain from data later */\n }\n } else if (typeof providedMax === 'string' && MAX_VALUE_REG.test(providedMax)) {\n var _match = MAX_VALUE_REG.exec(providedMax);\n if (_match == null || _match[1] == null || dataDomain == null) {\n finalMax = undefined;\n } else {\n var _value = +_match[1];\n finalMax = dataDomain[1] + _value;\n }\n } else {\n finalMax = dataDomain === null || dataDomain === void 0 ? void 0 : dataDomain[1];\n }\n var candidate = [finalMin, finalMax];\n if (isWellFormedNumberDomain(candidate)) {\n if (dataDomain == null) {\n return candidate;\n }\n return extendDomain(candidate, dataDomain, allowDataOverflow);\n }\n }\n return undefined;\n}","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","/**\n * @fileOverview Some common arithmetic methods\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\n\n/**\n * Get the digit count of a number.\n * If the absolute value is in the interval [0.1, 1), the result is 0.\n * If the absolute value is in the interval [0.01, 0.1), the digit count is -1.\n * If the absolute value is in the interval [0.001, 0.01), the digit count is -2.\n *\n * @param {Number} value The number\n * @return {Integer} Digit count\n */\nfunction getDigitCount(value) {\n var result;\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n return result;\n}\n\n/**\n * Get the data in the interval [start, end) with a fixed step.\n * Also handles JS calculation precision issues.\n *\n * @param {Decimal} start Start point\n * @param {Decimal} end End point, not included\n * @param {Decimal} step Step size\n * @return {Array} Array of numbers\n */\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = [];\n\n // magic number to prevent infinite loop\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n return result;\n}\nexport { rangeStep, getDigitCount };","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { getDigitCount, rangeStep } from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\nexport var getValidInterval = _ref => {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n var validMin = min,\n validMax = max;\n\n // exchange\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n return [validMin, validMax];\n};\n\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param roughStep The rough step calculated by dividing the difference by the tickCount\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param correctionFactor A correction factor\n * @return The step which is easy to understand between two ticks\n */\nexport var getAdaptiveStep = (roughStep, allowDecimals, correctionFactor) => {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n var digitCount = getDigitCount(roughStep.toNumber());\n // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue);\n // When an integer and a float multiplied, the accuracy of result may be wrong\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? new Decimal(formatStep.toNumber()) : new Decimal(Math.ceil(formatStep.toNumber()));\n};\n/**\n * The snap125 step algorithm snaps to nice numbers (1, 2, 2.5, 5) at each\n * order of magnitude, producing human-friendly tick intervals like\n * 0, 5, 10, 15, 20 instead of 0, 4, 8, 12, 16.\n *\n * This is opt-in and can be enabled via the `niceTicks` prop on axis components.\n *\n * @param roughStep The rough step calculated by dividing the difference by the tickCount\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param correctionFactor A correction factor\n * @return The step which is easy to understand between two ticks\n */\nexport var getSnap125Step = (roughStep, allowDecimals, correctionFactor) => {\n var _NICE_STEPS$niceIdx;\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n var NICE_STEPS = [1, 2, 2.5, 5];\n var roughNum = roughStep.toNumber();\n var exponent = Math.floor(new Decimal(roughNum).abs().log(10).toNumber());\n var magnitude = new Decimal(10).pow(exponent);\n\n // normalized is in the range [1, 10)\n var normalized = roughStep.div(magnitude).toNumber();\n\n // Find the smallest nice step >= normalized (ceiling)\n var niceIdx = NICE_STEPS.findIndex(s => s >= normalized - 1e-10);\n if (niceIdx === -1) {\n // normalized > 5 (e.g. 7.3), move to next order of magnitude\n magnitude = magnitude.mul(10);\n niceIdx = 0;\n }\n\n // Apply correction factor by stepping through the nice number sequence\n niceIdx += correctionFactor;\n if (niceIdx >= NICE_STEPS.length) {\n var extraMag = Math.floor(niceIdx / NICE_STEPS.length);\n niceIdx %= NICE_STEPS.length;\n magnitude = magnitude.mul(new Decimal(10).pow(extraMag));\n }\n var niceStep = (_NICE_STEPS$niceIdx = NICE_STEPS[niceIdx]) !== null && _NICE_STEPS$niceIdx !== void 0 ? _NICE_STEPS$niceIdx : 1;\n var formatStep = new Decimal(niceStep).mul(magnitude);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep.toNumber()));\n};\n\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param value The minimum value which is also the maximum value\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @return array of ticks\n */\nexport var getTickOfSingleValue = (value, tickCount, allowDecimals) => {\n var step = new Decimal(1);\n // calculate the middle value of ticks\n var middle = new Decimal(value);\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var ticks = [];\n for (var i = 0; i < tickCount; i++) {\n ticks.push(middle.add(new Decimal(i - middleIndex).mul(step)).toNumber());\n }\n return ticks;\n};\n\n/**\n * Calculate the step\n *\n * @param min The minimum value of an interval\n * @param max The maximum value of an interval\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param correctionFactor A correction factor\n * @return The step, minimum value of ticks, maximum value of ticks\n */\nvar _calculateStep = function calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var stepFn = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : getAdaptiveStep;\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n }\n\n // The step which is easy to understand between two ticks\n var step = stepFn(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);\n\n // A medial value of ticks\n var middle;\n\n // When 0 is inside the interval, 0 should be a tick\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2);\n // minus modulo value\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return _calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1, stepFn);\n }\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n return {\n step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n};\n\n/**\n * Calculate the ticks of an interval. Ticks can appear outside the interval\n * if it makes them more rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount The count of ticks\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param niceTicksMode The algorithm to use for calculating nice ticks.\n * @return array of ticks\n */\nexport { _calculateStep as calculateStep };\nexport var getNiceTickValues = function getNiceTickValues(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin, ...Array(tickCount - 1).fill(Infinity)] : [...Array(tickCount - 1).fill(-Infinity), cormax];\n return min > max ? _values.reverse() : _values;\n }\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n var stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;\n\n // Get the step between two ticks\n var _calculateStep2 = _calculateStep(cormin, cormax, count, allowDecimals, 0, stepFn),\n step = _calculateStep2.step,\n tickMin = _calculateStep2.tickMin,\n tickMax = _calculateStep2.tickMax;\n var values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? values.reverse() : values;\n};\n\n/**\n * Calculate the ticks of an interval.\n * Ticks will be constrained to the interval [min, max] even if it makes them less rounded and nice.\n *\n * @param tuple of [min,max] min: The minimum value, max: The maximum value\n * @param tickCount The count of ticks. This function may return less than tickCount ticks if the interval is too small.\n * @param allowDecimals Allow the ticks to be decimals or not\n * @param niceTicksMode The algorithm to use for calculating nice ticks. See {@link NiceTicksAlgorithm}.\n * @return array of ticks\n */\nexport var getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref5, tickCount) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';\n // More than two ticks should be return\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n if (cormin === cormax) {\n return [cormin];\n }\n var stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;\n var count = Math.max(tickCount, 2);\n var step = stepFn(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];\n if (allowDecimals === false) {\n /*\n * allowDecimals is false means that we want to have integer ticks.\n * The step is guaranteed to be an integer in the code above which is great start\n * but when the first step is not an integer, it will start stepping from a decimal value anyway.\n * So we need to round all the values to integers after the fact.\n * The domain boundary (cormax) is appended after the rangeStep values. When\n * cormax rounds down to the same integer as the last rangeStep value, we end up\n * with a duplicate trailing tick. Remove it.\n */\n values = values.map(value => Math.round(value));\n var last = values.length - 1;\n if (last > 0 && values[last] === values[last - 1]) {\n values = values.slice(0, last);\n }\n }\n return min > max ? values.reverse() : values;\n};","export var selectRootMaxBarSize = state => state.rootProps.maxBarSize;\nexport var selectBarGap = state => state.rootProps.barGap;\nexport var selectBarCategoryGap = state => state.rootProps.barCategoryGap;\nexport var selectRootBarSize = state => state.rootProps.barSize;\nexport var selectStackOffsetType = state => state.rootProps.stackOffset;\nexport var selectReverseStackOrder = state => state.rootProps.reverseStackOrder;\nexport var selectChartName = state => state.options.chartName;\nexport var selectSyncId = state => state.rootProps.syncId;\nexport var selectSyncMethod = state => state.rootProps.syncMethod;\nexport var selectEventEmitter = state => state.options.eventEmitter;\nexport var selectChartBaseValue = state => state.rootProps.baseValue;","/**\n * A collection of all default zIndex values used by Recharts.\n *\n * You can reuse these, or you can define your own.\n */\nexport var DefaultZIndexes = {\n /**\n * CartesianGrid and PolarGrid\n */\n grid: -100,\n /**\n * Background of Bar and RadialBar.\n * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.\n */\n barBackground: -50,\n /*\n * other chart elements or custom elements without specific zIndex\n * render in here, at zIndex 0\n */\n\n /**\n * Area, Pie, Radar, and ReferenceArea\n */\n area: 100,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.\n * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.\n */\n cursorRectangle: 200,\n /**\n * Bar and RadialBar\n */\n bar: 300,\n /**\n * Line and ReferenceLine, and ErrorBor\n */\n line: 400,\n /**\n * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children\n */\n axis: 500,\n /**\n * Scatter and ReferenceDot,\n * and Dots of Line and Area and Radar if they have dot=true\n */\n scatter: 600,\n /**\n * Hovering over a Bar or RadialBar renders a highlight rectangle\n */\n activeBar: 1000,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area, usually a cross or a box.\n * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.\n * It renders above the Line and Scatter so that it is always visible.\n * It renders below active dot so that the dot is always visible and shows the current point.\n * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.\n *\n * This also applies to the radial cursor in RadialBarChart.\n */\n cursorLine: 1100,\n /**\n * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot\n */\n activeDot: 1200,\n /**\n * LabelList and Label, including Axis labels\n */\n label: 2000\n};","import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nexport var defaultPolarAngleAxisProps = {\n allowDecimals: false,\n allowDuplicatedCategory: true,\n // if I set this to false then Tooltip synchronisation stops working in Radar, wtf\n allowDataOverflow: false,\n angle: 0,\n angleAxisId: 0,\n axisLine: true,\n axisLineType: 'polygon',\n cx: 0,\n cy: 0,\n hide: false,\n includeHidden: false,\n label: false,\n niceTicks: 'auto',\n orientation: 'outer',\n reversed: false,\n scale: 'auto',\n tick: true,\n tickLine: true,\n tickSize: 8,\n type: 'auto',\n zIndex: DefaultZIndexes.axis\n};","import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nexport var defaultPolarRadiusAxisProps = {\n allowDataOverflow: false,\n allowDecimals: false,\n allowDuplicatedCategory: true,\n angle: 0,\n axisLine: true,\n includeHidden: false,\n hide: false,\n niceTicks: 'auto',\n label: false,\n orientation: 'right',\n radiusAxisId: 0,\n reversed: false,\n scale: 'auto',\n stroke: '#ccc',\n tick: true,\n tickCount: 5,\n tickLine: true,\n type: 'auto',\n zIndex: DefaultZIndexes.axis\n};","export var combineAxisRangeWithReverse = (axisSettings, axisRange) => {\n if (!axisSettings || !axisRange) {\n return undefined;\n }\n if (axisSettings !== null && axisSettings !== void 0 && axisSettings.reversed) {\n return [axisRange[1], axisRange[0]];\n }\n return axisRange;\n};","import { isCategoricalAxis } from './ChartUtils';\n\n/**\n * This function evaluates the \"auto\" axis domain type based on the chart layout and axis type.\n * It outputs a definitive axis domain type that can be used for further processing.\n */\nexport function getAxisTypeBasedOnLayout(layout, axisType, axisDomainType) {\n if (axisDomainType !== 'auto') {\n return axisDomainType;\n }\n if (layout == null) {\n return undefined;\n }\n return isCategoricalAxis(layout, axisType) ? 'category' : 'number';\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createSelector } from 'reselect';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { getMaxRadius } from '../../util/PolarUtils';\nimport { getPercentValue } from '../../util/DataUtils';\nimport { defaultPolarAngleAxisProps } from '../../polar/defaultPolarAngleAxisProps';\nimport { defaultPolarRadiusAxisProps } from '../../polar/defaultPolarRadiusAxisProps';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { selectChartLayout, selectPolarChartLayout } from '../../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../../util/getAxisTypeBasedOnLayout';\nexport var implicitAngleAxis = {\n allowDataOverflow: defaultPolarAngleAxisProps.allowDataOverflow,\n allowDecimals: defaultPolarAngleAxisProps.allowDecimals,\n allowDuplicatedCategory: false,\n // defaultPolarAngleAxisProps.allowDuplicatedCategory has it set to true but the actual axis rendering ignores the prop because reasons,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarAngleAxisProps.angleAxisId,\n includeHidden: false,\n name: undefined,\n reversed: defaultPolarAngleAxisProps.reversed,\n scale: defaultPolarAngleAxisProps.scale,\n tick: defaultPolarAngleAxisProps.tick,\n tickCount: undefined,\n ticks: undefined,\n type: defaultPolarAngleAxisProps.type,\n unit: undefined,\n niceTicks: 'auto'\n};\nexport var implicitRadiusAxis = {\n allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,\n allowDecimals: defaultPolarRadiusAxisProps.allowDecimals,\n allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarRadiusAxisProps.radiusAxisId,\n includeHidden: defaultPolarRadiusAxisProps.includeHidden,\n name: undefined,\n reversed: defaultPolarRadiusAxisProps.reversed,\n scale: defaultPolarRadiusAxisProps.scale,\n tick: defaultPolarRadiusAxisProps.tick,\n tickCount: defaultPolarRadiusAxisProps.tickCount,\n ticks: undefined,\n type: defaultPolarRadiusAxisProps.type,\n unit: undefined,\n niceTicks: 'auto'\n};\nvar selectAngleAxisNoDefaults = (state, angleAxisId) => {\n if (angleAxisId == null) {\n return undefined;\n }\n return state.polarAxis.angleAxis[angleAxisId];\n};\nexport var selectAngleAxis = createSelector([selectAngleAxisNoDefaults, selectPolarChartLayout], (angleAxisSettings, layout) => {\n var _getAxisTypeBasedOnLa;\n if (angleAxisSettings != null) {\n return angleAxisSettings;\n }\n var evaluatedType = (_getAxisTypeBasedOnLa = getAxisTypeBasedOnLayout(layout, 'angleAxis', implicitAngleAxis.type)) !== null && _getAxisTypeBasedOnLa !== void 0 ? _getAxisTypeBasedOnLa : 'category';\n return _objectSpread(_objectSpread({}, implicitAngleAxis), {}, {\n type: evaluatedType\n });\n});\nvar selectRadiusAxisNoDefaults = (state, radiusAxisId) => {\n return state.polarAxis.radiusAxis[radiusAxisId];\n};\nexport var selectRadiusAxis = createSelector([selectRadiusAxisNoDefaults, selectPolarChartLayout], (radiusAxisSettings, layout) => {\n var _getAxisTypeBasedOnLa2;\n if (radiusAxisSettings != null) {\n return radiusAxisSettings;\n }\n var evaluatedType = (_getAxisTypeBasedOnLa2 = getAxisTypeBasedOnLayout(layout, 'radiusAxis', implicitRadiusAxis.type)) !== null && _getAxisTypeBasedOnLa2 !== void 0 ? _getAxisTypeBasedOnLa2 : 'category';\n return _objectSpread(_objectSpread({}, implicitRadiusAxis), {}, {\n type: evaluatedType\n });\n});\nexport var selectPolarOptions = state => state.polarOptions;\nexport var selectMaxRadius = createSelector([selectChartWidth, selectChartHeight, selectChartOffsetInternal], getMaxRadius);\nvar selectInnerRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {\n if (polarChartOptions == null) {\n return undefined;\n }\n return getPercentValue(polarChartOptions.innerRadius, maxRadius, 0);\n});\nexport var selectOuterRadius = createSelector([selectPolarOptions, selectMaxRadius], (polarChartOptions, maxRadius) => {\n if (polarChartOptions == null) {\n return undefined;\n }\n return getPercentValue(polarChartOptions.outerRadius, maxRadius, maxRadius * 0.8);\n});\nvar combineAngleAxisRange = polarOptions => {\n if (polarOptions == null) {\n return [0, 0];\n }\n var startAngle = polarOptions.startAngle,\n endAngle = polarOptions.endAngle;\n return [startAngle, endAngle];\n};\nexport var selectAngleAxisRange = createSelector([selectPolarOptions], combineAngleAxisRange);\nexport var selectAngleAxisRangeWithReversed = createSelector([selectAngleAxis, selectAngleAxisRange], combineAxisRangeWithReverse);\nexport var selectRadiusAxisRange = createSelector([selectMaxRadius, selectInnerRadius, selectOuterRadius], (maxRadius, innerRadius, outerRadius) => {\n if (maxRadius == null || innerRadius == null || outerRadius == null) {\n return undefined;\n }\n return [innerRadius, outerRadius];\n});\nexport var selectRadiusAxisRangeWithReversed = createSelector([selectRadiusAxis, selectRadiusAxisRange], combineAxisRangeWithReverse);\nexport var selectPolarViewBox = createSelector([selectChartLayout, selectPolarOptions, selectInnerRadius, selectOuterRadius, selectChartWidth, selectChartHeight], (layout, polarOptions, innerRadius, outerRadius, width, height) => {\n if (layout !== 'centric' && layout !== 'radial' || polarOptions == null || innerRadius == null || outerRadius == null) {\n return undefined;\n }\n var cx = polarOptions.cx,\n cy = polarOptions.cy,\n startAngle = polarOptions.startAngle,\n endAngle = polarOptions.endAngle;\n return {\n cx: getPercentValue(cx, width, width / 2),\n cy: getPercentValue(cy, height, height / 2),\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise: false // this property look useful, why not use it?\n };\n});","export var pickAxisType = (_state, axisType) => axisType;","export var pickAxisId = (_state, _axisType, axisId) => axisId;","/**\n * Returns identifier for stack series which is one individual graphical item in the stack.\n * @param graphicalItem - The graphical item representing the series in the stack.\n * @return The identifier for the series in the stack\n */\nexport function getStackSeriesIdentifier(graphicalItem) {\n return graphicalItem === null || graphicalItem === void 0 ? void 0 : graphicalItem.id;\n}","import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\n\n/**\n * In a stacked chart, each graphical item has its own data. That data could be either:\n * - defined on the chart root, in which case the item gets a unique dataKey\n * - or defined on the item itself, in which case multiple items can share the same dataKey\n *\n * That means we cannot use the dataKey as a unique identifier for the item.\n *\n * This type represents a single data point in a stacked chart, where each key is a series identifier\n * and the value is the numeric value for that series using the numerical axis dataKey.\n */\n\nexport function combineDisplayedStackedData(stackedGraphicalItems, _ref, tooltipAxisSettings) {\n var _ref$chartData = _ref.chartData,\n chartData = _ref$chartData === void 0 ? [] : _ref$chartData;\n var allowDuplicatedCategory = tooltipAxisSettings.allowDuplicatedCategory,\n tooltipDataKey = tooltipAxisSettings.dataKey;\n\n // A map of tooltip data keys to the stacked data points\n var knownItemsByDataKey = new Map();\n stackedGraphicalItems.forEach(item => {\n var _item$data;\n // If there is no data on the individual item then we use the root chart data\n var resolvedData = (_item$data = item.data) !== null && _item$data !== void 0 ? _item$data : chartData;\n if (resolvedData == null || resolvedData.length === 0) {\n // if that doesn't work then we skip this item\n return;\n }\n var stackIdentifier = getStackSeriesIdentifier(item);\n resolvedData.forEach((entry, index) => {\n var tooltipValue = tooltipDataKey == null || allowDuplicatedCategory ? index : String(getValueByDataKey(entry, tooltipDataKey, null));\n var numericValue = getValueByDataKey(entry, item.dataKey, 0);\n var curr;\n if (knownItemsByDataKey.has(tooltipValue)) {\n curr = knownItemsByDataKey.get(tooltipValue);\n } else {\n curr = {};\n }\n Object.assign(curr, {\n [stackIdentifier]: numericValue\n });\n knownItemsByDataKey.set(tooltipValue, curr);\n });\n });\n return Array.from(knownItemsByDataKey.values());\n}","/**\n * Some graphical items allow data stacking. The stacks are optional,\n * so all props here are optional too.\n */\n\n/**\n * Some graphical items allow data stacking.\n * This interface is used to represent the items that are stacked\n * because the user has provided the stackId and dataKey properties.\n */\n\nexport function isStacked(graphicalItem) {\n return 'stackId' in graphicalItem && graphicalItem.stackId != null && graphicalItem.dataKey != null;\n}","export var numberDomainEqualityCheck = (a, b) => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n return a[0] === b[0] && a[1] === b[1];\n};","/**\n * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.\n * If both arrays are non-empty, it checks for reference equality.\n * @param a\n * @param b\n */\nexport function emptyArraysAreEqualCheck(a, b) {\n if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {\n // empty arrays are always equal, regardless of reference\n return true;\n }\n return a === b;\n}\n\n/**\n * Checks if two arrays have the same contents in the same order.\n * @param a\n * @param b\n */\nexport function arrayContentsAreEqualCheck(a, b) {\n if (a.length === b.length) {\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}","import { selectChartLayout } from '../../context/chartLayoutContext';\n\n/**\n * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings\n */\n\n/**\n * Z axis is never displayed and so it lacks ticks and tick settings.\n */\n\nexport var selectTooltipAxisType = state => {\n var layout = selectChartLayout(state);\n if (layout === 'horizontal') {\n return 'xAxis';\n }\n if (layout === 'vertical') {\n return 'yAxis';\n }\n if (layout === 'centric') {\n return 'angleAxis';\n }\n return 'radiusAxis';\n};","export var selectTooltipAxisId = state => state.tooltip.settings.axisId;","/**\n * This is internal representation of scale used in Recharts.\n * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.\n * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.\n * This is important for React integration - if the scale changes, we want to trigger re-renders.\n * Mutating the scale in place would not trigger re-renders, leading to stale UI.\n */\n\n/**\n * Position within a band for banded scales.\n * In scales that are not banded, this parameter is ignored.\n *\n * @inline\n */\n\nexport function rechartsScaleFactory(d3Scale) {\n if (d3Scale == null) {\n return undefined;\n }\n var ticksFn = d3Scale.ticks;\n var bandwidthFn = d3Scale.bandwidth;\n var d3Range = d3Scale.range();\n var range = [Math.min(...d3Range), Math.max(...d3Range)];\n return {\n domain: () => d3Scale.domain(),\n range: function (_range) {\n function range() {\n return _range.apply(this, arguments);\n }\n range.toString = function () {\n return _range.toString();\n };\n return range;\n }(() => range),\n rangeMin: () => range[0],\n rangeMax: () => range[1],\n isInRange(value) {\n var first = range[0];\n var last = range[1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n },\n bandwidth: bandwidthFn ? () => bandwidthFn.call(d3Scale) : undefined,\n ticks: ticksFn ? count => ticksFn.call(d3Scale, count) : undefined,\n map: (input, options) => {\n var baseValue = d3Scale(input);\n if (baseValue == null) {\n return undefined;\n }\n if (d3Scale.bandwidth && options !== null && options !== void 0 && options.position) {\n var bandWidth = d3Scale.bandwidth();\n switch (options.position) {\n case 'middle':\n baseValue += bandWidth / 2;\n break;\n case 'end':\n baseValue += bandWidth;\n break;\n default:\n // 'start' requires no adjustment\n break;\n }\n }\n return baseValue;\n }\n };\n}","import { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\n\n/**\n * This function validates and transforms the axis domain so that it is safe to use in the provided scale.\n */\nexport var combineCheckedDomain = (realScaleType, axisDomain) => {\n if (axisDomain == null) {\n return undefined;\n }\n switch (realScaleType) {\n case 'linear':\n {\n /*\n * linear scale only reads the first two numbers in the domain, and ignores everything else.\n * So if it happens that someone somehow gave us a bigger domain,\n * let's pick the min and max from it.\n */\n if (!isWellFormedNumberDomain(axisDomain)) {\n var min, max;\n for (var i = 0; i < axisDomain.length; i++) {\n var value = axisDomain[i];\n if (!isWellBehavedNumber(value)) {\n continue;\n }\n if (min === undefined || value < min) {\n min = value;\n }\n if (max === undefined || value > max) {\n max = value;\n }\n }\n if (min !== undefined && max !== undefined) {\n return [min, max];\n }\n return undefined;\n }\n return axisDomain;\n }\n default:\n return axisDomain;\n }\n};","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","\n// `victory-vendor/d3-scale` (ESM)\n// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE\n//\n// Our ESM package uses the underlying installed dependencies of `node_modules/d3-scale`\nexport * from \"d3-scale\";\n","import * as d3Scales from 'victory-vendor/d3-scale';\nimport { upperFirst } from '../../../util/DataUtils';\nfunction getD3ScaleFromType(realScaleType) {\n var scales = d3Scales;\n if (realScaleType in scales && typeof scales[realScaleType] === 'function') {\n return scales[realScaleType]();\n }\n var name = \"scale\".concat(upperFirst(realScaleType));\n if (name in scales && typeof scales[name] === 'function') {\n return scales[name]();\n }\n return undefined;\n}\n\n/**\n * Converts external scale definition into internal RechartsScale definition.\n * @param scale custom function scale - if you have the `string` from outside, use `combineRealScaleType` first which will validate it and return RechartsScaleType or undefined\n * @param axisDomain\n * @param axisRange\n */\n\nexport function combineConfiguredScaleInternal(scale, axisDomain, axisRange) {\n if (typeof scale === 'function') {\n return scale.copy().domain(axisDomain).range(axisRange);\n }\n if (scale == null) {\n return undefined;\n }\n var d3ScaleFunction = getD3ScaleFromType(scale);\n if (d3ScaleFunction == null) {\n return undefined;\n }\n d3ScaleFunction.domain(axisDomain).range(axisRange);\n return d3ScaleFunction;\n}\nexport function combineConfiguredScale(axis, realScaleType, axisDomain, axisRange) {\n if (axisDomain == null || axisRange == null) {\n return undefined;\n }\n if (typeof axis.scale === 'function') {\n return combineConfiguredScaleInternal(axis.scale, axisDomain, axisRange);\n }\n return combineConfiguredScaleInternal(realScaleType, axisDomain, axisRange);\n}","import * as d3Scales from 'victory-vendor/d3-scale';\nimport { upperFirst } from '../../../util/DataUtils';\nfunction getD3ScaleName(name) {\n return \"scale\".concat(upperFirst(name));\n}\nfunction isSupportedScaleName(name) {\n return getD3ScaleName(name) in d3Scales;\n}\nexport var combineRealScaleType = (axisConfig, hasBar, chartType) => {\n if (axisConfig == null) {\n return undefined;\n }\n var scale = axisConfig.scale,\n type = axisConfig.type;\n if (scale === 'auto') {\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return 'point';\n }\n if (type === 'category') {\n return 'band';\n }\n return 'linear';\n }\n if (typeof scale === 'string') {\n return isSupportedScaleName(scale) ? scale : 'point';\n }\n return undefined;\n};","/**\n * Binary search to find the index where x would fit in array a.\n * Works for arrays that are sorted both ascending and descending.\n *\n * Unlike d3.bisect, this implementation handles both ascending and descending arrays.\n *\n * @param haystack Sorted array of numbers\n * @param needle Number to find the insertion index for\n * @returns Index where x would fit in array a\n */\nexport function bisect(haystack, needle) {\n var lo = 0;\n var hi = haystack.length;\n var ascending = haystack[0] < haystack[haystack.length - 1];\n while (lo < hi) {\n var mid = Math.floor((lo + hi) / 2);\n if (ascending ? haystack[mid] < needle : haystack[mid] > needle) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\n/**\n * Computes an inverse scale function for categorical/ordinal scales.\n * Uses bisect to find the closest domain value for a given pixel coordinate.\n */\nexport function createCategoricalInverse(scale, allDataPointsOnAxis) {\n if (!scale) {\n return undefined;\n }\n var domain = allDataPointsOnAxis !== null && allDataPointsOnAxis !== void 0 ? allDataPointsOnAxis : scale.domain();\n // Build an array of pixel positions for each domain value\n // @ts-expect-error we're attempting to scale unknown without having guarantee that it is a Domain type\n var pixelPositions = domain.map(d => {\n var _scale;\n return (_scale = scale(d)) !== null && _scale !== void 0 ? _scale : 0;\n });\n var range = scale.range();\n if (domain.length === 0 || range.length < 2) {\n return undefined;\n }\n return pixelValue => {\n var _pixelPositions, _pixelPositions$index;\n // Find the closest domain value using bisect\n var index = bisect(pixelPositions, pixelValue);\n\n // Clamp to valid range\n if (index <= 0) {\n return domain[0];\n }\n if (index >= domain.length) {\n return domain[domain.length - 1];\n }\n\n // Check which neighbor is closer\n var leftPixel = (_pixelPositions = pixelPositions[index - 1]) !== null && _pixelPositions !== void 0 ? _pixelPositions : 0;\n var rightPixel = (_pixelPositions$index = pixelPositions[index]) !== null && _pixelPositions$index !== void 0 ? _pixelPositions$index : 0;\n if (Math.abs(pixelValue - leftPixel) <= Math.abs(pixelValue - rightPixel)) {\n return domain[index - 1];\n }\n return domain[index];\n };\n}","import { createCategoricalInverse } from '../../../util/scale/createCategoricalInverse';\nexport function combineInverseScaleFunction(configuredScale) {\n if (configuredScale == null) {\n return undefined;\n }\n if ('invert' in configuredScale && typeof configuredScale.invert === 'function') {\n return configuredScale.invert.bind(configuredScale);\n }\n return createCategoricalInverse(configuredScale, undefined);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { createSelector } from 'reselect';\nimport range from 'es-toolkit/compat/range';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getDomainOfStackGroups, getStackedData, getValueByDataKey, isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectChartDataSliceIfNotInPanorama } from './dataSelectors';\nimport { isWellFormedNumberDomain, numericalDomainSpecifiedWithoutRequiringData, parseNumericalUserDomain } from '../../util/isDomainSpecifiedByUser';\nimport { getPercentValue, hasDuplicate, isNan, isNotNil, isNumOrStr, mathSign } from '../../util/DataUtils';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { getNiceTickValues, getTickValuesFixedDomain } from '../../util/scale';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectAllXAxes, selectAllYAxes } from './selectAllAxes';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBrushDimensions, selectBrushSettings } from './brushSelectors';\nimport { selectBarCategoryGap, selectChartName, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';\nimport { selectAngleAxis, selectAngleAxisRange, selectRadiusAxis, selectRadiusAxisRange } from './polarAxisSelectors';\nimport { pickAxisType } from './pickAxisType';\nimport { pickAxisId } from './pickAxisId';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { DEFAULT_X_AXIS_HEIGHT, DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { isStacked } from '../types/StackedGraphicalItem';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nimport { rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { combineCheckedDomain } from './combiners/combineCheckedDomain';\nimport { combineConfiguredScale } from './combiners/combineConfiguredScale';\nimport { combineRealScaleType } from './combiners/combineRealScaleType';\nimport { createCategoricalInverse } from '../../util/scale/createCategoricalInverse';\nimport { combineInverseScaleFunction } from './combiners/combineInverseScaleFunction';\nexport var defaultNumericDomain = [0, 'auto'];\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport var implicitXAxis = {\n allowDataOverflow: false,\n allowDecimals: true,\n allowDuplicatedCategory: true,\n angle: 0,\n dataKey: undefined,\n domain: undefined,\n height: 30,\n hide: true,\n id: 0,\n includeHidden: false,\n interval: 'preserveEnd',\n minTickGap: 5,\n mirror: false,\n name: undefined,\n orientation: 'bottom',\n padding: {\n left: 0,\n right: 0\n },\n reversed: false,\n scale: 'auto',\n tick: true,\n tickCount: 5,\n tickFormatter: undefined,\n ticks: undefined,\n type: 'category',\n unit: undefined,\n niceTicks: 'auto'\n};\nexport var selectXAxisSettingsNoDefaults = (state, axisId) => {\n return state.cartesianAxis.xAxis[axisId];\n};\nexport var selectXAxisSettings = (state, axisId) => {\n var axis = selectXAxisSettingsNoDefaults(state, axisId);\n if (axis == null) {\n return implicitXAxis;\n }\n return axis;\n};\n\n/**\n * If an axis is not explicitly defined as an element,\n * we still need to render something in the chart and we need\n * some object to hold the domain and default settings.\n */\nexport var implicitYAxis = {\n allowDataOverflow: false,\n allowDecimals: true,\n allowDuplicatedCategory: true,\n angle: 0,\n dataKey: undefined,\n domain: defaultNumericDomain,\n hide: true,\n id: 0,\n includeHidden: false,\n interval: 'preserveEnd',\n minTickGap: 5,\n mirror: false,\n name: undefined,\n orientation: 'left',\n padding: {\n top: 0,\n bottom: 0\n },\n reversed: false,\n scale: 'auto',\n tick: true,\n tickCount: 5,\n tickFormatter: undefined,\n ticks: undefined,\n type: 'number',\n unit: undefined,\n niceTicks: 'auto',\n width: DEFAULT_Y_AXIS_WIDTH\n};\nexport var selectYAxisSettingsNoDefaults = (state, axisId) => {\n return state.cartesianAxis.yAxis[axisId];\n};\nexport var selectYAxisSettings = (state, axisId) => {\n var axis = selectYAxisSettingsNoDefaults(state, axisId);\n if (axis == null) {\n return implicitYAxis;\n }\n return axis;\n};\nexport var implicitZAxis = {\n domain: [0, 'auto'],\n includeHidden: false,\n reversed: false,\n allowDataOverflow: false,\n allowDuplicatedCategory: false,\n dataKey: undefined,\n id: 0,\n name: '',\n range: [64, 64],\n scale: 'auto',\n type: 'number',\n unit: ''\n};\nexport var selectZAxisSettings = (state, axisId) => {\n var axis = state.cartesianAxis.zAxis[axisId];\n if (axis == null) {\n return implicitZAxis;\n }\n return axis;\n};\nexport var selectBaseAxis = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n case 'zAxis':\n {\n return selectZAxisSettings(state, axisId);\n }\n case 'angleAxis':\n {\n return selectAngleAxis(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxis(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\nvar selectCartesianAxisSettings = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\n\n/**\n * Selects either an X or Y axis. Doesn't work with Z axis - for that, instead use selectBaseAxis.\n * @param state Root state\n * @param axisType xAxis | yAxis\n * @param axisId xAxisId | yAxisId\n * @returns axis settings object\n */\nexport var selectRenderableAxisSettings = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSettings(state, axisId);\n }\n case 'yAxis':\n {\n return selectYAxisSettings(state, axisId);\n }\n case 'angleAxis':\n {\n return selectAngleAxis(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxis(state, axisId);\n }\n default:\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n};\n\n/**\n * @param state RechartsRootState\n * @return boolean true if there is at least one Bar or RadialBar\n */\nexport var selectHasBar = state => state.graphicalItems.cartesianItems.some(item => item.type === 'bar') || state.graphicalItems.polarItems.some(item => item.type === 'radialBar');\n\n/**\n * Filters CartesianGraphicalItemSettings by the relevant axis ID\n * @param axisType 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis'\n * @param axisId from props, defaults to 0\n *\n * @returns Predicate function that return true for CartesianGraphicalItemSettings that are relevant to the specified axis\n */\nexport function itemAxisPredicate(axisType, axisId) {\n return item => {\n switch (axisType) {\n case 'xAxis':\n // This is sensitive to the data type, as 0 !== '0'. I wonder if we should be more flexible. How does 2.x branch behave? TODO write test for that\n return 'xAxisId' in item && item.xAxisId === axisId;\n case 'yAxis':\n return 'yAxisId' in item && item.yAxisId === axisId;\n case 'zAxis':\n return 'zAxisId' in item && item.zAxisId === axisId;\n case 'angleAxis':\n return 'angleAxisId' in item && item.angleAxisId === axisId;\n case 'radiusAxis':\n return 'radiusAxisId' in item && item.radiusAxisId === axisId;\n default:\n return false;\n }\n };\n}\n\n// TODO appears there is a bug where this selector is called from polar context, find and fix it.\nexport var selectUnfilteredCartesianItems = state => state.graphicalItems.cartesianItems;\nvar selectAxisPredicate = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);\nexport var combineGraphicalItemsSettings = (graphicalItems, axisSettings, axisPredicate) => graphicalItems.filter(axisPredicate).filter(item => {\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.includeHidden) === true) {\n return true;\n }\n return !item.hide;\n});\nexport var selectCartesianItemsSettings = createSelector([selectUnfilteredCartesianItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nexport var selectStackedCartesianItemsSettings = createSelector([selectCartesianItemsSettings], cartesianItems => {\n return cartesianItems.filter(item => item.type === 'area' || item.type === 'bar').filter(isStacked);\n});\nexport var filterGraphicalNotStackedItems = cartesianItems => cartesianItems.filter(item => !('stackId' in item) || item.stackId === undefined);\nvar selectCartesianItemsSettingsExceptStacked = createSelector([selectCartesianItemsSettings], filterGraphicalNotStackedItems);\nexport var combineGraphicalItemsData = cartesianItems => cartesianItems.map(item => item.data).filter(Boolean).flat(1);\n\n/**\n * Returns true if at least one graphical item does not define its own `data` prop\n * and therefore relies on the chart-level data.\n * This is used to decide whether to merge chart-level data into the axis domain calculation.\n */\nexport var selectAnyCartesianItemsUsesChartData = createSelector([selectCartesianItemsSettings], items => items.some(item => !item.data));\n\n/**\n * This is a \"cheap\" selector - it returns the data but doesn't iterate them, so it is not sensitive on the array length.\n * Also does not apply dataKey yet.\n * @param state RechartsRootState\n * @returns data defined on the chart graphical items, such as Line or Scatter or Pie, and filtered with appropriate dataKey\n */\nexport var selectCartesianGraphicalItemsData = createSelector([selectCartesianItemsSettings], combineGraphicalItemsData, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nexport var combineDisplayedData = (graphicalItemsData, _ref) => {\n var _ref$chartData = _ref.chartData,\n chartData = _ref$chartData === void 0 ? [] : _ref$chartData,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n if (graphicalItemsData.length > 0) {\n /*\n * There is no slicing when data is defined on graphical items. Why?\n * Because Brush ignores data defined on graphical items,\n * and does not render.\n * So Brush will never show up in a Scatter chart for example.\n * This is something we will need to fix.\n *\n * Now, when the root chart data is not defined, the dataEndIndex is 0,\n * which means the itemsData will be sliced to an empty array anyway.\n * But that's an implementation detail, and we can fix that too.\n *\n * Also, in absence of Axis dataKey, we use the dataKey from each item, respectively.\n * This is the usual pattern for numerical axis, that is the one where bars go up:\n * users don't specify any dataKey by default and expect the axis to \"just match the data\".\n */\n return graphicalItemsData;\n }\n return chartData.slice(dataStartIndex, dataEndIndex + 1);\n};\n\n/**\n * This selector will return all data there is in the chart: graphical items, chart root, all together.\n * Useful for figuring out an axis domain (because that needs to know of everything),\n * not useful for rendering individual graphical elements (because they need to know which data is theirs and which is not).\n *\n * This function will discard the original indexes, so it is also not useful for anything that depends on ordering.\n */\nexport var selectDisplayedData = createSelector([selectCartesianGraphicalItemsData, selectChartDataWithIndexesIfNotInPanoramaPosition4], combineDisplayedData);\nexport var combineAppliedValues = (data, axisSettings, items) => {\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {\n return data.map(item => ({\n value: getValueByDataKey(item, axisSettings.dataKey)\n }));\n }\n if (items.length > 0) {\n return items.map(item => item.dataKey).flatMap(dataKey => data.map(entry => ({\n value: getValueByDataKey(entry, dataKey)\n })));\n }\n return data.map(entry => ({\n value: entry\n }));\n};\n\n/**\n * Computes applied values from graphical items data plus, when needed, chart-level data.\n *\n * When at least one graphical item has no own `data` (it relies on chart root data) AND the axis has a `dataKey`,\n * AND there are other items that do have their own data (meaning `displayedData` only contains graphical items data,\n * not chart root data), we also include chart root data values so the axis domain covers all categories,\n * including those only present in the chart root data but not in any graphical item's own data.\n *\n * Values from chart root data that don't match the axis dataKey (undefined) are excluded.\n */\nexport var combineAllAppliedValues = (displayedData, axisSettings, items, _ref2, anyItemUsesChartData, graphicalItemsData) => {\n var _ref2$chartData = _ref2.chartData,\n chartData = _ref2$chartData === void 0 ? [] : _ref2$chartData,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var appliedValues = combineAppliedValues(displayedData, axisSettings, items);\n if (anyItemUsesChartData && (axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null && graphicalItemsData.length > 0) {\n var chartDataSlice = chartData.slice(dataStartIndex, dataEndIndex + 1);\n var chartAppliedValues = chartDataSlice.map(item => ({\n value: getValueByDataKey(item, axisSettings.dataKey)\n })).filter(av => av.value != null);\n return [...chartAppliedValues, ...appliedValues];\n }\n return appliedValues;\n};\n\n/**\n * This selector will return all values with the appropriate dataKey applied on them.\n * Which dataKey is appropriate depends on where it is defined.\n *\n * This is an expensive selector - it will iterate all data and compute their value using the provided dataKey.\n */\nexport var selectAllAppliedValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectAnyCartesianItemsUsesChartData, selectCartesianGraphicalItemsData], combineAllAppliedValues);\nfunction makeNumber(val) {\n if (isNumOrStr(val) || val instanceof Date) {\n var n = Number(val);\n if (isWellBehavedNumber(n)) {\n return n;\n }\n }\n return undefined;\n}\nfunction makeDomain(val) {\n if (Array.isArray(val)) {\n var attempt = [makeNumber(val[0]), makeNumber(val[1])];\n if (isWellFormedNumberDomain(attempt)) {\n return attempt;\n }\n return undefined;\n }\n var n = makeNumber(val);\n if (n == null) {\n return undefined;\n }\n return [n, n];\n}\nfunction onlyAllowNumbers(data) {\n return data.map(makeNumber).filter(isNotNil);\n}\nfunction sortBy(a, b) {\n var aNum = makeNumber(a);\n var bNum = makeNumber(b);\n if (aNum == null && bNum == null) {\n return 0;\n }\n if (aNum == null) {\n return -1;\n }\n if (bNum == null) {\n return 1;\n }\n return aNum - bNum;\n}\nexport var selectSortedDataPoints = createSelector([selectAllAppliedValues], appliedData => {\n return appliedData === null || appliedData === void 0 ? void 0 : appliedData.map(item => item.value).sort(sortBy);\n});\nexport function isErrorBarRelevantForAxisType(axisType, errorBar) {\n switch (axisType) {\n case 'xAxis':\n return errorBar.direction === 'x';\n case 'yAxis':\n return errorBar.direction === 'y';\n default:\n return false;\n }\n}\n/**\n * @param entry One item in the 'data' array. Could be anything really - this is defined externally. This is the raw, before dataKey application\n * @param appliedValue This is the result of applying the 'main' dataKey on the `entry`.\n * @param relevantErrorBars Error bars that are relevant for the current axis and layout and all that.\n * @return either undefined or an array of ErrorValue\n */\nexport function getErrorDomainByDataKey(entry, appliedValue, relevantErrorBars) {\n if (!relevantErrorBars) {\n return [];\n }\n if (!relevantErrorBars.length) {\n return [];\n }\n var appliedNumericValue;\n if (typeof appliedValue === 'number' && !isNan(appliedValue)) {\n appliedNumericValue = appliedValue;\n } else if (Array.isArray(appliedValue)) {\n var numericRangeValues = onlyAllowNumbers(appliedValue);\n if (numericRangeValues.length > 0) {\n appliedNumericValue = Math.max(...numericRangeValues);\n }\n }\n if (appliedNumericValue == null) {\n return [];\n }\n return onlyAllowNumbers(relevantErrorBars.flatMap(eb => {\n var errorValue = getValueByDataKey(entry, eb.dataKey);\n var lowBound, highBound;\n if (Array.isArray(errorValue)) {\n var _errorValue = _slicedToArray(errorValue, 2);\n lowBound = _errorValue[0];\n highBound = _errorValue[1];\n } else {\n lowBound = highBound = errorValue;\n }\n if (!isWellBehavedNumber(lowBound) || !isWellBehavedNumber(highBound)) {\n return undefined;\n }\n return [appliedNumericValue - lowBound, appliedNumericValue + highBound];\n }));\n}\nexport var selectTooltipAxis = state => {\n var axisType = selectTooltipAxisType(state);\n var axisId = selectTooltipAxisId(state);\n return selectRenderableAxisSettings(state, axisType, axisId);\n};\nexport var selectTooltipAxisDataKey = createSelector([selectTooltipAxis], axis => axis === null || axis === void 0 ? void 0 : axis.dataKey);\nexport var selectDisplayedStackedData = createSelector([selectStackedCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectTooltipAxis], combineDisplayedStackedData);\nexport var combineStackGroups = (displayedData, items, stackOffsetType, reverseStackOrder) => {\n var initialItemsGroups = {};\n var itemsGroup = items.reduce((acc, item) => {\n if (item.stackId == null) {\n return acc;\n }\n var stack = acc[item.stackId];\n if (stack == null) {\n stack = [];\n }\n stack.push(item);\n acc[item.stackId] = stack;\n return acc;\n }, initialItemsGroups);\n return Object.fromEntries(Object.entries(itemsGroup).map(_ref3 => {\n var _ref4 = _slicedToArray(_ref3, 2),\n stackId = _ref4[0],\n graphicalItems = _ref4[1];\n var orderedGraphicalItems = reverseStackOrder ? [...graphicalItems].reverse() : graphicalItems;\n var dataKeys = orderedGraphicalItems.map(getStackSeriesIdentifier);\n return [stackId, {\n // @ts-expect-error getStackedData requires that the input is array of objects, Recharts does not test for that\n stackedData: getStackedData(displayedData, dataKeys, stackOffsetType),\n graphicalItems: orderedGraphicalItems\n }];\n }));\n};\n\n/**\n * Stack groups are groups of graphical items that stack on each other.\n * Stack is a function of axis type (X, Y), axis ID, and stack ID.\n * Graphical items that do not have a stack ID are not going to be present in stack groups.\n */\nexport var selectStackGroups = createSelector([selectDisplayedStackedData, selectStackedCartesianItemsSettings, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);\nexport var combineDomainOfStackGroups = (stackGroups, _ref5, axisType, domainFromUserPreference) => {\n var dataStartIndex = _ref5.dataStartIndex,\n dataEndIndex = _ref5.dataEndIndex;\n if (domainFromUserPreference != null) {\n // User has specified a domain, so we respect that and we can skip computing anything else\n return undefined;\n }\n if (axisType === 'zAxis') {\n // ZAxis ignores stacks\n return undefined;\n }\n return getDomainOfStackGroups(stackGroups, dataStartIndex, dataEndIndex);\n};\nvar selectAllowsDataOverflow = createSelector([selectBaseAxis], axisSettings => axisSettings.allowDataOverflow);\nexport var getDomainDefinition = axisSettings => {\n var _axisSettings$domain;\n if (axisSettings == null || !('domain' in axisSettings)) {\n return defaultNumericDomain;\n }\n if (axisSettings.domain != null) {\n return axisSettings.domain;\n }\n if ('ticks' in axisSettings && axisSettings.ticks != null) {\n if (axisSettings.type === 'number') {\n var allValues = onlyAllowNumbers(axisSettings.ticks);\n return [Math.min(...allValues), Math.max(...allValues)];\n }\n if (axisSettings.type === 'category') {\n return axisSettings.ticks.map(String);\n }\n }\n return (_axisSettings$domain = axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.domain) !== null && _axisSettings$domain !== void 0 ? _axisSettings$domain : defaultNumericDomain;\n};\nexport var selectDomainDefinition = createSelector([selectBaseAxis], getDomainDefinition);\n\n/**\n * Under certain circumstances, we can determine the domain without looking at the data at all.\n * This is the case when the domain is explicitly specified as numbers, or when it is specified\n * as 'auto' or 'dataMin'/'dataMax' and data overflow is not allowed.\n *\n * In that case, this function will return the domain, otherwise it returns undefined.\n *\n * This is an optimization to avoid unnecessary data processing.\n * @param state\n * @param axisType\n * @param axisId\n * @param isPanorama\n */\nexport var selectDomainFromUserPreference = createSelector([selectDomainDefinition, selectAllowsDataOverflow], numericalDomainSpecifiedWithoutRequiringData);\nexport var selectDomainOfStackGroups = createSelector([selectStackGroups, selectChartDataWithIndexes, pickAxisType, selectDomainFromUserPreference], combineDomainOfStackGroups, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nexport var selectAllErrorBarSettings = state => state.errorBars;\nvar combineRelevantErrorBarSettings = (cartesianItemsSettings, allErrorBarSettings, axisType) => {\n return cartesianItemsSettings.flatMap(item => {\n return allErrorBarSettings[item.id];\n }).filter(Boolean).filter(e => {\n return isErrorBarRelevantForAxisType(axisType, e);\n });\n};\nexport var mergeDomains = function mergeDomains() {\n for (var _len = arguments.length, domains = new Array(_len), _key = 0; _key < _len; _key++) {\n domains[_key] = arguments[_key];\n }\n var allDomains = domains.filter(Boolean);\n if (allDomains.length === 0) {\n return undefined;\n }\n var allValues = allDomains.flat();\n var min = Math.min(...allValues);\n var max = Math.max(...allValues);\n return [min, max];\n};\nexport var combineDomainOfAllAppliedNumericalValuesIncludingErrorValues = function combineDomainOfAllAppliedNumericalValuesIncludingErrorValues(displayedData, axisSettings, items, errorBars, axisType) {\n var chartDataSlice = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var lowerEnd, upperEnd;\n if (items.length > 0) {\n /*\n * Iterate item-first so each item can use its own `data` prop when present,\n * falling back to the chart-level data slice for items that rely on it.\n * This ensures that mixing items with and without own data (e.g. Bar reading\n * chart-level data alongside a Scatter with its own outlier data) produces a\n * domain that covers all values from all sources.\n */\n items.forEach(item => {\n var _errorBars$item$id;\n var itemData = item.data != null ? [...item.data] : chartDataSlice;\n var relevantErrorBars = (_errorBars$item$id = errorBars[item.id]) === null || _errorBars$item$id === void 0 ? void 0 : _errorBars$item$id.filter(errorBar => isErrorBarRelevantForAxisType(axisType, errorBar));\n itemData.forEach(entry => {\n var _axisSettings$dataKey;\n var valueByDataKey = getValueByDataKey(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);\n var errorDomain = getErrorDomainByDataKey(entry, valueByDataKey, relevantErrorBars);\n if (errorDomain.length >= 2) {\n var localLower = Math.min(...errorDomain);\n var localUpper = Math.max(...errorDomain);\n if (lowerEnd == null || localLower < lowerEnd) {\n lowerEnd = localLower;\n }\n if (upperEnd == null || localUpper > upperEnd) {\n upperEnd = localUpper;\n }\n }\n var dataValueDomain = makeDomain(valueByDataKey);\n if (dataValueDomain != null) {\n lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n }\n });\n });\n }\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null && items.length === 0) {\n // When there are no items, fall back to the displayed data (chart-level or graphical item data).\n displayedData.forEach(item => {\n var dataValueDomain = makeDomain(getValueByDataKey(item, axisSettings.dataKey));\n if (dataValueDomain != null) {\n lowerEnd = lowerEnd == null ? dataValueDomain[0] : Math.min(lowerEnd, dataValueDomain[0]);\n upperEnd = upperEnd == null ? dataValueDomain[1] : Math.max(upperEnd, dataValueDomain[1]);\n }\n });\n }\n if (isWellBehavedNumber(lowerEnd) && isWellBehavedNumber(upperEnd)) {\n return [lowerEnd, upperEnd];\n }\n return undefined;\n};\nvar selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectDisplayedData, selectBaseAxis, selectCartesianItemsSettingsExceptStacked, selectAllErrorBarSettings, pickAxisType, selectChartDataSliceIfNotInPanorama], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nfunction onlyAllowNumbersAndStringsAndDates(item) {\n var value = item.value;\n if (isNumOrStr(value) || value instanceof Date) {\n return value;\n }\n return undefined;\n}\nvar computeDomainOfTypeCategory = (allDataSquished, axisSettings, isCategorical) => {\n var categoricalDomain = allDataSquished.map(onlyAllowNumbersAndStringsAndDates).filter(v => v != null);\n if (isCategorical && (axisSettings.dataKey == null || axisSettings.allowDuplicatedCategory && hasDuplicate(categoricalDomain))) {\n /*\n * 1. In an absence of dataKey, Recharts will use array indexes as its categorical domain\n * 2. When category axis has duplicated text, serial numbers are used to generate scale\n */\n return range(0, allDataSquished.length);\n }\n if (axisSettings.allowDuplicatedCategory) {\n return categoricalDomain;\n }\n return Array.from(new Set(categoricalDomain));\n};\nexport var selectReferenceDots = state => state.referenceElements.dots;\nexport var filterReferenceElements = (elements, axisType, axisId) => {\n return elements.filter(el => el.ifOverflow === 'extendDomain').filter(el => {\n if (axisType === 'xAxis') {\n return el.xAxisId === axisId;\n }\n return el.yAxisId === axisId;\n });\n};\nexport var selectReferenceDotsByAxis = createSelector([selectReferenceDots, pickAxisType, pickAxisId], filterReferenceElements);\nexport var selectReferenceAreas = state => state.referenceElements.areas;\nexport var selectReferenceAreasByAxis = createSelector([selectReferenceAreas, pickAxisType, pickAxisId], filterReferenceElements);\nexport var selectReferenceLines = state => state.referenceElements.lines;\nexport var selectReferenceLinesByAxis = createSelector([selectReferenceLines, pickAxisType, pickAxisId], filterReferenceElements);\nexport var combineDotsDomain = (dots, axisType) => {\n if (dots == null) {\n return undefined;\n }\n var allCoords = onlyAllowNumbers(dots.map(dot => axisType === 'xAxis' ? dot.x : dot.y));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceDotsDomain = createSelector(selectReferenceDotsByAxis, pickAxisType, combineDotsDomain);\nexport var combineAreasDomain = (areas, axisType) => {\n if (areas == null) {\n return undefined;\n }\n var allCoords = onlyAllowNumbers(areas.flatMap(area => [axisType === 'xAxis' ? area.x1 : area.y1, axisType === 'xAxis' ? area.x2 : area.y2]));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceAreasDomain = createSelector([selectReferenceAreasByAxis, pickAxisType], combineAreasDomain);\nfunction extractXCoordinates(line) {\n var _line$segment;\n if (line.x != null) {\n return onlyAllowNumbers([line.x]);\n }\n var segmentCoordinates = (_line$segment = line.segment) === null || _line$segment === void 0 ? void 0 : _line$segment.map(s => s.x);\n if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n return [];\n }\n return onlyAllowNumbers(segmentCoordinates);\n}\nfunction extractYCoordinates(line) {\n var _line$segment2;\n if (line.y != null) {\n return onlyAllowNumbers([line.y]);\n }\n var segmentCoordinates = (_line$segment2 = line.segment) === null || _line$segment2 === void 0 ? void 0 : _line$segment2.map(s => s.y);\n if (segmentCoordinates == null || segmentCoordinates.length === 0) {\n return [];\n }\n return onlyAllowNumbers(segmentCoordinates);\n}\nexport var combineLinesDomain = (lines, axisType) => {\n if (lines == null) {\n return undefined;\n }\n var allCoords = lines.flatMap(line => axisType === 'xAxis' ? extractXCoordinates(line) : extractYCoordinates(line));\n if (allCoords.length === 0) {\n return undefined;\n }\n return [Math.min(...allCoords), Math.max(...allCoords)];\n};\nvar selectReferenceLinesDomain = createSelector([selectReferenceLinesByAxis, pickAxisType], combineLinesDomain);\nvar selectReferenceElementsDomain = createSelector(selectReferenceDotsDomain, selectReferenceLinesDomain, selectReferenceAreasDomain, (dotsDomain, linesDomain, areasDomain) => {\n return mergeDomains(dotsDomain, areasDomain, linesDomain);\n});\nexport var combineNumericalDomain = (axisSettings, domainDefinition, domainFromUserPreference, domainOfStackGroups, dataAndErrorBarsDomain, referenceElementsDomain, layout, axisType, numericTicksDomain) => {\n if (domainFromUserPreference != null) {\n // We're done! No need to compute anything else.\n return domainFromUserPreference;\n }\n var shouldIncludeDomainOfStackGroups = layout === 'vertical' && axisType === 'xAxis' || layout === 'horizontal' && axisType === 'yAxis';\n var mergedDomains = shouldIncludeDomainOfStackGroups ? mergeDomains(domainOfStackGroups, referenceElementsDomain, dataAndErrorBarsDomain) : mergeDomains(referenceElementsDomain, dataAndErrorBarsDomain);\n var parsedDomain = parseNumericalUserDomain(domainDefinition, mergedDomains, axisSettings.allowDataOverflow);\n if (parsedDomain != null) {\n return parsedDomain;\n }\n\n /*\n * https://github.com/recharts/recharts/issues/7362\n * The user-provided domain could not be resolved without data - it's a function\n * bound or one of 'auto'/'dataMin'/'dataMax' - and there is no data domain to\n * resolve it from: empty or all-null data, and no domain-extending reference\n * elements (only reference dots/lines/areas with ifOverflow=\"extendDomain\"\n * contribute to mergedDomains). If the\n * axis opted into data overflow and supplied an explicit numeric `ticks` array,\n * fall back to the ticks' [min, max] extent so the explicit tick ladder still\n * renders, mirroring what a literal numeric domain already does.\n */\n if (axisSettings.allowDataOverflow && mergedDomains == null && numericTicksDomain != null) {\n return numericTicksDomain;\n }\n return parsedDomain;\n};\n\n/**\n * https://github.com/recharts/recharts/issues/7362\n * Derives the [min, max] extent of an axis's explicit numeric `ticks`. Used by\n * {@link combineNumericalDomain} as a last-resort domain when a non-literal domain\n * cannot be resolved without data. Returns undefined for non-number axes, or when\n * no numeric ticks were supplied.\n */\nexport var combineNumericTicksDomain = axisSettings => {\n if (axisSettings == null || axisSettings.type !== 'number' || !('ticks' in axisSettings) || axisSettings.ticks == null) {\n return undefined;\n }\n var numericTicks = onlyAllowNumbers(axisSettings.ticks);\n if (numericTicks.length === 0) {\n return undefined;\n }\n return [Math.min(...numericTicks), Math.max(...numericTicks)];\n};\nexport var selectNumericTicksDomain = createSelector([selectBaseAxis], combineNumericTicksDomain, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nexport var selectNumericalDomain = createSelector([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectReferenceElementsDomain, selectChartLayout, pickAxisType, selectNumericTicksDomain], combineNumericalDomain, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\n\n/**\n * Expand by design maps everything between 0 and 1,\n * there is nothing to compute.\n * See https://d3js.org/d3-shape/stack#stack-offsets\n */\nvar expandDomain = [0, 1];\nexport var combineAxisDomain = (axisSettings, layout, displayedData, allAppliedValues, stackOffsetType, axisType, numericalDomain) => {\n if ((axisSettings == null || displayedData == null || displayedData.length === 0) && numericalDomain === undefined) {\n return undefined;\n }\n var dataKey = axisSettings.dataKey,\n type = axisSettings.type;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (isCategorical && dataKey == null) {\n var _displayedData$length;\n return range(0, (_displayedData$length = displayedData === null || displayedData === void 0 ? void 0 : displayedData.length) !== null && _displayedData$length !== void 0 ? _displayedData$length : 0);\n }\n if (type === 'category') {\n return computeDomainOfTypeCategory(allAppliedValues, axisSettings, isCategorical);\n }\n if (stackOffsetType === 'expand' && !isCategorical) {\n return expandDomain;\n }\n return numericalDomain;\n};\nexport var selectAxisDomain = createSelector([selectBaseAxis, selectChartLayout, selectDisplayedData, selectAllAppliedValues, selectStackOffsetType, pickAxisType, selectNumericalDomain], combineAxisDomain);\nexport var selectRealScaleType = createSelector([selectBaseAxis, selectHasBar, selectChartName], combineRealScaleType);\nexport var combineNiceTicks = (axisDomain, axisSettings, realScaleType) => {\n var niceTicks = axisSettings.niceTicks;\n if (niceTicks === 'none') {\n return undefined;\n }\n var domainDefinition = getDomainDefinition(axisSettings);\n var hasDomainAutoKeyword = Array.isArray(domainDefinition) && (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto');\n if ((niceTicks === 'snap125' || niceTicks === 'adaptive') && axisSettings != null && axisSettings.tickCount && isWellFormedNumberDomain(axisDomain)) {\n if (hasDomainAutoKeyword) {\n return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, niceTicks);\n }\n if (axisSettings.type === 'number') {\n return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, niceTicks);\n }\n }\n if (niceTicks === 'auto' && realScaleType === 'linear' && axisSettings != null && axisSettings.tickCount) {\n // Current magic-selector behaviour: apply nice ticks when the domain contains\n // an 'auto' keyword (may extend the domain), or for any fixed number-type axis.\n // Always uses the space-efficient algorithm (adaptive).\n if (hasDomainAutoKeyword && isWellFormedNumberDomain(axisDomain)) {\n return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, 'adaptive');\n }\n if (axisSettings.type === 'number' && isWellFormedNumberDomain(axisDomain)) {\n return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, 'adaptive');\n }\n }\n return undefined;\n};\nexport var selectNiceTicks = createSelector([selectAxisDomain, selectRenderableAxisSettings, selectRealScaleType], combineNiceTicks);\nexport var combineAxisDomainWithNiceTicks = (axisSettings, domain, niceTicks, axisType) => {\n if (\n /*\n * Angle axis for some reason uses nice ticks when rendering axis tick labels,\n * but doesn't use nice ticks for extending domain like all the other axes do.\n * Not really sure why? Is there a good reason,\n * or is it just because someone added support for nice ticks to the other axes and forgot this one?\n */\n axisType !== 'angleAxis' && (axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.type) === 'number' && isWellFormedNumberDomain(domain) && Array.isArray(niceTicks) && niceTicks.length > 0) {\n var _niceTicks$, _niceTicks;\n var minFromDomain = domain[0];\n var minFromTicks = (_niceTicks$ = niceTicks[0]) !== null && _niceTicks$ !== void 0 ? _niceTicks$ : 0;\n var maxFromDomain = domain[1];\n var maxFromTicks = (_niceTicks = niceTicks[niceTicks.length - 1]) !== null && _niceTicks !== void 0 ? _niceTicks : 0;\n return [Math.min(minFromDomain, minFromTicks), Math.max(maxFromDomain, maxFromTicks)];\n }\n return domain;\n};\nexport var selectAxisDomainIncludingNiceTicks = createSelector([selectBaseAxis, selectAxisDomain, selectNiceTicks, pickAxisType], combineAxisDomainWithNiceTicks);\n\n/**\n * Returns the smallest gap, between two numbers in the data, as a ratio of the whole range (max - min).\n * Ignores domain provided by user and only considers domain from data.\n *\n * The result is a number between 0 and 1.\n */\nexport var selectSmallestDistanceBetweenValues = createSelector(selectAllAppliedValues, selectBaseAxis, (allDataSquished, axisSettings) => {\n if (!axisSettings || axisSettings.type !== 'number') {\n return undefined;\n }\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = Array.from(onlyAllowNumbers(allDataSquished.map(d => d.value))).sort((a, b) => a - b);\n var first = sortedValues[0];\n var last = sortedValues[sortedValues.length - 1];\n if (first == null || last == null) {\n return Infinity;\n }\n var diff = last - first;\n if (diff === 0) {\n return Infinity;\n }\n // Only do n - 1 distance calculations because there's only n - 1 distances between n values.\n for (var i = 0; i < sortedValues.length - 1; i++) {\n var curr = sortedValues[i];\n var next = sortedValues[i + 1];\n if (curr == null || next == null) {\n continue;\n }\n var distance = next - curr;\n smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);\n }\n return smallestDistanceBetweenValues / diff;\n});\nvar selectCalculatedPadding = createSelector(selectSmallestDistanceBetweenValues, selectChartLayout, selectBarCategoryGap, selectChartOffsetInternal, (_1, _2, _3, _4, padding) => padding, (smallestDistanceInPercent, layout, barCategoryGap, offset, padding) => {\n if (!isWellBehavedNumber(smallestDistanceInPercent)) {\n return 0;\n }\n var rangeWidth = layout === 'vertical' ? offset.height : offset.width;\n if (padding === 'gap') {\n return smallestDistanceInPercent * rangeWidth / 2;\n }\n if (padding === 'no-gap') {\n var gap = getPercentValue(barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n return halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n return 0;\n});\nexport var selectCalculatedXAxisPadding = (state, axisId, isPanorama) => {\n var xAxisSettings = selectXAxisSettings(state, axisId);\n if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'xAxis', axisId, isPanorama, xAxisSettings.padding);\n};\nexport var selectCalculatedYAxisPadding = (state, axisId, isPanorama) => {\n var yAxisSettings = selectYAxisSettings(state, axisId);\n if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'yAxis', axisId, isPanorama, yAxisSettings.padding);\n};\nvar selectXAxisPadding = createSelector(selectXAxisSettings, selectCalculatedXAxisPadding, (xAxisSettings, calculated) => {\n var _padding$left, _padding$right;\n if (xAxisSettings == null) {\n return {\n left: 0,\n right: 0\n };\n }\n var padding = xAxisSettings.padding;\n if (typeof padding === 'string') {\n return {\n left: calculated,\n right: calculated\n };\n }\n return {\n left: ((_padding$left = padding.left) !== null && _padding$left !== void 0 ? _padding$left : 0) + calculated,\n right: ((_padding$right = padding.right) !== null && _padding$right !== void 0 ? _padding$right : 0) + calculated\n };\n});\nvar selectYAxisPadding = createSelector(selectYAxisSettings, selectCalculatedYAxisPadding, (yAxisSettings, calculated) => {\n var _padding$top, _padding$bottom;\n if (yAxisSettings == null) {\n return {\n top: 0,\n bottom: 0\n };\n }\n var padding = yAxisSettings.padding;\n if (typeof padding === 'string') {\n return {\n top: calculated,\n bottom: calculated\n };\n }\n return {\n top: ((_padding$top = padding.top) !== null && _padding$top !== void 0 ? _padding$top : 0) + calculated,\n bottom: ((_padding$bottom = padding.bottom) !== null && _padding$bottom !== void 0 ? _padding$bottom : 0) + calculated\n };\n});\nexport var selectXAxisRange = createSelector([selectChartOffsetInternal, selectXAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, padding, brushDimensions, _ref6, isPanorama) => {\n var brushPadding = _ref6.padding;\n if (isPanorama) {\n return [brushPadding.left, brushDimensions.width - brushPadding.right];\n }\n return [offset.left + padding.left, offset.left + offset.width - padding.right];\n});\nexport var selectYAxisRange = createSelector([selectChartOffsetInternal, selectChartLayout, selectYAxisPadding, selectBrushDimensions, selectBrushSettings, (_state, _axisId, isPanorama) => isPanorama], (offset, layout, padding, brushDimensions, _ref7, isPanorama) => {\n var brushPadding = _ref7.padding;\n if (isPanorama) {\n return [brushDimensions.height - brushPadding.bottom, brushPadding.top];\n }\n if (layout === 'horizontal') {\n return [offset.top + offset.height - padding.bottom, offset.top + padding.top];\n }\n return [offset.top + padding.top, offset.top + offset.height - padding.bottom];\n});\nexport var selectAxisRange = (state, axisType, axisId, isPanorama) => {\n var _selectZAxisSettings;\n switch (axisType) {\n case 'xAxis':\n return selectXAxisRange(state, axisId, isPanorama);\n case 'yAxis':\n return selectYAxisRange(state, axisId, isPanorama);\n case 'zAxis':\n return (_selectZAxisSettings = selectZAxisSettings(state, axisId)) === null || _selectZAxisSettings === void 0 ? void 0 : _selectZAxisSettings.range;\n case 'angleAxis':\n return selectAngleAxisRange(state);\n case 'radiusAxis':\n return selectRadiusAxisRange(state, axisId);\n default:\n return undefined;\n }\n};\nexport var selectAxisRangeWithReverse = createSelector([selectBaseAxis, selectAxisRange], combineAxisRangeWithReverse);\nexport var selectCheckedAxisDomain = createSelector([selectRealScaleType, selectAxisDomainIncludingNiceTicks], combineCheckedDomain);\nvar selectConfiguredScale = createSelector([selectBaseAxis, selectRealScaleType, selectCheckedAxisDomain, selectAxisRangeWithReverse], combineConfiguredScale);\nexport var combineCategoricalDomain = (layout, appliedValues, axis, axisType) => {\n if (axis == null || axis.dataKey == null) {\n return undefined;\n }\n var type = axis.type,\n scale = axis.scale;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n return appliedValues.map(d => d.value);\n }\n return undefined;\n};\nexport var selectCategoricalDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectRenderableAxisSettings, pickAxisType], combineCategoricalDomain);\nexport var selectAxisScale = createSelector([selectConfiguredScale], rechartsScaleFactory);\nexport var selectAxisInverseScale = createSelector([selectConfiguredScale], combineInverseScaleFunction);\nexport var selectAxisInverseDataSnapScale = createSelector([selectConfiguredScale, selectSortedDataPoints], createCategoricalInverse);\nexport var selectErrorBarsSettings = createSelector([selectCartesianItemsSettings, selectAllErrorBarSettings, pickAxisType], combineRelevantErrorBarSettings);\nfunction compareIds(a, b) {\n if (a.id < b.id) {\n return -1;\n }\n if (a.id > b.id) {\n return 1;\n }\n return 0;\n}\nvar pickAxisOrientation = (_state, orientation) => orientation;\nvar pickMirror = (_state, _orientation, mirror) => mirror;\nvar selectAllXAxesWithOffsetType = createSelector(selectAllXAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));\nvar selectAllYAxesWithOffsetType = createSelector(selectAllYAxes, pickAxisOrientation, pickMirror, (allAxes, orientation, mirror) => allAxes.filter(axis => axis.orientation === orientation).filter(axis => axis.mirror === mirror).sort(compareIds));\nvar getXAxisSize = (offset, axisSettings) => {\n var height = typeof axisSettings.height === 'number' ? axisSettings.height : DEFAULT_X_AXIS_HEIGHT;\n return {\n width: offset.width,\n height\n };\n};\nvar getYAxisSize = (offset, axisSettings) => {\n var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n return {\n width,\n height: offset.height\n };\n};\nexport var selectXAxisSize = createSelector(selectChartOffsetInternal, selectXAxisSettings, getXAxisSize);\nvar combineXAxisPositionStartingPoint = (offset, orientation, chartHeight) => {\n switch (orientation) {\n case 'top':\n return offset.top;\n case 'bottom':\n return chartHeight - offset.bottom;\n default:\n return 0;\n }\n};\nvar combineYAxisPositionStartingPoint = (offset, orientation, chartWidth) => {\n switch (orientation) {\n case 'left':\n return offset.left;\n case 'right':\n return chartWidth - offset.right;\n default:\n return 0;\n }\n};\nexport var selectAllXAxesOffsetSteps = createSelector(selectChartHeight, selectChartOffsetInternal, selectAllXAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartHeight, offset, allAxesWithSameOffsetType, orientation, mirror) => {\n var steps = {};\n var position;\n allAxesWithSameOffsetType.forEach(axis => {\n var axisSize = getXAxisSize(offset, axis);\n if (position == null) {\n position = combineXAxisPositionStartingPoint(offset, orientation, chartHeight);\n }\n var needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n steps[axis.id] = position - Number(needSpace) * axisSize.height;\n position += (needSpace ? -1 : 1) * axisSize.height;\n });\n return steps;\n});\nexport var selectAllYAxesOffsetSteps = createSelector(selectChartWidth, selectChartOffsetInternal, selectAllYAxesWithOffsetType, pickAxisOrientation, pickMirror, (chartWidth, offset, allAxesWithSameOffsetType, orientation, mirror) => {\n var steps = {};\n var position;\n allAxesWithSameOffsetType.forEach(axis => {\n var axisSize = getYAxisSize(offset, axis);\n if (position == null) {\n position = combineYAxisPositionStartingPoint(offset, orientation, chartWidth);\n }\n var needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n steps[axis.id] = position - Number(needSpace) * axisSize.width;\n position += (needSpace ? -1 : 1) * axisSize.width;\n });\n return steps;\n});\nvar selectXAxisOffsetSteps = (state, axisId) => {\n var axisSettings = selectXAxisSettings(state, axisId);\n if (axisSettings == null) {\n return undefined;\n }\n return selectAllXAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\nexport var selectXAxisPosition = createSelector([selectChartOffsetInternal, selectXAxisSettings, selectXAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {\n if (axisSettings == null) {\n return undefined;\n }\n var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];\n if (stepOfThisAxis == null) {\n return {\n x: offset.left,\n y: 0\n };\n }\n return {\n x: offset.left,\n y: stepOfThisAxis\n };\n});\nvar selectYAxisOffsetSteps = (state, axisId) => {\n var axisSettings = selectYAxisSettings(state, axisId);\n if (axisSettings == null) {\n return undefined;\n }\n return selectAllYAxesOffsetSteps(state, axisSettings.orientation, axisSettings.mirror);\n};\nexport var selectYAxisPosition = createSelector([selectChartOffsetInternal, selectYAxisSettings, selectYAxisOffsetSteps, (_, axisId) => axisId], (offset, axisSettings, allSteps, axisId) => {\n if (axisSettings == null) {\n return undefined;\n }\n var stepOfThisAxis = allSteps === null || allSteps === void 0 ? void 0 : allSteps[axisId];\n if (stepOfThisAxis == null) {\n return {\n x: 0,\n y: offset.top\n };\n }\n return {\n x: stepOfThisAxis,\n y: offset.top\n };\n});\nexport var selectYAxisSize = createSelector(selectChartOffsetInternal, selectYAxisSettings, (offset, axisSettings) => {\n var width = typeof axisSettings.width === 'number' ? axisSettings.width : DEFAULT_Y_AXIS_WIDTH;\n return {\n width,\n height: offset.height\n };\n});\nexport var selectCartesianAxisSize = (state, axisType, axisId) => {\n switch (axisType) {\n case 'xAxis':\n {\n return selectXAxisSize(state, axisId).width;\n }\n case 'yAxis':\n {\n return selectYAxisSize(state, axisId).height;\n }\n default:\n {\n return undefined;\n }\n }\n};\nexport var combineDuplicateDomain = (chartLayout, appliedValues, axis, axisType) => {\n if (axis == null) {\n return undefined;\n }\n var allowDuplicatedCategory = axis.allowDuplicatedCategory,\n type = axis.type,\n dataKey = axis.dataKey;\n var isCategorical = isCategoricalAxis(chartLayout, axisType);\n var allData = appliedValues.map(av => av.value);\n var validData = allData.filter(v => v != null);\n if (dataKey && isCategorical && type === 'category' && allowDuplicatedCategory && hasDuplicate(validData)) {\n return allData;\n }\n return undefined;\n};\nexport var selectDuplicateDomain = createSelector([selectChartLayout, selectAllAppliedValues, selectBaseAxis, pickAxisType], combineDuplicateDomain);\nexport var selectAxisPropsNeededForCartesianGridTicksGenerator = createSelector([selectChartLayout, selectCartesianAxisSettings, selectRealScaleType, selectAxisScale, selectDuplicateDomain, selectCategoricalDomain, selectAxisRange, selectNiceTicks, pickAxisType], (layout, axis, realScaleType, scale, duplicateDomain, categoricalDomain, axisRange, niceTicks, axisType) => {\n if (axis == null) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n return {\n angle: axis.angle,\n interval: axis.interval,\n minTickGap: axis.minTickGap,\n orientation: axis.orientation,\n tick: axis.tick,\n tickCount: axis.tickCount,\n tickFormatter: axis.tickFormatter,\n ticks: axis.ticks,\n type: axis.type,\n unit: axis.unit,\n axisType,\n categoricalDomain,\n duplicateDomain,\n isCategorical,\n niceTicks,\n range: axisRange,\n realScaleType,\n scale\n };\n});\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport var combineAxisTicks = (layout, axis, realScaleType, scale, niceTicks, axisRange, duplicateDomain, categoricalDomain, axisType) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n var type = axis.type,\n ticks = axis.ticks,\n tickCount = axis.tickCount;\n var offsetForBand =\n // @ts-expect-error This is testing for `scaleBand` but for band axis the type is reported as `band` so this looks like a dead code with a workaround elsewhere?\n realScaleType === 'scaleBand' && typeof scale.bandwidth === 'function' ? scale.bandwidth() / 2 : 2;\n var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && axisRange != null && axisRange.length >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n var ticksOrNiceTicks = ticks || niceTicks;\n if (ticksOrNiceTicks) {\n return ticksOrNiceTicks.map((entry, index) => {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n var scaled = scale.map(scaleContent);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n index,\n coordinate: scaled + offset,\n value: entry,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis is a categorical axis, but the type of axis is not number and scale is not \"auto\"\n // For type='number' with linear scale (where niceTicks are available), skip this branch\n // so ticks are evenly spaced instead of placed at data positions (GitHub issue #4271)\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\nexport var selectTicksOfAxis = createSelector([selectChartLayout, selectRenderableAxisSettings, selectRealScaleType, selectAxisScale, selectNiceTicks, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineAxisTicks);\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport var combineGraphicalItemTicks = (layout, axis, scale, axisRange, duplicateDomain, categoricalDomain, axisType) => {\n if (axis == null || scale == null || axisRange == null || axisRange[0] === axisRange[1]) {\n return undefined;\n }\n var isCategorical = isCategoricalAxis(layout, axisType);\n var tickCount = axis.tickCount;\n var offset = 0;\n offset = axisType === 'angleAxis' && (axisRange === null || axisRange === void 0 ? void 0 : axisRange.length) >= 2 ? mathSign(axisRange[0] - axisRange[1]) * 2 * offset : offset;\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use unknown as index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\nexport var selectTicksOfGraphicalItem = createSelector([selectChartLayout, selectRenderableAxisSettings, selectAxisScale, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineGraphicalItemTicks);\n\n/**\n * This is the internal representation of an axis along with its scale function.\n * Here we have already computed the scale function for the axis,\n * and replaced the union type of scale (string | function) with just the function type.\n */\n\nexport var selectAxisWithScale = createSelector(selectBaseAxis, selectAxisScale, (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\nvar selectZAxisConfiguredScale = createSelector([selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse], combineConfiguredScale);\nvar selectZAxisScale = createSelector([selectZAxisConfiguredScale], rechartsScaleFactory);\nexport var selectZAxisWithScale = createSelector((state, _axisType, axisId) => selectZAxisSettings(state, axisId), selectZAxisScale, (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\n\n/**\n * We are also going to need to implement polar chart directions if we want to support keyboard controls for those.\n */\n\nexport var selectChartDirection = createSelector([selectChartLayout, selectAllXAxes, selectAllYAxes], (layout, allXAxes, allYAxes) => {\n switch (layout) {\n case 'horizontal':\n {\n return allXAxes.some(axis => axis.reversed) ? 'right-to-left' : 'left-to-right';\n }\n case 'vertical':\n {\n return allYAxes.some(axis => axis.reversed) ? 'bottom-to-top' : 'top-to-bottom';\n }\n // TODO: make this better. For now, right arrow triggers \"forward\", left arrow \"back\"\n // however, the tooltip moves an unintuitive direction because of how the indices are rendered\n case 'centric':\n case 'radial':\n {\n return 'left-to-right';\n }\n default:\n {\n return undefined;\n }\n }\n});\nexport var selectRenderedTicksOfAxis = (state, axisType, axisId) => {\n var _state$renderedTicks$;\n return (_state$renderedTicks$ = state.renderedTicks[axisType]) === null || _state$renderedTicks$ === void 0 ? void 0 : _state$renderedTicks$[axisId];\n};\nexport var selectAxisInverseTickSnapScale = createSelector([selectRenderedTicksOfAxis], ticks => {\n if (!ticks || ticks.length === 0) {\n return undefined;\n }\n return pixelValue => {\n var _closestTick;\n // Find the tick with the closest coordinate to pixelValue\n var minDistance = Infinity;\n var closestTick = ticks[0];\n for (var tick of ticks) {\n var distance = Math.abs(tick.coordinate - pixelValue);\n if (distance < minDistance) {\n minDistance = distance;\n closestTick = tick;\n }\n }\n return (_closestTick = closestTick) === null || _closestTick === void 0 ? void 0 : _closestTick.value;\n };\n});","import { useAppSelector } from '../hooks';\nexport var selectDefaultTooltipEventType = state => state.options.defaultTooltipEventType;\nexport var selectValidateTooltipEventTypes = state => state.options.validateTooltipEventTypes;\nexport function combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes) {\n if (shared == null) {\n return defaultTooltipEventType;\n }\n var eventType = shared ? 'axis' : 'item';\n if (validateTooltipEventTypes == null) {\n return defaultTooltipEventType;\n }\n return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;\n}\nexport function selectTooltipEventType(state, shared) {\n var defaultTooltipEventType = selectDefaultTooltipEventType(state);\n var validateTooltipEventTypes = selectValidateTooltipEventTypes(state);\n return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);\n}\nexport function useTooltipEventType(shared) {\n return useAppSelector(state => selectTooltipEventType(state, shared));\n}","import { isNan } from '../../../util/DataUtils';\nexport var combineActiveLabel = (tooltipTicks, activeIndex) => {\n var _tooltipTicks$n;\n var n = Number(activeIndex);\n if (isNan(n) || activeIndex == null) {\n return undefined;\n }\n return n >= 0 ? tooltipTicks === null || tooltipTicks === void 0 || (_tooltipTicks$n = tooltipTicks[n]) === null || _tooltipTicks$n === void 0 ? void 0 : _tooltipTicks$n.value : undefined;\n};","export var selectTooltipSettings = state => state.tooltip.settings;","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * One Tooltip can display multiple TooltipPayloadEntries at a time.\n */\n\n/**\n * So what happens is that the tooltip payload is decided based on the available data, and the dataKey.\n * The dataKey can either be defined on the graphical element (like Line, or Bar)\n * or on the tooltip itself.\n *\n * The data can be defined in the chart element, or in the graphical item.\n *\n * So this type is all the settings, other than the data + dataKey complications.\n */\n\n/**\n * This is what Tooltip renders.\n */\n\n/**\n * null means no active index\n * string means: whichever index from the chart data it is.\n * Different charts have different requirements on data shapes,\n * and are also responsible for providing a function that will accept this index\n * and return data.\n */\n\n/**\n * Different items have different data shapes so the state has no opinion on what the data shape should be;\n * the only requirement is that the chart also provides a searcher function\n * that accepts the data, and a key, and returns whatever the payload in Tooltip should be.\n */\n\n/**\n * So this informs the \"tooltip event type\". Tooltip event type can be either \"axis\" or \"item\"\n * and it is used for two things:\n * 1. Sets the active area\n * 2. Sets the background and cursor highlights\n *\n * Some charts only allow to have one type of tooltip event type, some allow both.\n * Those charts that allow both will have one default, and the \"shared\" prop will be used to switch between them.\n * Undefined means \"use the chart default\".\n *\n * Charts that only allow one tooltip event type, will ignore the shared prop.\n */\n\n/**\n * A generic state for user interaction with the chart.\n * User interaction can come through multiple channels: mouse events, keyboard events, or hardcoded in props, or synchronised from other charts.\n *\n * Each of the interaction states is represented as TooltipInteractionState,\n * and then the selectors and Tooltip will decide which of the interaction states to use.\n */\n\nexport var noInteraction = {\n active: false,\n index: null,\n dataKey: undefined,\n graphicalItemId: undefined,\n coordinate: undefined\n};\n\n/**\n * The tooltip interaction state stores:\n *\n * - Which graphical item is user interacting with at the moment,\n * - which axis (or, which part of chart background) is user interacting with at the moment\n * - The data that individual graphical items wish to be displayed in case the tooltip gets activated\n */\n\nexport var initialState = {\n itemInteraction: {\n click: noInteraction,\n hover: noInteraction\n },\n axisInteraction: {\n click: noInteraction,\n hover: noInteraction\n },\n keyboardInteraction: noInteraction,\n syncInteraction: {\n active: false,\n index: null,\n dataKey: undefined,\n label: undefined,\n coordinate: undefined,\n sourceViewBox: undefined,\n graphicalItemId: undefined\n },\n tooltipItemPayloads: [],\n settings: {\n shared: undefined,\n trigger: 'hover',\n axisId: 0,\n active: false,\n defaultIndex: undefined\n }\n};\n\n/**\n * This is the event we get when user is interacting with a specific graphical item.\n */\n\n/**\n * Keyboard interaction payload has no graphical item ID,\n * and no dataKey, because keyboard interaction is always\n * with the whole chart, not with a specific graphical item.\n */\n\nvar tooltipSlice = createSlice({\n name: 'tooltip',\n initialState,\n reducers: {\n addTooltipEntrySettings: {\n reducer(state, action) {\n state.tooltipItemPayloads.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n replaceTooltipEntrySettings: {\n reducer(state, action) {\n var _action$payload = action.payload,\n prev = _action$payload.prev,\n next = _action$payload.next;\n var index = current(state).tooltipItemPayloads.indexOf(castDraft(prev));\n if (index > -1) {\n state.tooltipItemPayloads[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeTooltipEntrySettings: {\n reducer(state, action) {\n var index = current(state).tooltipItemPayloads.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.tooltipItemPayloads.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n setTooltipSettingsState(state, action) {\n state.settings = action.payload;\n },\n setActiveMouseOverItemIndex(state, action) {\n state.syncInteraction.active = false;\n state.syncInteraction.sourceViewBox = undefined;\n state.keyboardInteraction.active = false;\n state.itemInteraction.hover.active = true;\n state.itemInteraction.hover.index = action.payload.activeIndex;\n state.itemInteraction.hover.dataKey = action.payload.activeDataKey;\n state.itemInteraction.hover.graphicalItemId = action.payload.activeGraphicalItemId;\n state.itemInteraction.hover.coordinate = action.payload.activeCoordinate;\n },\n mouseLeaveChart(state) {\n /*\n * Clear only the active flags. Why?\n * 1. Keep Coordinate to preserve animation - next time the Tooltip appears, we want to render it from\n * the last place where it was when it disappeared.\n * 2. We want to keep all the properties anyway just in case the tooltip has `active=true` prop\n * and continues being visible even after the mouse has left the chart.\n */\n state.itemInteraction.hover.active = false;\n state.axisInteraction.hover.active = false;\n },\n mouseLeaveItem(state) {\n state.itemInteraction.hover.active = false;\n },\n setActiveClickItemIndex(state, action) {\n state.syncInteraction.active = false;\n state.syncInteraction.sourceViewBox = undefined;\n state.itemInteraction.click.active = true;\n state.keyboardInteraction.active = false;\n state.itemInteraction.click.index = action.payload.activeIndex;\n state.itemInteraction.click.dataKey = action.payload.activeDataKey;\n state.itemInteraction.click.graphicalItemId = action.payload.activeGraphicalItemId;\n state.itemInteraction.click.coordinate = action.payload.activeCoordinate;\n },\n setMouseOverAxisIndex(state, action) {\n state.syncInteraction.active = false;\n state.syncInteraction.sourceViewBox = undefined;\n state.axisInteraction.hover.active = true;\n state.keyboardInteraction.active = false;\n state.axisInteraction.hover.index = action.payload.activeIndex;\n state.axisInteraction.hover.dataKey = action.payload.activeDataKey;\n state.axisInteraction.hover.coordinate = action.payload.activeCoordinate;\n },\n setMouseClickAxisIndex(state, action) {\n state.syncInteraction.active = false;\n state.syncInteraction.sourceViewBox = undefined;\n state.keyboardInteraction.active = false;\n state.axisInteraction.click.active = true;\n state.axisInteraction.click.index = action.payload.activeIndex;\n state.axisInteraction.click.dataKey = action.payload.activeDataKey;\n state.axisInteraction.click.coordinate = action.payload.activeCoordinate;\n },\n setSyncInteraction(state, action) {\n state.syncInteraction = action.payload;\n },\n setKeyboardInteraction(state, action) {\n state.keyboardInteraction.active = action.payload.active;\n state.keyboardInteraction.index = action.payload.activeIndex;\n state.keyboardInteraction.coordinate = action.payload.activeCoordinate;\n }\n }\n});\nvar _tooltipSlice$actions = tooltipSlice.actions,\n addTooltipEntrySettings = _tooltipSlice$actions.addTooltipEntrySettings,\n replaceTooltipEntrySettings = _tooltipSlice$actions.replaceTooltipEntrySettings,\n removeTooltipEntrySettings = _tooltipSlice$actions.removeTooltipEntrySettings,\n setTooltipSettingsState = _tooltipSlice$actions.setTooltipSettingsState,\n setActiveMouseOverItemIndex = _tooltipSlice$actions.setActiveMouseOverItemIndex,\n mouseLeaveItem = _tooltipSlice$actions.mouseLeaveItem,\n mouseLeaveChart = _tooltipSlice$actions.mouseLeaveChart,\n setActiveClickItemIndex = _tooltipSlice$actions.setActiveClickItemIndex,\n setMouseOverAxisIndex = _tooltipSlice$actions.setMouseOverAxisIndex,\n setMouseClickAxisIndex = _tooltipSlice$actions.setMouseClickAxisIndex,\n setSyncInteraction = _tooltipSlice$actions.setSyncInteraction,\n setKeyboardInteraction = _tooltipSlice$actions.setKeyboardInteraction;\nexport { addTooltipEntrySettings, replaceTooltipEntrySettings, removeTooltipEntrySettings, setTooltipSettingsState, setActiveMouseOverItemIndex, mouseLeaveItem, mouseLeaveChart, setActiveClickItemIndex, setMouseOverAxisIndex, setMouseClickAxisIndex, setSyncInteraction, setKeyboardInteraction };\nexport var tooltipReducer = tooltipSlice.reducer;","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { noInteraction } from '../../tooltipSlice';\nfunction chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger) {\n if (tooltipEventType === 'axis') {\n if (trigger === 'click') {\n return tooltipState.axisInteraction.click;\n }\n return tooltipState.axisInteraction.hover;\n }\n if (trigger === 'click') {\n return tooltipState.itemInteraction.click;\n }\n return tooltipState.itemInteraction.hover;\n}\nfunction hasBeenActivePreviously(tooltipInteractionState) {\n return tooltipInteractionState.index != null;\n}\nexport var combineTooltipInteractionState = (tooltipState, tooltipEventType, trigger, defaultIndex) => {\n if (tooltipEventType == null) {\n return noInteraction;\n }\n var appropriateMouseInteraction = chooseAppropriateMouseInteraction(tooltipState, tooltipEventType, trigger);\n if (appropriateMouseInteraction == null) {\n return noInteraction;\n }\n if (appropriateMouseInteraction.active) {\n return appropriateMouseInteraction;\n }\n if (tooltipState.keyboardInteraction.active) {\n return tooltipState.keyboardInteraction;\n }\n if (tooltipState.syncInteraction.active && tooltipState.syncInteraction.index != null) {\n return tooltipState.syncInteraction;\n }\n var activeFromProps = tooltipState.settings.active === true;\n if (hasBeenActivePreviously(appropriateMouseInteraction)) {\n if (activeFromProps) {\n return _objectSpread(_objectSpread({}, appropriateMouseInteraction), {}, {\n active: true\n });\n }\n } else if (defaultIndex != null) {\n return {\n active: true,\n coordinate: undefined,\n dataKey: undefined,\n index: defaultIndex,\n graphicalItemId: undefined\n };\n }\n return _objectSpread(_objectSpread({}, noInteraction), {}, {\n coordinate: appropriateMouseInteraction.coordinate\n });\n};","import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\nimport { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\nfunction toFiniteNumber(value) {\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n if (value instanceof Date) {\n var numericValue = value.valueOf();\n return Number.isFinite(numericValue) ? numericValue : undefined;\n }\n var parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\nfunction isValueWithinNumberDomain(value, domain) {\n var numericValue = toFiniteNumber(value);\n var lowerBound = domain[0];\n var upperBound = domain[1];\n if (numericValue === undefined) {\n return false;\n }\n var min = Math.min(lowerBound, upperBound);\n var max = Math.max(lowerBound, upperBound);\n return numericValue >= min && numericValue <= max;\n}\nfunction isValueWithinDomain(entry, axisDataKey, domain) {\n if (domain == null || axisDataKey == null) {\n return true;\n }\n var value = getValueByDataKey(entry, axisDataKey);\n if (value == null) {\n return true;\n }\n if (!isWellFormedNumberDomain(domain)) {\n return true;\n }\n return isValueWithinNumberDomain(value, domain);\n}\nexport var combineActiveTooltipIndex = (tooltipInteraction, chartData, axisDataKey, domain) => {\n var desiredIndex = tooltipInteraction === null || tooltipInteraction === void 0 ? void 0 : tooltipInteraction.index;\n if (desiredIndex == null) {\n return null;\n }\n var indexAsNumber = Number(desiredIndex);\n if (!isWellBehavedNumber(indexAsNumber)) {\n // this is for charts like Sankey and Treemap that do not support numerical indexes. We need a proper solution for this before we can start supporting keyboard events on these charts.\n return desiredIndex;\n }\n\n /*\n * Zero is a trivial limit for single-dimensional charts like Line and Area,\n * but this also needs a support for multidimensional charts like Sankey and Treemap! TODO\n */\n var lowerLimit = 0;\n var upperLimit = +Infinity;\n if (chartData.length > 0) {\n upperLimit = chartData.length - 1;\n }\n\n // now let's clamp the desiredIndex between the limits\n var clampedIndex = Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit));\n var entry = chartData[clampedIndex];\n if (entry == null) {\n return String(clampedIndex);\n }\n if (!isValueWithinDomain(entry, axisDataKey, domain)) {\n return null;\n }\n return String(clampedIndex);\n};","export var combineCoordinateForDefaultIndex = (width, height, layout, offset, tooltipTicks, defaultIndex, tooltipConfigurations) => {\n if (defaultIndex == null) {\n return undefined;\n }\n /*\n * With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display.\n * Maybe one day we could add new prop `activeGraphicalItemId` to the chart to help with that.\n * Until then, we choose the first one.\n */\n var firstConfiguration = tooltipConfigurations[0];\n var maybePosition = firstConfiguration === null || firstConfiguration === void 0 ? void 0 : firstConfiguration.getPosition(defaultIndex);\n if (maybePosition != null) {\n return maybePosition;\n }\n var tick = tooltipTicks === null || tooltipTicks === void 0 ? void 0 : tooltipTicks[Number(defaultIndex)];\n if (!tick) {\n return undefined;\n }\n switch (layout) {\n case 'horizontal':\n {\n return {\n x: tick.coordinate,\n y: (offset.top + height) / 2\n };\n }\n default:\n {\n // This logic is not super sound - it conflates vertical, radial, centric layouts into just one. TODO improve!\n return {\n x: (offset.left + width) / 2,\n y: tick.coordinate\n };\n }\n }\n};","export var combineTooltipPayloadConfigurations = (tooltipState, tooltipEventType, trigger, defaultIndex) => {\n // if tooltip reacts to axis interaction, then we display all items at the same time.\n if (tooltipEventType === 'axis') {\n return tooltipState.tooltipItemPayloads;\n }\n /*\n * By now we already know that tooltipEventType is 'item', so we can only search in itemInteractions.\n * item means that only the hovered or clicked item will be present in the tooltip.\n */\n if (tooltipState.tooltipItemPayloads.length === 0) {\n // No point filtering if the payload is empty\n return [];\n }\n var filterByGraphicalItemId;\n if (trigger === 'hover') {\n filterByGraphicalItemId = tooltipState.itemInteraction.hover.graphicalItemId;\n } else {\n filterByGraphicalItemId = tooltipState.itemInteraction.click.graphicalItemId;\n }\n if (tooltipState.syncInteraction.active && filterByGraphicalItemId == null) {\n /*\n * When a tooltip is synchronised from another chart, the local itemInteraction\n * has no graphicalItemId because the user hasn't hovered over this chart.\n * In that case we show all tooltip items so the receiving chart can display\n * its own data at the synced index — matching the behaviour of axis-type tooltips.\n */\n return tooltipState.tooltipItemPayloads;\n }\n if (filterByGraphicalItemId == null && (defaultIndex != null || tooltipState.keyboardInteraction.active)) {\n /*\n * So when we use `defaultIndex` - we don't have a dataKey to filter by because user did not hover over anything yet.\n * In that case let's display the first item in the tooltip; after all, this is `item` interaction case,\n * so we should display only one item at a time instead of all.\n */\n var firstItemPayload = tooltipState.tooltipItemPayloads[0];\n if (firstItemPayload != null) {\n return [firstItemPayload];\n }\n return [];\n }\n return tooltipState.tooltipItemPayloads.filter(tpc => {\n var _tpc$settings;\n return ((_tpc$settings = tpc.settings) === null || _tpc$settings === void 0 ? void 0 : _tpc$settings.graphicalItemId) === filterByGraphicalItemId;\n });\n};","export var selectTooltipPayloadSearcher = state => state.options.tooltipPayloadSearcher;","export var selectTooltipState = state => state.tooltip;","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { findEntryInArray } from '../../../util/DataUtils';\nimport { getTooltipEntry, getValueByDataKey } from '../../../util/ChartUtils';\nimport { getSliced } from '../../../util/getSliced';\nfunction parseName(value) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n return undefined;\n}\nfunction parseUnit(value) {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n return undefined;\n}\nfunction parseDataKey(value) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n if (typeof value === 'function') {\n return obj => value(obj);\n }\n return undefined;\n}\nfunction parseColor(value) {\n if (typeof value === 'string') {\n return value;\n }\n return undefined;\n}\nfunction parseTooltipPayloadItem(item) {\n if (item == null || typeof item !== 'object') {\n return undefined;\n }\n var name = 'name' in item ? parseName(item.name) : undefined;\n var unit = 'unit' in item ? parseUnit(item.unit) : undefined;\n var dataKey = 'dataKey' in item ? parseDataKey(item.dataKey) : undefined;\n var payload = 'payload' in item ? item.payload : undefined;\n var color = 'color' in item ? parseColor(item.color) : undefined;\n var fill = 'fill' in item ? parseColor(item.fill) : undefined;\n return {\n name,\n unit,\n dataKey,\n payload,\n color,\n fill\n };\n}\nfunction selectFinalData(dataDefinedOnItem, dataDefinedOnChart) {\n /*\n * If a payload has data specified directly from the graphical item, prefer that.\n * Otherwise, fill in data from the chart level, using the same index.\n */\n if (dataDefinedOnItem != null) {\n return dataDefinedOnItem;\n }\n return dataDefinedOnChart;\n}\nexport var combineTooltipPayload = (tooltipPayloadConfigurations, activeIndex, chartDataState, tooltipAxisDataKey, activeLabel, tooltipPayloadSearcher, tooltipEventType) => {\n if (activeIndex == null || tooltipPayloadSearcher == null) {\n return undefined;\n }\n var chartData = chartDataState.chartData,\n computedData = chartDataState.computedData,\n dataStartIndex = chartDataState.dataStartIndex,\n dataEndIndex = chartDataState.dataEndIndex;\n var init = [];\n return tooltipPayloadConfigurations.reduce((agg, _ref) => {\n var _settings$dataKey;\n var dataDefinedOnItem = _ref.dataDefinedOnItem,\n settings = _ref.settings;\n var finalData = selectFinalData(dataDefinedOnItem, chartData);\n var sliced = Array.isArray(finalData) ? getSliced(finalData, dataStartIndex, dataEndIndex) : finalData;\n var finalDataKey = (_settings$dataKey = settings === null || settings === void 0 ? void 0 : settings.dataKey) !== null && _settings$dataKey !== void 0 ? _settings$dataKey : tooltipAxisDataKey;\n // BaseAxisProps does not support nameKey but it could!\n var finalNameKey = settings === null || settings === void 0 ? void 0 : settings.nameKey; // ?? tooltipAxis?.nameKey;\n var tooltipPayload;\n if (tooltipAxisDataKey && Array.isArray(sliced) &&\n /*\n * findEntryInArray won't work for Scatter because Scatter provides an array of arrays\n * as tooltip payloads and findEntryInArray is not prepared to handle that.\n * Sad but also ScatterChart only allows 'item' tooltipEventType\n * and also this is only a problem if there are multiple Scatters and each has its own data array\n * so let's fix that some other time.\n */\n !Array.isArray(sliced[0]) &&\n /*\n * If the tooltipEventType is 'axis', we should search for the dataKey in the sliced data\n * because thanks to allowDuplicatedCategory=false, the order of elements in the array\n * no longer matches the order of elements in the original data\n * and so we need to search by the active dataKey + label rather than by index.\n *\n * The same happens if multiple graphical items are present in the chart\n * and each of them has its own data array. Those arrays get concatenated\n * and again the tooltip index no longer matches the original data.\n *\n * On the other hand the tooltipEventType 'item' should always search by index\n * because we get the index from interacting over the individual elements\n * which is always accurate, irrespective of the allowDuplicatedCategory setting.\n */\n tooltipEventType === 'axis') {\n tooltipPayload = findEntryInArray(sliced, tooltipAxisDataKey, activeLabel);\n /*\n * When allowDuplicatedCategory is false and there are duplicate category values\n * in the data, findEntryInArray returns only the first matching entry.\n * If the user hovers over a bar that corresponds to a later duplicate,\n * the activeIndex provides the correct position. We fall back to the index-based\n * search when the label-based search returns undefined, which can happen\n * when the activeLabel does not precisely match any data entry (e.g., due to\n * type coercion differences between tick values and data values).\n */\n if (tooltipPayload == null) {\n tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);\n }\n } else {\n /*\n * This is a problem because it assumes that the index is pointing to the displayed data\n * which it isn't because the index is pointing to the tooltip ticks array.\n * The above approach (with findEntryInArray) is the correct one, but it only works\n * if the axis dataKey is defined explicitly, and if the data is an array of objects.\n */\n tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);\n }\n if (Array.isArray(tooltipPayload)) {\n tooltipPayload.forEach(item => {\n var _parsedItem$color, _parsedItem$fill;\n var parsedItem = parseTooltipPayloadItem(item);\n var itemName = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.name;\n var itemDataKey = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.dataKey;\n var itemPayload = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.payload;\n var newSettings = _objectSpread(_objectSpread({}, settings), {}, {\n name: itemName,\n unit: parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.unit,\n // Preserve item-level color/fill from graphical items.\n color: (_parsedItem$color = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.color) !== null && _parsedItem$color !== void 0 ? _parsedItem$color : settings === null || settings === void 0 ? void 0 : settings.color,\n fill: (_parsedItem$fill = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.fill) !== null && _parsedItem$fill !== void 0 ? _parsedItem$fill : settings === null || settings === void 0 ? void 0 : settings.fill\n });\n agg.push(getTooltipEntry({\n tooltipEntrySettings: newSettings,\n dataKey: itemDataKey,\n payload: itemPayload,\n value: getValueByDataKey(itemPayload, itemDataKey),\n name: itemName == null ? undefined : String(itemName)\n }));\n });\n } else {\n var _getValueByDataKey;\n // I am not quite sure why these two branches (Array vs Array of Arrays) have to behave differently - I imagine we should unify these. 3.x breaking change?\n agg.push(getTooltipEntry({\n tooltipEntrySettings: settings,\n dataKey: finalDataKey,\n payload: tooltipPayload,\n // getValueByDataKey does not validate the output type\n value: getValueByDataKey(tooltipPayload, finalDataKey),\n // getValueByDataKey does not validate the output type\n name: (_getValueByDataKey = getValueByDataKey(tooltipPayload, finalNameKey)) !== null && _getValueByDataKey !== void 0 ? _getValueByDataKey : settings === null || settings === void 0 ? void 0 : settings.name\n }));\n }\n return agg;\n }, init);\n};","import { createSelector } from 'reselect';\nimport { combineAllAppliedValues, combineAreasDomain, combineAxisDomain, combineAxisDomainWithNiceTicks, combineCategoricalDomain, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineDomainOfStackGroups, combineDotsDomain, combineDuplicateDomain, combineGraphicalItemsData, combineGraphicalItemsSettings, combineLinesDomain, combineNiceTicks, combineNumericalDomain, combineStackGroups, filterGraphicalNotStackedItems, filterReferenceElements, getDomainDefinition, itemAxisPredicate, mergeDomains, selectAllErrorBarSettings, selectAxisRange, selectHasBar, selectReferenceAreas, selectReferenceDots, selectReferenceLines, selectTooltipAxis, selectTooltipAxisDataKey } from './axisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes, selectChartDataSliceWithIndexes } from './dataSelectors';\nimport { selectChartName, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';\nimport { isNotNil, mathSign } from '../../util/DataUtils';\nimport { combineAxisRangeWithReverse } from './combiners/combineAxisRangeWithReverse';\nimport { combineTooltipEventType, selectDefaultTooltipEventType, selectValidateTooltipEventTypes } from './selectTooltipEventType';\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\nimport { selectTooltipSettings } from './selectTooltipSettings';\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport { selectTooltipAxisId } from './selectTooltipAxisId';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nimport { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { isStacked } from '../types/StackedGraphicalItem';\nimport { numericalDomainSpecifiedWithoutRequiringData } from '../../util/isDomainSpecifiedByUser';\nimport { numberDomainEqualityCheck } from './numberDomainEqualityCheck';\nimport { emptyArraysAreEqualCheck } from './arrayEqualityCheck';\nimport { rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { combineRealScaleType } from './combiners/combineRealScaleType';\nimport { combineConfiguredScale } from './combiners/combineConfiguredScale';\nexport var selectTooltipAxisRealScaleType = createSelector([selectTooltipAxis, selectHasBar, selectChartName], combineRealScaleType);\nexport var selectAllUnfilteredGraphicalItems = createSelector([state => state.graphicalItems.cartesianItems, state => state.graphicalItems.polarItems], (cartesianItems, polarItems) => [...cartesianItems, ...polarItems]);\nvar selectTooltipAxisPredicate = createSelector([selectTooltipAxisType, selectTooltipAxisId], itemAxisPredicate);\nexport var selectAllGraphicalItemsSettings = createSelector([selectAllUnfilteredGraphicalItems, selectTooltipAxis, selectTooltipAxisPredicate], combineGraphicalItemsSettings, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nvar selectAllStackedGraphicalItemsSettings = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));\nexport var selectTooltipGraphicalItemsData = createSelector([selectAllGraphicalItemsSettings], combineGraphicalItemsData, {\n memoizeOptions: {\n resultEqualityCheck: emptyArraysAreEqualCheck\n }\n});\nvar selectAnyTooltipItemUsesChartData = createSelector([selectAllGraphicalItemsSettings], items => items.some(item => !item.data));\n\n/**\n * Data for tooltip always use the data with indexes set by a Brush,\n * and never accept the isPanorama flag:\n * because Tooltip never displays inside the panorama anyway\n * so we don't need to worry what would happen there.\n */\nexport var selectTooltipDisplayedData = createSelector([selectTooltipGraphicalItemsData, selectChartDataWithIndexes], combineDisplayedData);\nvar selectTooltipStackedData = createSelector([selectAllStackedGraphicalItemsSettings, selectChartDataWithIndexes, selectTooltipAxis], combineDisplayedStackedData);\nvar selectAllTooltipAppliedValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectAllGraphicalItemsSettings, selectChartDataWithIndexes, selectAnyTooltipItemUsesChartData, selectTooltipGraphicalItemsData], combineAllAppliedValues);\nvar selectTooltipAxisDomainDefinition = createSelector([selectTooltipAxis], getDomainDefinition);\nvar selectTooltipDataOverflow = createSelector([selectTooltipAxis], axisSettings => axisSettings.allowDataOverflow);\nvar selectTooltipDomainFromUserPreferences = createSelector([selectTooltipAxisDomainDefinition, selectTooltipDataOverflow], numericalDomainSpecifiedWithoutRequiringData);\nvar selectAllStackedGraphicalItems = createSelector([selectAllGraphicalItemsSettings], graphicalItems => graphicalItems.filter(isStacked));\nvar selectTooltipStackGroups = createSelector([selectTooltipStackedData, selectAllStackedGraphicalItems, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);\nvar selectTooltipDomainOfStackGroups = createSelector([selectTooltipStackGroups, selectChartDataWithIndexes, selectTooltipAxisType, selectTooltipDomainFromUserPreferences], combineDomainOfStackGroups);\nvar selectTooltipItemsSettingsExceptStacked = createSelector([selectAllGraphicalItemsSettings], filterGraphicalNotStackedItems);\nvar selectDomainOfAllAppliedNumericalValuesIncludingErrorValues = createSelector([selectTooltipDisplayedData, selectTooltipAxis, selectTooltipItemsSettingsExceptStacked, selectAllErrorBarSettings, selectTooltipAxisType, selectChartDataSliceWithIndexes], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, {\n memoizeOptions: {\n resultEqualityCheck: numberDomainEqualityCheck\n }\n});\nvar selectReferenceDotsByTooltipAxis = createSelector([selectReferenceDots, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceDotsDomain = createSelector([selectReferenceDotsByTooltipAxis, selectTooltipAxisType], combineDotsDomain);\nvar selectReferenceAreasByTooltipAxis = createSelector([selectReferenceAreas, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceAreasDomain = createSelector([selectReferenceAreasByTooltipAxis, selectTooltipAxisType], combineAreasDomain);\nvar selectReferenceLinesByTooltipAxis = createSelector([selectReferenceLines, selectTooltipAxisType, selectTooltipAxisId], filterReferenceElements);\nvar selectTooltipReferenceLinesDomain = createSelector([selectReferenceLinesByTooltipAxis, selectTooltipAxisType], combineLinesDomain);\nvar selectTooltipReferenceElementsDomain = createSelector([selectTooltipReferenceDotsDomain, selectTooltipReferenceLinesDomain, selectTooltipReferenceAreasDomain], mergeDomains);\nvar selectTooltipNumericalDomain = createSelector([selectTooltipAxis, selectTooltipAxisDomainDefinition, selectTooltipDomainFromUserPreferences, selectTooltipDomainOfStackGroups, selectDomainOfAllAppliedNumericalValuesIncludingErrorValues, selectTooltipReferenceElementsDomain, selectChartLayout, selectTooltipAxisType], combineNumericalDomain);\nexport var selectTooltipAxisDomain = createSelector([selectTooltipAxis, selectChartLayout, selectTooltipDisplayedData, selectAllTooltipAppliedValues, selectStackOffsetType, selectTooltipAxisType, selectTooltipNumericalDomain], combineAxisDomain);\nvar selectTooltipNiceTicks = createSelector([selectTooltipAxisDomain, selectTooltipAxis, selectTooltipAxisRealScaleType], combineNiceTicks);\nexport var selectTooltipAxisDomainIncludingNiceTicks = createSelector([selectTooltipAxis, selectTooltipAxisDomain, selectTooltipNiceTicks, selectTooltipAxisType], combineAxisDomainWithNiceTicks);\nvar selectTooltipAxisRange = state => {\n var axisType = selectTooltipAxisType(state);\n var axisId = selectTooltipAxisId(state);\n var isPanorama = false; // Tooltip never displays in panorama so this is safe to assume\n return selectAxisRange(state, axisType, axisId, isPanorama);\n};\nexport var selectTooltipAxisRangeWithReverse = createSelector([selectTooltipAxis, selectTooltipAxisRange], combineAxisRangeWithReverse);\nvar selectTooltipConfiguredScale = createSelector([selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisDomainIncludingNiceTicks, selectTooltipAxisRangeWithReverse], combineConfiguredScale);\nexport var selectTooltipAxisScale = createSelector([selectTooltipConfiguredScale], rechartsScaleFactory);\nvar selectTooltipDuplicateDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineDuplicateDomain);\nexport var selectTooltipCategoricalDomain = createSelector([selectChartLayout, selectAllTooltipAppliedValues, selectTooltipAxis, selectTooltipAxisType], combineCategoricalDomain);\nvar combineTicksOfTooltipAxis = (layout, axis, realScaleType, scale, range, duplicateDomain, categoricalDomain, axisType) => {\n if (!axis) {\n return undefined;\n }\n var type = axis.type;\n var isCategorical = isCategoricalAxis(layout, axisType);\n if (!scale) {\n return undefined;\n }\n var offsetForBand = realScaleType === 'scaleBand' && scale.bandwidth ? scale.bandwidth() / 2 : 2;\n var offset = type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axisType === 'angleAxis' && range != null && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // When axis is a categorical axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (isCategorical && categoricalDomain) {\n return categoricalDomain.map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as an index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\nexport var selectTooltipAxisTicks = createSelector([selectChartLayout, selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisScale, selectTooltipAxisRange, selectTooltipDuplicateDomain, selectTooltipCategoricalDomain, selectTooltipAxisType], combineTicksOfTooltipAxis);\nvar selectTooltipEventType = createSelector([selectDefaultTooltipEventType, selectValidateTooltipEventTypes, selectTooltipSettings], (defaultTooltipEventType, validateTooltipEventType, settings) => combineTooltipEventType(settings.shared, defaultTooltipEventType, validateTooltipEventType));\nvar selectTooltipTrigger = state => state.tooltip.settings.trigger;\nvar selectDefaultIndex = state => state.tooltip.settings.defaultIndex;\nvar selectTooltipInteractionState = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipInteractionState);\nexport var selectActiveTooltipIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain], combineActiveTooltipIndex);\nexport var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveTooltipIndex], combineActiveLabel);\nexport var selectActiveTooltipDataKey = createSelector([selectTooltipInteractionState], tooltipInteraction => {\n if (!tooltipInteraction) {\n return undefined;\n }\n return tooltipInteraction.dataKey;\n});\nexport var selectActiveTooltipGraphicalItemId = createSelector([selectTooltipInteractionState], tooltipInteraction => {\n if (!tooltipInteraction) {\n return undefined;\n }\n return tooltipInteraction.graphicalItemId;\n});\nvar selectTooltipPayloadConfigurations = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipPayloadConfigurations);\nvar selectTooltipCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, selectDefaultIndex, selectTooltipPayloadConfigurations], combineCoordinateForDefaultIndex);\nexport var selectActiveTooltipCoordinate = createSelector([selectTooltipInteractionState, selectTooltipCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {\n if (tooltipInteractionState !== null && tooltipInteractionState !== void 0 && tooltipInteractionState.coordinate) {\n return tooltipInteractionState.coordinate;\n }\n return defaultIndexCoordinate;\n});\nexport var selectIsTooltipActive = createSelector([selectTooltipInteractionState], tooltipInteractionState => {\n var _tooltipInteractionSt;\n return (_tooltipInteractionSt = tooltipInteractionState === null || tooltipInteractionState === void 0 ? void 0 : tooltipInteractionState.active) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : false;\n});\nexport var selectActiveTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveTooltipIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, selectTooltipEventType], combineTooltipPayload);\nexport var selectActiveTooltipDataPoints = createSelector([selectActiveTooltipPayload], payload => {\n if (payload == null) {\n return undefined;\n }\n var dataPoints = payload.map(p => p.payload).filter(p => p != null);\n return Array.from(new Set(dataPoints));\n});","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { useAppSelector } from '../state/hooks';\nimport { getBandSizeOfAxis } from '../util/ChartUtils';\nimport { selectTooltipAxis } from '../state/selectors/axisSelectors';\nimport { selectTooltipAxisScale, selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\nexport var useTooltipAxis = () => useAppSelector(selectTooltipAxis);\nexport var useTooltipAxisBandSize = () => {\n var tooltipAxis = useTooltipAxis();\n var tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n var tooltipAxisScale = useAppSelector(selectTooltipAxisScale);\n if (!tooltipAxis || !tooltipAxisScale) {\n return getBandSizeOfAxis(undefined, tooltipTicks);\n }\n return getBandSizeOfAxis(_objectSpread(_objectSpread({}, tooltipAxis), {}, {\n scale: tooltipAxisScale\n }), tooltipTicks);\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { polarToCartesian } from './PolarUtils';\nimport { mathSign } from './DataUtils';\nexport var getActiveCartesianCoordinate = (layout, tooltipTicks, activeIndex, pointer) => {\n var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: pointer.relativeY\n };\n }\n if (layout === 'vertical') {\n return {\n x: pointer.relativeX,\n y: entry.coordinate\n };\n }\n }\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * Get the active coordinate in polar coordinate system.\n * Internally we only really use x and y, but this returned object is part of public API\n * (because it goes straight to the tooltip content) so we keep all the other properties\n * for backwards compatibility.\n *\n * @param layout - The polar layout type ('centric' or 'radial').\n * @param tooltipTicks - Array of tick items used for tooltips.\n * @param activeIndex - The index of the active tick.\n * @param rangeObj - The range object containing polar chart properties.\n * @returns The active coordinate object with polar properties.\n */\nexport var getActivePolarCoordinate = (layout, tooltipTicks, activeIndex, rangeObj) => {\n var entry = tooltipTicks.find(tick => tick && tick.index === activeIndex);\n if (entry) {\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle,\n radius\n });\n }\n return {\n angle: 0,\n clockWise: false,\n cx: 0,\n cy: 0,\n endAngle: 0,\n innerRadius: 0,\n outerRadius: 0,\n radius: 0,\n startAngle: 0,\n x: 0,\n y: 0\n };\n};\nexport function isInCartesianRange(pointer, offset) {\n var x = pointer.relativeX,\n y = pointer.relativeY;\n return x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n}\nexport var calculateActiveTickIndex = (coordinate, ticks, unsortedTicks, axisType, range) => {\n var _ticks$length;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or fewer ticks or if there is no coordinate then the active tick is at index 0\n if (len <= 1 || coordinate == null) {\n return 0;\n }\n if (axisType === 'angleAxis' && range != null && Math.abs(Math.abs(range[1] - range[0]) - 360) <= 1e-6) {\n // ticks are distributed in a circle\n var span = range[1] - range[0];\n /*\n * Tick coordinates can be shifted outside of the range (e.g. by the band offset\n * that tooltip ticks receive), so both the coordinate and the intervals live\n * modulo the full circle. Testing the coordinate shifted by a whole turn in both\n * directions closes the wrap-around gap where no interval matched\n * and the active index came back as -1.\n * https://github.com/recharts/recharts/issues/5099\n */\n var isInside = (lowerLimit, upperLimit, inclusiveLower) => [coordinate, coordinate + span, coordinate - span].some(c => (inclusiveLower ? c >= lowerLimit : c > lowerLimit) && c <= upperLimit);\n for (var i = 0; i < len; i++) {\n var _unsortedTicks, _unsortedTicks2, _unsortedTicks$i, _unsortedTicks$, _unsortedTicks3;\n var before = i > 0 ? (_unsortedTicks = unsortedTicks[i - 1]) === null || _unsortedTicks === void 0 ? void 0 : _unsortedTicks.coordinate : (_unsortedTicks2 = unsortedTicks[len - 1]) === null || _unsortedTicks2 === void 0 ? void 0 : _unsortedTicks2.coordinate;\n var cur = (_unsortedTicks$i = unsortedTicks[i]) === null || _unsortedTicks$i === void 0 ? void 0 : _unsortedTicks$i.coordinate;\n var after = i >= len - 1 ? (_unsortedTicks$ = unsortedTicks[0]) === null || _unsortedTicks$ === void 0 ? void 0 : _unsortedTicks$.coordinate : (_unsortedTicks3 = unsortedTicks[i + 1]) === null || _unsortedTicks3 === void 0 ? void 0 : _unsortedTicks3.coordinate;\n var sameDirectionCoord = void 0;\n if (before == null || cur == null || after == null) {\n continue;\n }\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (isInside(sameInterval[0], sameInterval[1], false) || isInside(diffInterval[0], diffInterval[1], true)) {\n var _unsortedTicks$i2;\n return (_unsortedTicks$i2 = unsortedTicks[i]) === null || _unsortedTicks$i2 === void 0 ? void 0 : _unsortedTicks$i2.index;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (isInside((minValue + cur) / 2, (maxValue + cur) / 2, false)) {\n var _unsortedTicks$i3;\n return (_unsortedTicks$i3 = unsortedTicks[i]) === null || _unsortedTicks$i3 === void 0 ? void 0 : _unsortedTicks$i3.index;\n }\n }\n }\n } else if (ticks) {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n var curr = ticks[_i];\n if (curr == null) {\n continue;\n }\n var next = ticks[_i + 1];\n var prev = ticks[_i - 1];\n if (_i === 0 && next != null && coordinate <= (curr.coordinate + next.coordinate) / 2) {\n return curr.index;\n }\n if (_i === len - 1 && prev != null && coordinate > (curr.coordinate + prev.coordinate) / 2) {\n return curr.index;\n }\n if (_i > 0 && _i < len - 1 && prev != null && next != null && coordinate > (curr.coordinate + prev.coordinate) / 2 && coordinate <= (curr.coordinate + next.coordinate) / 2) {\n return curr.index;\n }\n }\n }\n return -1;\n};","import { createSelector } from 'reselect';\nimport sortBy from 'es-toolkit/compat/sortBy';\nimport { useAppSelector } from '../hooks';\nimport { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes } from './dataSelectors';\nimport { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './tooltipSelectors';\nimport { selectTooltipAxisDataKey } from './axisSelectors';\nimport { selectChartName } from './rootPropsSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nimport { combineActiveLabel } from './combiners/combineActiveLabel';\nimport { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';\nimport { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';\nimport { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';\nimport { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';\nimport { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';\nimport { selectTooltipState } from './selectTooltipState';\nimport { combineTooltipPayload } from './combiners/combineTooltipPayload';\nimport { calculateActiveTickIndex, getActiveCartesianCoordinate, getActivePolarCoordinate, isInCartesianRange } from '../../util/getActiveCoordinate';\nimport { inRangeOfSector } from '../../util/PolarUtils';\nexport var useChartName = () => {\n return useAppSelector(selectChartName);\n};\nvar pickTooltipEventType = (_state, tooltipEventType) => tooltipEventType;\nvar pickTrigger = (_state, _tooltipEventType, trigger) => trigger;\nvar pickDefaultIndex = (_state, _tooltipEventType, _trigger, defaultIndex) => defaultIndex;\nexport var selectOrderedTooltipTicks = createSelector(selectTooltipAxisTicks, ticks => sortBy(ticks, o => o.coordinate));\nexport var selectTooltipInteractionState = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipInteractionState);\nexport var selectActiveIndex = createSelector([selectTooltipInteractionState, selectTooltipDisplayedData, selectTooltipAxisDataKey, selectTooltipAxisDomain], combineActiveTooltipIndex);\nexport var selectTooltipDataKey = (state, tooltipEventType, trigger) => {\n if (tooltipEventType == null) {\n return undefined;\n }\n var tooltipState = selectTooltipState(state);\n if (tooltipEventType === 'axis') {\n if (trigger === 'hover') {\n return tooltipState.axisInteraction.hover.dataKey;\n }\n return tooltipState.axisInteraction.click.dataKey;\n }\n if (trigger === 'hover') {\n return tooltipState.itemInteraction.hover.dataKey;\n }\n return tooltipState.itemInteraction.click.dataKey;\n};\nexport var selectTooltipPayloadConfigurations = createSelector([selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex], combineTooltipPayloadConfigurations);\nexport var selectCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, pickDefaultIndex, selectTooltipPayloadConfigurations], combineCoordinateForDefaultIndex);\nexport var selectActiveCoordinate = createSelector([selectTooltipInteractionState, selectCoordinateForDefaultIndex], (tooltipInteractionState, defaultIndexCoordinate) => {\n var _tooltipInteractionSt;\n return (_tooltipInteractionSt = tooltipInteractionState.coordinate) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : defaultIndexCoordinate;\n});\nexport var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveIndex], combineActiveLabel);\nexport var selectTooltipPayload = createSelector([selectTooltipPayloadConfigurations, selectActiveIndex, selectChartDataWithIndexes, selectTooltipAxisDataKey, selectActiveLabel, selectTooltipPayloadSearcher, pickTooltipEventType], combineTooltipPayload);\nexport var selectIsTooltipActive = createSelector([selectTooltipInteractionState, selectActiveIndex], (tooltipInteractionState, activeIndex) => {\n return {\n isActive: tooltipInteractionState.active && activeIndex != null,\n activeIndex\n };\n});\nvar combineActiveCartesianProps = (chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {\n if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n return undefined;\n }\n if (!isInCartesianRange(chartEvent, offset)) {\n return undefined;\n }\n var pos = calculateCartesianTooltipPos(chartEvent, layout);\n var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);\n var activeCoordinate = getActiveCartesianCoordinate(layout, tooltipTicks, activeIndex, chartEvent);\n return {\n activeIndex: String(activeIndex),\n activeCoordinate\n };\n};\nvar combineActivePolarProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks) => {\n if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {\n return undefined;\n }\n var rangeObj = inRangeOfSector(chartEvent, polarViewBox);\n if (!rangeObj) {\n return undefined;\n }\n var pos = calculatePolarTooltipPos(rangeObj, layout);\n var activeIndex = calculateActiveTickIndex(pos, orderedTooltipTicks, tooltipTicks, tooltipAxisType, tooltipAxisRange);\n var activeCoordinate = getActivePolarCoordinate(layout, tooltipTicks, activeIndex, rangeObj);\n return {\n activeIndex: String(activeIndex),\n activeCoordinate\n };\n};\nexport var combineActiveProps = (chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset) => {\n if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {\n return undefined;\n }\n if (layout === 'horizontal' || layout === 'vertical') {\n return combineActiveCartesianProps(chartEvent, layout, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks, offset);\n }\n return combineActivePolarProps(chartEvent, layout, polarViewBox, tooltipAxisType, tooltipAxisRange, tooltipTicks, orderedTooltipTicks);\n};","import { createSelector } from 'reselect';\nimport { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';\nimport { DefaultZIndexes } from './DefaultZIndexes';\n\n/**\n * Given a zIndex, returns the corresponding portal element reference.\n * If no zIndex is provided or if the zIndex is not registered, returns undefined.\n *\n * It also returns undefined in case the z-index portal has not been rendered yet.\n */\nexport var selectZIndexPortalElement = createSelector(state => state.zIndex.zIndexMap, (_, zIndex) => zIndex, (_, _zIndex, isPanorama) => isPanorama, (zIndexMap, zIndex, isPanorama) => {\n if (zIndex == null) {\n return undefined;\n }\n var entry = zIndexMap[zIndex];\n if (entry == null) {\n return undefined;\n }\n if (isPanorama) {\n return entry.panoramaElement;\n }\n return entry.element;\n});\nexport var selectAllRegisteredZIndexes = createSelector(state => state.zIndex.zIndexMap, zIndexMap => {\n var allNumbers = Object.keys(zIndexMap).map(zIndexStr => parseInt(zIndexStr, 10)).concat(Object.values(DefaultZIndexes));\n var uniqueNumbers = Array.from(new Set(allNumbers));\n return uniqueNumbers.sort((a, b) => a - b);\n}, {\n memoizeOptions: {\n resultEqualityCheck: arrayContentsAreEqualCheck\n }\n});","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * This slice contains a registry of z-index values for various components.\n * The state is a map from z-index numbers to element references.\n */\nimport { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nvar seed = {};\nvar initialState = {\n zIndexMap: Object.values(DefaultZIndexes).reduce((acc, current) => _objectSpread(_objectSpread({}, acc), {}, {\n [current]: {\n element: undefined,\n panoramaElement: undefined,\n consumers: 0\n }\n }), seed)\n};\nvar defaultZIndexSet = new Set(Object.values(DefaultZIndexes));\nfunction isDefaultZIndex(zIndex) {\n return defaultZIndexSet.has(zIndex);\n}\nvar zIndexSlice = createSlice({\n name: 'zIndex',\n initialState,\n reducers: {\n registerZIndexPortal: {\n reducer: (state, action) => {\n var zIndex = action.payload.zIndex;\n if (state.zIndexMap[zIndex]) {\n state.zIndexMap[zIndex].consumers += 1;\n } else {\n state.zIndexMap[zIndex] = {\n consumers: 1,\n element: undefined,\n panoramaElement: undefined\n };\n }\n },\n prepare: prepareAutoBatched()\n },\n unregisterZIndexPortal: {\n reducer: (state, action) => {\n var zIndex = action.payload.zIndex;\n if (state.zIndexMap[zIndex]) {\n state.zIndexMap[zIndex].consumers -= 1;\n /*\n * Garbage collect unused z-index entries, except for default z-indexes.\n * Default z-indexes are always rendered, regardless of whether there are consumers or not.\n * And because of that, even if we delete this entry, the ZIndexPortal provider will still be rendered\n * and React is not going to re-create it, and it won't re-register the element ID.\n * So let's not delete default z-index entries.\n */\n if (state.zIndexMap[zIndex].consumers <= 0 && !isDefaultZIndex(zIndex)) {\n delete state.zIndexMap[zIndex];\n }\n }\n },\n prepare: prepareAutoBatched()\n },\n registerZIndexPortalElement: {\n reducer: (state, action) => {\n var _action$payload = action.payload,\n zIndex = _action$payload.zIndex,\n element = _action$payload.element,\n isPanorama = _action$payload.isPanorama;\n if (state.zIndexMap[zIndex]) {\n if (isPanorama) {\n state.zIndexMap[zIndex].panoramaElement = castDraft(element);\n } else {\n state.zIndexMap[zIndex].element = castDraft(element);\n }\n } else {\n state.zIndexMap[zIndex] = {\n consumers: 0,\n element: isPanorama ? undefined : castDraft(element),\n panoramaElement: isPanorama ? castDraft(element) : undefined\n };\n }\n },\n prepare: prepareAutoBatched()\n },\n unregisterZIndexPortalElement: {\n reducer: (state, action) => {\n var zIndex = action.payload.zIndex;\n if (state.zIndexMap[zIndex]) {\n if (action.payload.isPanorama) {\n state.zIndexMap[zIndex].panoramaElement = undefined;\n } else {\n state.zIndexMap[zIndex].element = undefined;\n }\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nvar _zIndexSlice$actions = zIndexSlice.actions,\n registerZIndexPortal = _zIndexSlice$actions.registerZIndexPortal,\n unregisterZIndexPortal = _zIndexSlice$actions.unregisterZIndexPortal,\n registerZIndexPortalElement = _zIndexSlice$actions.registerZIndexPortalElement,\n unregisterZIndexPortalElement = _zIndexSlice$actions.unregisterZIndexPortalElement;\nexport { registerZIndexPortal, unregisterZIndexPortal, registerZIndexPortalElement, unregisterZIndexPortalElement };\nexport var zIndexReducer = zIndexSlice.reducer;","import { useLayoutEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectZIndexPortalElement } from './zIndexSelectors';\nimport { registerZIndexPortal, unregisterZIndexPortal } from '../state/zIndexSlice';\nimport { useIsInChartContext } from '../context/chartLayoutContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\n\n/**\n * @since 3.4\n */\n\n/**\n * A layer that renders its children into a portal corresponding to the given zIndex.\n * We can't use regular CSS `z-index` because SVG does not support it.\n * So instead, we create separate DOM nodes for each zIndex layer\n * and render the children into the corresponding DOM node using React portals.\n *\n * This component must be used inside a Chart component.\n *\n * @param zIndex numeric zIndex value, higher values are rendered on top of lower values\n * @param children the content to render inside this zIndex layer\n *\n * @since 3.4\n */\nexport function ZIndexLayer(_ref) {\n var zIndex = _ref.zIndex,\n children = _ref.children;\n /*\n * If we are outside of chart, then we can't rely on the zIndex portal state,\n * so we just render normally.\n */\n var isInChartContext = useIsInChartContext();\n /*\n * If zIndex is undefined then we render normally without portals.\n * Also, if zIndex is 0, we render normally without portals,\n * because 0 is the default layer that does not need a portal.\n */\n var shouldRenderInPortal = isInChartContext && zIndex !== undefined && zIndex !== 0;\n var isPanorama = useIsPanorama();\n\n /**\n * When zIndex changes, the new portal element is not immediately available because\n * it requires a full render cycle through AllZIndexPortals → ZIndexSvgPortal.\n * During this transition we keep rendering into the previous portal element\n * to avoid an unmount/remount cycle that would cause children to briefly disappear.\n *\n * `registeredZIndexesRef` tracks every zIndex we have registered so that\n * we can defer unregistration of old values until the new portal is ready.\n * `lastPortalElementRef` caches the most recent valid portal DOM node.\n */\n var lastPortalElementRef = useRef(undefined);\n var registeredZIndexesRef = useRef(new Set());\n var dispatch = useAppDispatch();\n var portalElement = useAppSelector(state => selectZIndexPortalElement(state, zIndex, isPanorama));\n\n /*\n * Lifecycle effect — handles both registration and deferred cleanup.\n *\n * Registration: when zIndex changes we register the new value WITHOUT\n * immediately unregistering the old one. This keeps the old <g> element\n * alive in the DOM so `lastPortalElementRef` remains a valid render target.\n *\n * Deferred cleanup: once `portalElement` for the *new* zIndex becomes\n * available we unregister every stale zIndex that is no longer needed.\n */\n useLayoutEffect(() => {\n if (!shouldRenderInPortal) {\n // Portal rendering was disabled — clean up any stale registrations\n var registered = registeredZIndexesRef.current;\n registered.forEach(z => {\n dispatch(unregisterZIndexPortal({\n zIndex: z\n }));\n });\n registered.clear();\n lastPortalElementRef.current = undefined;\n return;\n }\n\n /*\n * Because zIndexes are dynamic (meaning, we're not working with a predefined set of layers,\n * but we allow users to define any zIndex at any time), we need to register\n * the requested zIndex in the global store. This way, the ZIndexPortals component\n * can render the corresponding portals and only the requested ones.\n */\n // Register the current zIndex (idempotent — skips if already registered)\n if (!registeredZIndexesRef.current.has(zIndex)) {\n dispatch(registerZIndexPortal({\n zIndex\n }));\n registeredZIndexesRef.current.add(zIndex);\n }\n\n // When the new portal element is ready, retire old zIndex registrations\n if (portalElement) {\n lastPortalElementRef.current = portalElement;\n var _registered = registeredZIndexesRef.current;\n _registered.forEach(z => {\n if (z !== zIndex) {\n dispatch(unregisterZIndexPortal({\n zIndex: z\n }));\n _registered.delete(z);\n }\n });\n }\n }, [dispatch, zIndex, shouldRenderInPortal, portalElement]);\n\n // Unmount-only cleanup — unregister everything when the component is removed\n useLayoutEffect(() => {\n var registered = registeredZIndexesRef.current;\n return () => {\n registered.forEach(z => {\n dispatch(unregisterZIndexPortal({\n zIndex: z\n }));\n });\n registered.clear();\n };\n }, [dispatch]);\n if (!shouldRenderInPortal) {\n return children;\n }\n\n // Prefer the current portal; fall back to the cached one during transitions\n var targetElement = portalElement !== null && portalElement !== void 0 ? portalElement : lastPortalElementRef.current;\n if (!targetElement) {\n // Very first render — no portal has ever been registered yet\n return null;\n }\n return /*#__PURE__*/createPortal(children, targetElement);\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport { clsx } from 'clsx';\nimport { isPolarCoordinate } from '../util/types';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { useChartLayout, useOffsetInternal } from '../context/chartLayoutContext';\nimport { useTooltipAxisBandSize } from '../context/useTooltipAxis';\nimport { useChartName } from '../state/selectors/selectors';\nimport { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * If set false, no cursor will be drawn when tooltip is active.\n * If set an object, the option is the configuration of cursor.\n * If set a React element, the option is the custom react element of drawing cursor\n */\n\nfunction RenderCursor(_ref) {\n var cursor = _ref.cursor,\n cursorComp = _ref.cursorComp,\n cursorProps = _ref.cursorProps;\n if (/*#__PURE__*/isValidElement(cursor)) {\n return /*#__PURE__*/cloneElement(cursor, cursorProps);\n }\n return /*#__PURE__*/createElement(cursorComp, cursorProps);\n}\nexport function CursorInternal(props) {\n var _props$zIndex;\n var coordinate = props.coordinate,\n payload = props.payload,\n index = props.index,\n offset = props.offset,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n cursor = props.cursor,\n tooltipEventType = props.tooltipEventType,\n chartName = props.chartName;\n\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var activeCoordinate = coordinate;\n var activePayload = payload;\n var activeTooltipIndex = index;\n if (!cursor || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps, cursorComp, preferredZIndex;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n preferredZIndex = DefaultZIndexes.cursorLine;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n preferredZIndex = DefaultZIndexes.cursorRectangle;\n } else if (layout === 'radial' && isPolarCoordinate(activeCoordinate)) {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx,\n cy,\n startAngle,\n endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n preferredZIndex = DefaultZIndexes.cursorLine;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n preferredZIndex = DefaultZIndexes.cursorLine;\n }\n var extraClassName = typeof cursor === 'object' && 'className' in cursor ? cursor.className : undefined;\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), svgPropertiesNoEventsFromUnknown(cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', extraClassName)\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: (_props$zIndex = props.zIndex) !== null && _props$zIndex !== void 0 ? _props$zIndex : preferredZIndex\n }, /*#__PURE__*/React.createElement(RenderCursor, {\n cursor: cursor,\n cursorComp: cursorComp,\n cursorProps: cursorProps\n }));\n}\n\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var tooltipAxisBandSize = useTooltipAxisBandSize();\n var offset = useOffsetInternal();\n var layout = useChartLayout();\n var chartName = useChartName();\n if (tooltipAxisBandSize == null || offset == null || layout == null || chartName == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CursorInternal, _extends({}, props, {\n offset: offset,\n layout: layout,\n tooltipAxisBandSize: tooltipAxisBandSize,\n chartName: chartName\n }));\n}","import { createContext, useContext } from 'react';\nexport var TooltipPortalContext = /*#__PURE__*/createContext(null);\nexport var useTooltipPortal = () => useContext(TooltipPortalContext);","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';\nexport var BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';","import { createSlice } from '@reduxjs/toolkit';\nimport { isNan } from '../util/DataUtils';\n\n/**\n * These chart options are decided internally, by Recharts,\n * and will not change during the lifetime of the chart.\n *\n * Changing these options can be done by swapping the root element\n * which will make a brand-new Redux store.\n *\n * If you want to store options that can be changed by the user,\n * use UpdatableChartOptions in rootPropsSlice.ts.\n */\n\nexport var arrayTooltipSearcher = (data, strIndex) => {\n if (!strIndex) return undefined;\n if (!Array.isArray(data)) return undefined;\n var numIndex = Number.parseInt(strIndex, 10);\n if (isNan(numIndex)) {\n return undefined;\n }\n return data[numIndex];\n};\nvar initialState = {\n chartName: '',\n tooltipPayloadSearcher: () => undefined,\n eventEmitter: undefined,\n defaultTooltipEventType: 'axis'\n};\nvar optionsSlice = createSlice({\n name: 'options',\n initialState,\n reducers: {\n createEventEmitter: state => {\n if (state.eventEmitter == null) {\n state.eventEmitter = Symbol('rechartsEventEmitter');\n }\n }\n }\n});\nexport var optionsReducer = optionsSlice.reducer;\nvar createEventEmitter = optionsSlice.actions.createEventEmitter;\nexport { createEventEmitter };","export function selectSynchronisedTooltipState(state) {\n return state.tooltip.syncInteraction;\n}","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * This is the data that's coming through main chart `data` prop\n * Recharts is very flexible in what it accepts so the type is very flexible too.\n * This will typically be an object, and various components will provide various `dataKey`\n * that dictates how to pull data from that object.\n *\n * TL;DR: before dataKey\n *\n * @inline\n */\n\n/**\n * So this is the same unknown type as ChartData but this is after the dataKey has been applied.\n * We still don't know what the type is - that depends on what exactly it was before the dataKey application,\n * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.\n *\n * TL;DR: ChartData after dataKey.\n */\n\nexport var initialChartDataState = {\n chartData: undefined,\n computedData: undefined,\n dataStartIndex: 0,\n dataEndIndex: 0\n};\nvar chartDataSlice = createSlice({\n name: 'chartData',\n initialState: initialChartDataState,\n reducers: {\n setChartData(state, action) {\n state.chartData = castDraft(action.payload);\n if (action.payload == null) {\n state.dataStartIndex = 0;\n state.dataEndIndex = 0;\n return;\n }\n if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) {\n state.dataEndIndex = action.payload.length - 1;\n }\n },\n setComputedData(state, action) {\n state.computedData = action.payload;\n },\n setDataStartEndIndexes(state, action) {\n var _action$payload = action.payload,\n startIndex = _action$payload.startIndex,\n endIndex = _action$payload.endIndex;\n if (startIndex != null) {\n state.dataStartIndex = startIndex;\n }\n if (endIndex != null) {\n state.dataEndIndex = endIndex;\n }\n }\n }\n});\nvar _chartDataSlice$actio = chartDataSlice.actions,\n setChartData = _chartDataSlice$actio.setChartData,\n setDataStartEndIndexes = _chartDataSlice$actio.setDataStartEndIndexes,\n setComputedData = _chartDataSlice$actio.setComputedData;\nexport { setChartData, setDataStartEndIndexes, setComputedData };\nexport var chartDataReducer = chartDataSlice.reducer;","var _excluded = [\"x\", \"y\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { useEffect } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectEventEmitter, selectSyncId, selectSyncMethod } from '../state/selectors/rootPropsSelectors';\nimport { BRUSH_SYNC_EVENT, eventCenter, TOOLTIP_SYNC_EVENT } from '../util/Events';\nimport { createEventEmitter } from '../state/optionsSlice';\nimport { setSyncInteraction } from '../state/tooltipSlice';\nimport { selectTooltipDataKey } from '../state/selectors/selectors';\nimport { selectActiveTooltipGraphicalItemId, selectTooltipAxisTicks } from '../state/selectors/tooltipSelectors';\nimport { selectSynchronisedTooltipState } from './syncSelectors';\nimport { useChartLayout, useViewBox } from '../context/chartLayoutContext';\nimport { setDataStartEndIndexes } from '../state/chartDataSlice';\nimport { noop } from '../util/DataUtils';\n\n/**\n * Listens for tooltip sync events from other charts and dispatches the appropriate\n * sync interaction state based on the current chart's syncMethod.\n *\n * Handles three sync methods:\n * - 'index': passes through the tooltip index with coordinate scaling between chart viewBoxes\n * - 'value': matches the incoming label against this chart's axis ticks by string comparison\n * - function: delegates tick resolution to a user-provided callback\n *\n * When a synced label has no matching tick (e.g. sparse chart), the tooltip is hidden\n * but sourceViewBox is preserved to prevent counter-emission cascades.\n */\nfunction useTooltipSyncEventsListener() {\n var mySyncId = useAppSelector(selectSyncId);\n var myEventEmitter = useAppSelector(selectEventEmitter);\n var dispatch = useAppDispatch();\n var syncMethod = useAppSelector(selectSyncMethod);\n var tooltipTicks = useAppSelector(selectTooltipAxisTicks);\n var layout = useChartLayout();\n var viewBox = useViewBox();\n var className = useAppSelector(state => state.rootProps.className);\n useEffect(() => {\n if (mySyncId == null) {\n // This chart is not synchronised with any other chart so we don't need to listen for any events.\n return noop;\n }\n var listener = (incomingSyncId, action, emitter) => {\n if (myEventEmitter === emitter) {\n // We don't want to dispatch actions that we sent ourselves.\n return;\n }\n if (mySyncId !== incomingSyncId) {\n // This event is not for this chart\n return;\n }\n\n /*\n * Handle source chart deactivation (mouseLeave) for ALL sync methods.\n * This must be checked before any syncMethod-specific logic to ensure\n * sourceViewBox is cleared, which allows isReceivingSynchronisation\n * to become false and lets the normal emission flow resume.\n */\n if (action.payload.active === false) {\n dispatch(setSyncInteraction({\n active: false,\n coordinate: undefined,\n dataKey: undefined,\n index: null,\n label: undefined,\n sourceViewBox: undefined,\n graphicalItemId: undefined\n }));\n return;\n }\n if (syncMethod === 'index') {\n var _action$payload;\n if (viewBox && action !== null && action !== void 0 && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.coordinate && action.payload.sourceViewBox) {\n var _action$payload$coord = action.payload.coordinate,\n _x = _action$payload$coord.x,\n _y = _action$payload$coord.y,\n otherCoordinateProps = _objectWithoutProperties(_action$payload$coord, _excluded);\n var _action$payload$sourc = action.payload.sourceViewBox,\n sourceX = _action$payload$sourc.x,\n sourceY = _action$payload$sourc.y,\n sourceWidth = _action$payload$sourc.width,\n sourceHeight = _action$payload$sourc.height;\n var scaledCoordinate = _objectSpread(_objectSpread({}, otherCoordinateProps), {}, {\n x: viewBox.x + (sourceWidth ? (_x - sourceX) / sourceWidth : 0) * viewBox.width,\n y: viewBox.y + (sourceHeight ? (_y - sourceY) / sourceHeight : 0) * viewBox.height\n });\n dispatch(_objectSpread(_objectSpread({}, action), {}, {\n payload: _objectSpread(_objectSpread({}, action.payload), {}, {\n coordinate: scaledCoordinate\n })\n }));\n } else {\n dispatch(action);\n }\n return;\n }\n if (tooltipTicks == null) {\n // for the other two sync methods, we need the ticks to be available\n return;\n }\n var activeTick;\n if (typeof syncMethod === 'function') {\n /*\n * This is what the data shape in 2.x CategoricalChartState used to look like.\n * In 3.x we store things differently but let's try to keep the old shape for compatibility.\n */\n var syncMethodParam = {\n activeTooltipIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n isTooltipActive: action.payload.active,\n activeIndex: action.payload.index == null ? undefined : Number(action.payload.index),\n activeLabel: action.payload.label,\n activeDataKey: action.payload.dataKey,\n activeCoordinate: action.payload.coordinate\n };\n // Call a callback function. If there is an application specific algorithm\n var activeTooltipIndex = syncMethod(tooltipTicks, syncMethodParam);\n activeTick = tooltipTicks[activeTooltipIndex];\n } else if (syncMethod === 'value') {\n // labels are always strings, tick.value might be a string or a number, depending on axis type\n activeTick = tooltipTicks.find(tick => String(tick.value) === action.payload.label);\n }\n var coordinate = action.payload.coordinate;\n if (coordinate == null || viewBox == null) {\n dispatch(setSyncInteraction({\n active: false,\n coordinate: undefined,\n dataKey: undefined,\n index: null,\n label: undefined,\n sourceViewBox: undefined,\n graphicalItemId: undefined\n }));\n return;\n }\n if (activeTick == null) {\n /*\n * The label from the source chart doesn't match any tick in this chart.\n * This happens when synced charts have different data arrays\n * (e.g., one chart has 3 data points while another has 252).\n *\n * We set active: false so the tooltip hides (correct — no data for this date),\n * but we keep sourceViewBox set to signal that we're still receiving sync events.\n * The emission guard in useTooltipChartSynchronisation checks sourceViewBox\n * (not active) to decide whether to suppress outgoing sync events.\n * Without this, the chart would emit a counter-sync event with active: false,\n * cascading to clear tooltips on ALL other synced charts.\n */\n dispatch(setSyncInteraction({\n active: false,\n coordinate: undefined,\n dataKey: undefined,\n index: null,\n label: undefined,\n sourceViewBox: action.payload.sourceViewBox,\n graphicalItemId: undefined\n }));\n return;\n }\n var x = coordinate.x,\n y = coordinate.y;\n var validateChartX = Math.min(x, viewBox.x + viewBox.width);\n var validateChartY = Math.min(y, viewBox.y + viewBox.height);\n var activeCoordinate = {\n x: layout === 'horizontal' ? activeTick.coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : activeTick.coordinate\n };\n var syncAction = setSyncInteraction({\n active: action.payload.active,\n coordinate: activeCoordinate,\n dataKey: action.payload.dataKey,\n index: String(activeTick.index),\n label: action.payload.label,\n sourceViewBox: action.payload.sourceViewBox,\n graphicalItemId: action.payload.graphicalItemId\n });\n dispatch(syncAction);\n };\n eventCenter.on(TOOLTIP_SYNC_EVENT, listener);\n return () => {\n eventCenter.off(TOOLTIP_SYNC_EVENT, listener);\n };\n }, [className, dispatch, myEventEmitter, mySyncId, syncMethod, tooltipTicks, layout, viewBox]);\n}\n\n/**\n * Listens for brush sync events from other charts and updates this chart's\n * data start/end indexes to match, keeping brush positions synchronised.\n */\nfunction useBrushSyncEventsListener() {\n var mySyncId = useAppSelector(selectSyncId);\n var myEventEmitter = useAppSelector(selectEventEmitter);\n var dispatch = useAppDispatch();\n useEffect(() => {\n if (mySyncId == null) {\n // This chart is not synchronised with any other chart so we don't need to listen for any events.\n return noop;\n }\n var listener = (incomingSyncId, action, emitter) => {\n if (myEventEmitter === emitter) {\n // We don't want to dispatch actions that we sent ourselves.\n return;\n }\n if (mySyncId === incomingSyncId) {\n dispatch(setDataStartEndIndexes(action));\n }\n };\n eventCenter.on(BRUSH_SYNC_EVENT, listener);\n return () => {\n eventCenter.off(BRUSH_SYNC_EVENT, listener);\n };\n }, [dispatch, myEventEmitter, mySyncId]);\n}\n\n/**\n * Will receive synchronisation events from other charts.\n *\n * Reads syncMethod from state and decides how to synchronise the tooltip based on that.\n *\n * @returns void\n */\nexport function useSynchronisedEventsFromOtherCharts() {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(createEventEmitter());\n }, [dispatch]);\n useTooltipSyncEventsListener();\n useBrushSyncEventsListener();\n}\n\n/**\n * Will send events to other charts.\n * If syncId is undefined, no events will be sent.\n *\n * This ignores the syncMethod, because that is set and computed on the receiving end.\n *\n * Outgoing emissions are suppressed when `isReceivingSynchronisation` is true,\n * which is determined by the presence of `sourceViewBox` in the sync state (not by\n * the tooltip's `active` flag). This matters for charts with sparse data: when an\n * incoming sync label has no matching tick, the tooltip becomes inactive but\n * `sourceViewBox` remains set, so the chart is still considered \"receiving\" and\n * will not emit a counter-sync event that would cascade-clear other charts' tooltips.\n *\n * @param tooltipEventType from Tooltip\n * @param trigger from Tooltip\n * @param activeCoordinate from state\n * @param activeLabel from state\n * @param activeIndex from state\n * @param isTooltipActive from state\n * @returns void\n */\nexport function useTooltipChartSynchronisation(tooltipEventType, trigger, activeCoordinate, activeLabel, activeIndex, isTooltipActive) {\n var activeDataKey = useAppSelector(state => selectTooltipDataKey(state, tooltipEventType, trigger));\n var activeGraphicalItemId = useAppSelector(selectActiveTooltipGraphicalItemId);\n var eventEmitterSymbol = useAppSelector(selectEventEmitter);\n var syncId = useAppSelector(selectSyncId);\n var syncMethod = useAppSelector(selectSyncMethod);\n var tooltipState = useAppSelector(selectSynchronisedTooltipState);\n /*\n * Use sourceViewBox (not active) to determine if we're receiving sync events.\n * sourceViewBox is set whenever another chart sends a sync event to us — even when\n * our own tooltip is inactive (because the label didn't match our data).\n * This prevents charts with sparse data from emitting counter-sync events\n * that would clear tooltips on all other synced charts.\n */\n var isReceivingSynchronisation = (tooltipState === null || tooltipState === void 0 ? void 0 : tooltipState.sourceViewBox) != null;\n var viewBox = useViewBox();\n useEffect(() => {\n if (isReceivingSynchronisation) {\n /*\n * This chart is currently receiving synchronisation events from another chart.\n * Let's not send any outgoing synchronisation events while that's happening\n * to avoid infinite loops and cascading tooltip clears.\n */\n return;\n }\n if (syncId == null) {\n /*\n * syncId is not set, means that this chart is not synchronised with any other chart,\n * means we don't need to send synchronisation events\n */\n return;\n }\n if (eventEmitterSymbol == null) {\n /*\n * When using Recharts internal hooks and selectors outside charts context,\n * these properties will be undefined. Let's return silently instead of throwing an error.\n */\n return;\n }\n var syncAction = setSyncInteraction({\n active: isTooltipActive,\n coordinate: activeCoordinate,\n dataKey: activeDataKey,\n index: activeIndex,\n label: typeof activeLabel === 'number' ? String(activeLabel) : activeLabel,\n sourceViewBox: viewBox,\n graphicalItemId: activeGraphicalItemId\n });\n eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n }, [isReceivingSynchronisation, activeCoordinate, activeDataKey, activeGraphicalItemId, activeIndex, activeLabel, eventEmitterSymbol, syncId, syncMethod, isTooltipActive, viewBox]);\n}\n\n/**\n * Emits brush sync events to other charts when the brush start/end indexes change.\n * If syncId is undefined, no events will be sent.\n */\nexport function useBrushChartSynchronisation() {\n var syncId = useAppSelector(selectSyncId);\n var eventEmitterSymbol = useAppSelector(selectEventEmitter);\n var brushStartIndex = useAppSelector(state => state.chartData.dataStartIndex);\n var brushEndIndex = useAppSelector(state => state.chartData.dataEndIndex);\n useEffect(() => {\n if (syncId == null || brushStartIndex == null || brushEndIndex == null || eventEmitterSymbol == null) {\n return;\n }\n var syncAction = {\n startIndex: brushStartIndex,\n endIndex: brushEndIndex\n };\n eventCenter.emit(BRUSH_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n }, [brushEndIndex, brushStartIndex, eventEmitterSymbol, syncId]);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useElementOffset } from '../util/useElementOffset';\nimport { Cursor } from './Cursor';\nimport { selectActiveCoordinate, selectActiveLabel, selectIsTooltipActive, selectTooltipPayload } from '../state/selectors/selectors';\nimport { useTooltipPortal } from '../context/tooltipPortalContext';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setTooltipSettingsState } from '../state/tooltipSlice';\nimport { useTooltipChartSynchronisation } from '../synchronisation/useChartSynchronisation';\nimport { useTooltipEventType } from '../state/selectors/selectTooltipEventType';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if (/*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nvar emptyPayload = [];\nexport var defaultTooltipProps = {\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n axisId: 0,\n contentStyle: {},\n cursor: true,\n filterNull: true,\n includeHidden: false,\n isAnimationActive: 'auto',\n itemSorter: 'name',\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n wrapperStyle: {}\n};\n\n/**\n * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.\n *\n * It can be configured to show information for individual data points or for all points at a specific axis coordinate.\n * The appearance and content of the tooltip can be customized via props.\n *\n * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}\n * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}\n *\n * @consumes CartesianChartContext\n * @consumes PolarChartContext\n * @consumes TooltipEntrySettings\n */\nexport function Tooltip(outsideProps) {\n var _useAppSelector, _ref2;\n var props = resolveDefaultProps(outsideProps, defaultTooltipProps);\n var activeFromProps = props.active,\n allowEscapeViewBox = props.allowEscapeViewBox,\n animationDuration = props.animationDuration,\n animationEasing = props.animationEasing,\n content = props.content,\n filterNull = props.filterNull,\n isAnimationActive = props.isAnimationActive,\n offset = props.offset,\n payloadUniqBy = props.payloadUniqBy,\n position = props.position,\n reverseDirection = props.reverseDirection,\n useTranslate3d = props.useTranslate3d,\n wrapperStyle = props.wrapperStyle,\n cursor = props.cursor,\n shared = props.shared,\n trigger = props.trigger,\n defaultIndex = props.defaultIndex,\n portalFromProps = props.portal,\n axisId = props.axisId;\n var dispatch = useAppDispatch();\n var defaultIndexAsString = typeof defaultIndex === 'number' ? String(defaultIndex) : defaultIndex;\n useEffect(() => {\n dispatch(setTooltipSettingsState({\n shared,\n trigger,\n axisId,\n active: activeFromProps,\n defaultIndex: defaultIndexAsString\n }));\n }, [dispatch, shared, trigger, axisId, activeFromProps, defaultIndexAsString]);\n var viewBox = useViewBox();\n var accessibilityLayer = useAccessibilityLayer();\n var tooltipEventType = useTooltipEventType(shared);\n var _ref = (_useAppSelector = useAppSelector(state => selectIsTooltipActive(state, tooltipEventType, trigger, defaultIndexAsString))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {},\n activeIndex = _ref.activeIndex,\n isActive = _ref.isActive;\n var payloadFromRedux = useAppSelector(state => selectTooltipPayload(state, tooltipEventType, trigger, defaultIndexAsString));\n var labelFromRedux = useAppSelector(state => selectActiveLabel(state, tooltipEventType, trigger, defaultIndexAsString));\n var coordinate = useAppSelector(state => selectActiveCoordinate(state, tooltipEventType, trigger, defaultIndexAsString));\n var payload = payloadFromRedux;\n var tooltipPortalFromContext = useTooltipPortal();\n /*\n * The user can set `active=true` on the Tooltip in which case the Tooltip will stay always active,\n * or `active=false` in which case the Tooltip never shows.\n *\n * If the `active` prop is not defined then it will show and hide based on mouse or keyboard activity.\n */\n var finalIsActive = (_ref2 = activeFromProps !== null && activeFromProps !== void 0 ? activeFromProps : isActive) !== null && _ref2 !== void 0 ? _ref2 : false;\n var _useElementOffset = useElementOffset([payload, finalIsActive]),\n _useElementOffset2 = _slicedToArray(_useElementOffset, 2),\n lastBoundingBox = _useElementOffset2[0],\n updateBoundingBox = _useElementOffset2[1];\n var finalLabel = tooltipEventType === 'axis' ? labelFromRedux : undefined;\n useTooltipChartSynchronisation(tooltipEventType, trigger, coordinate, finalLabel, activeIndex, finalIsActive);\n var tooltipPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : tooltipPortalFromContext;\n if (tooltipPortal == null || viewBox == null || tooltipEventType == null) {\n return null;\n }\n var finalPayload = payload !== null && payload !== void 0 ? payload : emptyPayload;\n if (!finalIsActive) {\n finalPayload = emptyPayload;\n }\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(finalPayload.filter(entry => entry.value != null && (entry.hide !== true || props.includeHidden)), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n var tooltipContentProps = _objectSpread(_objectSpread({}, props), {}, {\n payload: finalPayload,\n label: finalLabel,\n active: finalIsActive,\n activeIndex,\n coordinate,\n accessibilityLayer\n });\n var tooltipElement = /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: finalIsActive,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle,\n lastBoundingBox: lastBoundingBox,\n innerRef: updateBoundingBox,\n hasPortalFromProps: Boolean(portalFromProps)\n }, renderContent(content, tooltipContentProps));\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/createPortal(tooltipElement, tooltipPortal), finalIsActive && /*#__PURE__*/React.createElement(Cursor, {\n cursor: cursor,\n tooltipEventType: tooltipEventType,\n coordinate: coordinate,\n payload: finalPayload,\n index: activeIndex\n }));\n}","/**\n * Cell component used to define colors and styles of chart elements.\n *\n * This component is now deprecated and will be removed in Recharts 4.0.\n *\n * Please use the `shape` prop or `content` prop on the respective chart components\n * to customize the rendering of chart elements instead of using `Cell`.\n *\n * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}\n *\n * @deprecated\n * @consumes CellReader\n */\nexport var Cell = _props => null;\nCell.displayName = 'Cell';","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Simple LRU (Least Recently Used) cache implementation\n */\nexport class LRUCache {\n constructor(maxSize) {\n _defineProperty(this, \"cache\", new Map());\n this.maxSize = maxSize;\n }\n get(key) {\n var value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n }\n return value;\n }\n set(key, value) {\n if (this.cache.has(key)) {\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n var firstKey = this.cache.keys().next().value;\n if (firstKey != null) {\n this.cache.delete(firstKey);\n }\n }\n this.cache.set(key, value);\n }\n clear() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Global } from './Global';\nimport { LRUCache } from './LRUCache';\nvar defaultConfig = {\n cacheSize: 2000,\n enableCache: true\n};\nvar currentConfig = _objectSpread({}, defaultConfig);\nvar stringCache = new LRUCache(currentConfig.cacheSize);\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction createCacheKey(text, style) {\n // Simple string concatenation for better performance than JSON.stringify\n var fontSize = style.fontSize || '';\n var fontFamily = style.fontFamily || '';\n var fontWeight = style.fontWeight || '';\n var fontStyle = style.fontStyle || '';\n var letterSpacing = style.letterSpacing || '';\n var textTransform = style.textTransform || '';\n return \"\".concat(text, \"|\").concat(fontSize, \"|\").concat(fontFamily, \"|\").concat(fontWeight, \"|\").concat(fontStyle, \"|\").concat(letterSpacing, \"|\").concat(textTransform);\n}\n\n/**\n * Measure text using DOM (accurate but slower)\n * @param text - The text to measure\n * @param style - CSS style properties to apply\n * @returns The size of the text\n */\nvar measureTextWithDOM = (text, style) => {\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n\n // Apply styles directly without unnecessary object creation\n Object.assign(measurementSpan.style, SPAN_STYLE, style);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n } catch (_unused) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n // If caching is disabled, measure directly\n if (!currentConfig.enableCache) {\n return measureTextWithDOM(text, style);\n }\n var cacheKey = createCacheKey(text, style);\n var cachedResult = stringCache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n\n // Measure using DOM\n var result = measureTextWithDOM(text, style);\n\n // Store in LRU cache\n stringCache.set(cacheKey, result);\n return result;\n};\n\n/**\n * Configure text measurement behavior\n * @param config - Partial configuration to apply\n * @returns void\n */\nexport var configureTextMeasurement = config => {\n var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);\n if (newConfig.cacheSize !== currentConfig.cacheSize) {\n stringCache = new LRUCache(newConfig.cacheSize);\n }\n currentConfig = newConfig;\n};\n\n/**\n * Get current text measurement configuration\n * @returns Current configuration\n */\nexport var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);\n\n/**\n * Clear the string size cache. Useful for testing or memory management.\n * @returns void\n */\nexport var clearStringCache = () => {\n stringCache.clear();\n};\n\n/**\n * Get cache statistics for debugging purposes.\n * @returns Cache statistics including size and max size\n */\nexport var getStringCacheStats = () => ({\n size: stringCache.size(),\n maxSize: currentConfig.cacheSize\n});","var _DecimalCSS;\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { isNan } from './DataUtils';\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n in: 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];\nfunction isSupportedUnit(unit) {\n return FIXED_CSS_LENGTH_UNITS.includes(unit);\n}\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nclass DecimalCSS {\n static parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n if (numStr == null) {\n return DecimalCSS.NaN;\n }\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n constructor(num, unit) {\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (isNan(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (isSupportedUnit(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n isNaN() {\n return isNan(this.num);\n }\n}\n_DecimalCSS = DecimalCSS;\n_defineProperty(DecimalCSS, \"NaN\", new _DecimalCSS(NaN, ''));\nfunction calculateArithmetic(expr) {\n if (expr == null || expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n var match;\n // eslint-disable-next-line no-cond-assign\n while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 2),\n parentheticalExpression = _match2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (_unused) {\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"fill\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { useMemo, forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { isNullish, isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = _ref => {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNullish(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(word => ({\n word,\n width: getStringSize(word, style).width\n }));\n var spaceWidth = breakAll ? 0 : getStringSize('\\u00A0', style).width;\n return {\n wordsWithComputedWidth,\n spaceWidth\n };\n } catch (_unused) {\n return null;\n }\n};\n\n/**\n * @inline\n */\n\nexport function isValidTextAnchor(value) {\n return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';\n}\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nexport function isRenderableText(val) {\n return isNullish(val) || typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean';\n}\nvar calculate = (words, lineWidth, spaceWidth, scaleToFit) => words.reduce((result, _ref2) => {\n var word = _ref2.word,\n width = _ref2.width;\n var currentLine = result[result.length - 1];\n if (currentLine && width != null && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width\n };\n result.push(newLine);\n }\n return result;\n}, []);\nvar findLongestLine = words => words.reduce((a, b) => a.width > b.width ? a : b);\nvar suffix = '…';\nvar checkOverflow = (text, index, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit) => {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll,\n style,\n children: tempText + suffix\n });\n if (!words) {\n return [false, []];\n }\n var result = calculate(words.wordsWithComputedWidth, lineWidth, spaceWidth, scaleToFit);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n};\nvar calculateWordsByLines = (_ref3, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) => {\n var maxLines = _ref3.maxLines,\n children = _ref3.children,\n style = _ref3.style,\n breakAll = _ref3.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = String(children);\n var originalResult = calculate(initialWordsWithComputedWith, lineWidth, spaceWidth, scaleToFit);\n if (!shouldLimitLines || scaleToFit) {\n return originalResult;\n }\n var overflows = originalResult.length > maxLines || findLongestLine(originalResult).width > Number(lineWidth);\n if (!overflows) {\n return originalResult;\n }\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(text, prev, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(text, middle, breakAll, style, maxLines, lineWidth, spaceWidth, scaleToFit),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = children => {\n var words = !isNullish(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words,\n width: undefined\n }];\n};\nexport var getWordsByLines = _ref4 => {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll,\n children,\n style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll,\n children,\n maxLines,\n style\n }, wordsWithComputedWidth, spaceWidth, width, Boolean(scaleToFit));\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var textDefaultProps = {\n angle: 0,\n breakAll: false,\n // Magic number from d3\n capHeight: '0.71em',\n fill: DEFAULT_FILL,\n lineHeight: '1em',\n scaleToFit: false,\n textAnchor: 'start',\n // Maintain compat with existing charts / default SVG behavior\n verticalAnchor: 'end',\n x: 0,\n y: 0\n};\nexport var Text = /*#__PURE__*/forwardRef((outsideProps, ref) => {\n var _resolveDefaultProps = resolveDefaultProps(outsideProps, textDefaultProps),\n propsX = _resolveDefaultProps.x,\n propsY = _resolveDefaultProps.y,\n lineHeight = _resolveDefaultProps.lineHeight,\n capHeight = _resolveDefaultProps.capHeight,\n fill = _resolveDefaultProps.fill,\n scaleToFit = _resolveDefaultProps.scaleToFit,\n textAnchor = _resolveDefaultProps.textAnchor,\n verticalAnchor = _resolveDefaultProps.verticalAnchor,\n props = _objectWithoutProperties(_resolveDefaultProps, _excluded);\n var wordsByLines = useMemo(() => {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY) || wordsByLines.length === 0) {\n return null;\n }\n var x = Number(propsX) + (isNumber(dx) ? dx : 0);\n var y = Number(propsY) + (isNumber(dy) ? dy : 0);\n if (!isWellBehavedNumber(x) || !isWellBehavedNumber(y)) {\n return null;\n }\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n var firstLine = wordsByLines[0];\n if (scaleToFit && firstLine != null) {\n var lineWidth = firstLine.width;\n var width = props.width;\n transforms.push(\"scale(\".concat(isNumber(width) && isNumber(lineWidth) ? width / lineWidth : 1, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, svgPropertiesAndEvents(textProps), {\n ref: ref,\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map((line, index) => {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys which is why we add the array index here\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n});\nText.displayName = 'Text';","var _excluded = [\"labelRef\"],\n _excluded2 = [\"content\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { cloneElement, createContext, createElement, isValidElement, useContext, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { isValidTextAnchor, Text } from './Text';\nimport { isNullish, isNumber, isNumOrStr, mathSign, uniqueId } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getCartesianPosition } from '../cartesian/getCartesianPosition';\nimport { cartesianViewBoxToTrapezoid } from '../cartesian/cartesianViewBoxToTrapezoid';\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nvar CartesianLabelContext = /*#__PURE__*/createContext(null);\nexport var CartesianLabelContextProvider = _ref => {\n var x = _ref.x,\n y = _ref.y,\n upperWidth = _ref.upperWidth,\n lowerWidth = _ref.lowerWidth,\n width = _ref.width,\n height = _ref.height,\n children = _ref.children;\n var viewBox = useMemo(() => ({\n x,\n y,\n upperWidth,\n lowerWidth,\n width,\n height\n }), [x, y, upperWidth, lowerWidth, width, height]);\n return /*#__PURE__*/React.createElement(CartesianLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nvar useCartesianLabelContext = () => {\n var labelChildContext = useContext(CartesianLabelContext);\n var chartContext = useViewBox();\n return labelChildContext || (chartContext ? cartesianViewBoxToTrapezoid(chartContext) : undefined);\n};\nvar PolarLabelContext = /*#__PURE__*/createContext(null);\nexport var PolarLabelContextProvider = _ref2 => {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle,\n clockWise = _ref2.clockWise,\n children = _ref2.children;\n var viewBox = useMemo(() => ({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle,\n clockWise\n }), [cx, cy, innerRadius, outerRadius, startAngle, endAngle, clockWise]);\n return /*#__PURE__*/React.createElement(PolarLabelContext.Provider, {\n value: viewBox\n }, children);\n};\nexport var usePolarLabelContext = () => {\n var labelChildContext = useContext(PolarLabelContext);\n var chartContext = useAppSelector(selectPolarViewBox);\n return labelChildContext || chartContext;\n};\nvar getLabel = props => {\n var value = props.value,\n formatter = props.formatter;\n var label = isNullish(props.children) ? value : props.children;\n if (typeof formatter === 'function') {\n return formatter(label);\n }\n return label;\n};\nexport var isLabelContentAFunction = content => {\n return content != null && typeof content === 'function';\n};\nvar getDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = (labelProps, position, label, attrs, viewBox) => {\n var offset = labelProps.offset,\n className = labelProps.className;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle,\n clockWise = viewBox.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n switch (position) {\n case 'insideStart':\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n break;\n case 'insideEnd':\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n break;\n case 'end':\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n break;\n default:\n throw new Error(\"Unsupported position \".concat(position));\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNullish(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = (viewBox, offset, position) => {\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x,\n y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar isPolar = viewBox => viewBox != null && 'cx' in viewBox && isNumber(viewBox.cx);\nexport var defaultLabelProps = {\n angle: 0,\n offset: 5,\n zIndex: DefaultZIndexes.label,\n position: 'middle',\n textBreakAll: false\n};\nfunction polarViewBoxToTrapezoid(viewBox) {\n if (!isPolar(viewBox)) {\n return viewBox;\n }\n var cx = viewBox.cx,\n cy = viewBox.cy,\n outerRadius = viewBox.outerRadius;\n var diameter = outerRadius * 2;\n return {\n x: cx - outerRadius,\n y: cy - outerRadius,\n width: diameter,\n upperWidth: diameter,\n lowerWidth: diameter,\n height: diameter\n };\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @consumes PolarViewBoxContext\n * @consumes CartesianLabelContext\n * @consumes PolarLabelContext\n */\nexport function Label(outerProps) {\n var _positionAttrs, _positionAttrs2;\n var props = resolveDefaultProps(outerProps, defaultLabelProps);\n var viewBoxFromProps = props.viewBox,\n parentViewBox = props.parentViewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll,\n labelRef = props.labelRef;\n var polarViewBox = usePolarLabelContext();\n var cartesianViewBox = useCartesianLabelContext();\n\n /*\n * I am not proud about this solution, but it's a quick fix for https://github.com/recharts/recharts/issues/6030#issuecomment-3155352460.\n * What we should really do is split Label into two components: CartesianLabel and PolarLabel and then handle their respective viewBoxes separately.\n * Also other components should set its own viewBox in a context so that we can fix https://github.com/recharts/recharts/issues/6156\n */\n var resolvedViewBox = position === 'center' ? cartesianViewBox : polarViewBox !== null && polarViewBox !== void 0 ? polarViewBox : cartesianViewBox;\n var viewBox, label, positionAttrs;\n if (viewBoxFromProps == null) {\n viewBox = resolvedViewBox;\n } else if (isPolar(viewBoxFromProps)) {\n viewBox = viewBoxFromProps;\n } else {\n viewBox = cartesianViewBoxToTrapezoid(viewBoxFromProps);\n }\n var cartesianBox = polarViewBoxToTrapezoid(viewBox);\n if (!viewBox || isNullish(value) && isNullish(children) && ! /*#__PURE__*/isValidElement(content) && typeof content !== 'function') {\n return null;\n }\n\n // TODO: Generic Polar Hook\n var isRadialPolarLabel = isPolar(viewBox) && (position === 'insideStart' || position === 'insideEnd' || position === 'end');\n if (isPolar(viewBox)) {\n if (!isRadialPolarLabel) {\n positionAttrs = getAttrsOfPolarLabel(viewBox, props.offset, props.position);\n }\n } else if (cartesianBox) {\n var cartesianResult = getCartesianPosition({\n viewBox: cartesianBox,\n position,\n offset: props.offset,\n parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,\n clamp: true\n });\n positionAttrs = _objectSpread(_objectSpread({\n x: cartesianResult.x,\n y: cartesianResult.y,\n textAnchor: cartesianResult.horizontalAnchor,\n verticalAnchor: cartesianResult.verticalAnchor\n }, cartesianResult.width !== undefined ? {\n width: cartesianResult.width\n } : {}), cartesianResult.height !== undefined ? {\n height: cartesianResult.height\n } : {});\n }\n\n /*\n * Custom content receives the computed x and y too, so that custom labels\n * can be positioned the same way the built-in Text label is. Explicitly\n * passed props win over the computed values. We deliberately forward only\n * x and y (not the anchors): a custom label that spreads its props into a\n * nested Label would otherwise have that Label's own computed anchors\n * overridden by the inherited ones.\n * https://github.com/recharts/recharts/issues/5067\n */\n var propsWithViewBox = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, ((_positionAttrs = positionAttrs) === null || _positionAttrs === void 0 ? void 0 : _positionAttrs.x) !== undefined ? {\n x: positionAttrs.x\n } : {}), ((_positionAttrs2 = positionAttrs) === null || _positionAttrs2 === void 0 ? void 0 : _positionAttrs2.y) !== undefined ? {\n y: positionAttrs.y\n } : {}), props), {}, {\n viewBox\n });\n if (/*#__PURE__*/isValidElement(content)) {\n var _ = propsWithViewBox.labelRef,\n propsWithoutLabelRef = _objectWithoutProperties(propsWithViewBox, _excluded);\n return /*#__PURE__*/cloneElement(content, propsWithoutLabelRef);\n }\n if (typeof content === 'function') {\n var _2 = propsWithViewBox.content,\n propsForContent = _objectWithoutProperties(propsWithViewBox, _excluded2);\n // @ts-expect-error we're not checking if the content component returns something that Text is able to render\n label = /*#__PURE__*/createElement(content, propsForContent);\n if (/*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var attrs = svgPropertiesAndEvents(props);\n if (isRadialPolarLabel && isPolar(viewBox)) {\n return renderRadialLabel(props, position, label, attrs, viewBox);\n }\n if (positionAttrs == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Text, _extends({\n ref: labelRef,\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n /*\n * textAnchor is decided by default based on the `position`\n * but we allow overriding via props for precise control.\n */\n textAnchor: isValidTextAnchor(attrs.textAnchor) ? attrs.textAnchor : positionAttrs.textAnchor,\n breakAll: textBreakAll\n }), label));\n}\nLabel.displayName = 'Label';\nvar parseLabel = (label, viewBox, labelRef) => {\n if (!label) {\n return null;\n }\n var commonProps = {\n viewBox,\n labelRef\n };\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\"\n }, commonProps));\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n value: label\n }, commonProps));\n }\n if (/*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, _objectSpread({\n key: 'label-implicit'\n }, commonProps));\n }\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-implicit\",\n content: label\n }, commonProps));\n }\n if (label && typeof label === 'object') {\n return /*#__PURE__*/React.createElement(Label, _extends({}, label, {\n key: \"label-implicit\"\n }, commonProps));\n }\n return null;\n};\nexport function CartesianLabelFromLabelProp(_ref3) {\n var label = _ref3.label,\n labelRef = _ref3.labelRef;\n var viewBox = useCartesianLabelContext();\n return parseLabel(label, viewBox, labelRef) || null;\n}\nexport function PolarLabelFromLabelProp(_ref4) {\n var label = _ref4.label;\n var viewBox = usePolarLabelContext();\n return parseLabel(label, viewBox) || null;\n}","var _excluded = [\"valueAccessor\"],\n _excluded2 = [\"dataKey\", \"clockWise\", \"id\", \"textBreakAll\", \"zIndex\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { isLabelContentAFunction, Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNullish } from '../util/DataUtils';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { isRenderableText } from './Text';\n\n/**\n * This is public API because we expose it as the valueAccessor parameter.\n *\n * The properties of \"viewBox\" are repeated as the root props of the entry object.\n * So it doesn't matter if you read entry.x or entry.viewBox.x, they are the same.\n *\n * It's not necessary to pass redundant data, but we keep it for backward compatibility.\n */\n\n/**\n * LabelList props do not allow refs because the same props are reused in multiple elements so we don't have a good single place to ref to.\n */\n\n/**\n * This is the type accepted for the `label` prop on various graphical items.\n * It accepts:\n *\n * boolean:\n * true = labels show,\n * false = labels don't show\n * React element:\n * will be cloned with extra props\n * function:\n * is used as <Label content={function} />, so this will be called once for each individual label (so typically once for each data point)\n * object:\n * the props to be passed to a LabelList component\n *\n * @inline\n */\n\nvar defaultAccessor = entry => {\n var val = Array.isArray(entry.value) ? entry.value[entry.value.length - 1] : entry.value;\n if (isRenderableText(val)) {\n return val;\n }\n return undefined;\n};\nvar CartesianLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var CartesianLabelListContextProvider = CartesianLabelListContext.Provider;\nvar PolarLabelListContext = /*#__PURE__*/createContext(undefined);\nexport var PolarLabelListContextProvider = PolarLabelListContext.Provider;\nfunction useCartesianLabelListContext() {\n return useContext(CartesianLabelListContext);\n}\nfunction usePolarLabelListContext() {\n return useContext(PolarLabelListContext);\n}\n\n/**\n * @consumes LabelListContext\n */\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n zIndex = restProps.zIndex,\n others = _objectWithoutProperties(restProps, _excluded2);\n var cartesianData = useCartesianLabelListContext();\n var polarData = usePolarLabelListContext();\n var data = cartesianData || polarData;\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map((entry, index) => {\n var _restProps$fill;\n var value = isNullish(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry.payload, dataKey);\n var idProps = isNullish(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({\n key: \"label-\".concat(index)\n }, svgPropertiesAndEvents(entry), others, idProps, {\n /*\n * Prefer to use the explicit fill from LabelList props.\n * Only in an absence of that, fall back to the fill of the entry.\n * The entry fill can be quite difficult to see especially in Bar, Pie, RadialBar in inside positions.\n * On the other hand it's quite convenient in Scatter, Line, or when the position is outside the Bar, Pie filled shapes.\n */\n fill: (_restProps$fill = restProps.fill) !== null && _restProps$fill !== void 0 ? _restProps$fill : entry.fill,\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: entry.viewBox,\n index: index\n /*\n * Here we don't want to use the default Label zIndex,\n * we want it to inherit the zIndex of the LabelList itself\n * which means just rendering as a regular child, without portaling anywhere.\n */,\n zIndex: 0\n }));\n })));\n}\nLabelList.displayName = 'LabelList';\nexport function LabelListFromLabelProp(_ref2) {\n var label = _ref2.label;\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\"\n });\n }\n if (/*#__PURE__*/React.isValidElement(label) || isLabelContentAFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n content: label\n });\n }\n if (typeof label === 'object') {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n key: \"labelList-implicit\"\n }, label, {\n type: String(label.type)\n }));\n }\n return null;\n}","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n radiusAxis: {},\n angleAxis: {}\n};\nvar polarAxisSlice = createSlice({\n name: 'polarAxis',\n initialState,\n reducers: {\n addRadiusAxis(state, action) {\n state.radiusAxis[action.payload.id] = castDraft(action.payload);\n },\n removeRadiusAxis(state, action) {\n delete state.radiusAxis[action.payload.id];\n },\n addAngleAxis(state, action) {\n state.angleAxis[action.payload.id] = castDraft(action.payload);\n },\n removeAngleAxis(state, action) {\n delete state.angleAxis[action.payload.id];\n }\n }\n});\nvar _polarAxisSlice$actio = polarAxisSlice.actions,\n addRadiusAxis = _polarAxisSlice$actio.addRadiusAxis,\n removeRadiusAxis = _polarAxisSlice$actio.removeRadiusAxis,\n addAngleAxis = _polarAxisSlice$actio.addAngleAxis,\n removeAngleAxis = _polarAxisSlice$actio.removeAngleAxis;\nexport { addRadiusAxis, removeRadiusAxis, addAngleAxis, removeAngleAxis };\nexport var polarAxisReducer = polarAxisSlice.reducer;","export function getClassNameFromUnknown(u) {\n if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {\n return u.className;\n }\n return '';\n}","/** @license React v17.0.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import get from 'es-toolkit/compat/get';\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNullish } from './DataUtils';\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\n\n/**\n * @deprecated instead find another approach that does not depend on displayName.\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = Comp => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * @param children do not use\n * @return deprecated do not use\n */\nexport var toArray = children => {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, child => {\n if (isNullish(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n *\n * @param children do not use\n * @param type do not use\n * @return deprecated do not use\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(child => {\n // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (childType && types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\nexport var isClipDot = dot => {\n if (dot && typeof dot === 'object' && 'clipDot' in dot) {\n return Boolean(dot.clipDot);\n }\n return true;\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { Layer } from '../container/Layer';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * <Shape /> is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a React element\n *\n * The concrete default shape is supplied by the caller so this helper does not\n * import unrelated shapes and accidentally couple bundles together.\n */\n\nfunction mergeShapeProps(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nexport function getPropsFromShapeOption(option) {\n if (/*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nfunction renderWithShapeElement(option, props) {\n return /*#__PURE__*/cloneElement(option, mergeShapeProps(getPropsFromShapeOption(option), props));\n}\nfunction getShapeIndex(shapeProps) {\n if (!('index' in shapeProps)) {\n return undefined;\n }\n var index = shapeProps.index;\n return typeof index === 'number' || typeof index === 'string' ? index : undefined;\n}\nfunction isActiveShape(shapeProps) {\n return 'isActive' in shapeProps && shapeProps.isActive === true;\n}\n\n/**\n * Renders the user-provided active shape option while keeping each runtime branch aligned with its TypeScript type.\n *\n * The `option` prop supports four shapes:\n * - React element: clone it and let its own props override the injected ones\n * - function: call it with the forwarded props and optional index\n * - plain object: merge it into the default shape props\n * - boolean / undefined: ignore it and render the default shape with the forwarded props\n */\nexport function Shape(_ref) {\n var option = _ref.option,\n DefaultShape = _ref.DefaultShape,\n shapeProps = _ref.shapeProps,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? 'recharts-active-shape' : _ref$activeClassName,\n _ref$inActiveClassNam = _ref.inActiveClassName,\n inActiveClassName = _ref$inActiveClassNam === void 0 ? 'recharts-shape' : _ref$inActiveClassNam;\n var index = getShapeIndex(shapeProps);\n var shape;\n if (/*#__PURE__*/isValidElement(option)) {\n shape = renderWithShapeElement(option, shapeProps);\n } else if (option === DefaultShape) {\n shape = /*#__PURE__*/React.createElement(DefaultShape, shapeProps);\n } else if (typeof option === 'function') {\n shape = option(shapeProps, index);\n } else if (typeof option === 'object') {\n shape = /*#__PURE__*/React.createElement(DefaultShape, mergeShapeProps(option, shapeProps));\n } else {\n shape = /*#__PURE__*/React.createElement(DefaultShape, shapeProps);\n }\n if (isActiveShape(shapeProps)) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: inActiveClassName\n }, shape);\n}","import { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\n\n/**\n * Some graphical items choose to provide more information to the tooltip\n * and some do not.\n */\n\nexport var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};\nexport var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);\n dispatch(mouseLeaveItem());\n };\n};\nexport var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);\n dispatch(setActiveClickItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};","import { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addTooltipEntrySettings, removeTooltipEntrySettings, replaceTooltipEntrySettings } from './tooltipSlice';\nimport { useIsPanorama } from '../context/PanoramaContext';\nexport function SetTooltipEntrySettings(_ref) {\n var tooltipEntrySettings = _ref.tooltipEntrySettings;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevSettingsRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n // Panorama graphical items should never contribute to Tooltip payload.\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addTooltipEntrySettings(tooltipEntrySettings));\n } else if (prevSettingsRef.current !== tooltipEntrySettings) {\n dispatch(replaceTooltipEntrySettings({\n prev: prevSettingsRef.current,\n next: tooltipEntrySettings\n }));\n }\n prevSettingsRef.current = tooltipEntrySettings;\n }, [tooltipEntrySettings, dispatch, isPanorama]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeTooltipEntrySettings(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}","import { useLayoutEffect, useRef } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectChartLayout } from '../context/chartLayoutContext';\nimport { useAppDispatch, useAppSelector } from './hooks';\nimport { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice';\nexport function SetLegendPayload(_ref) {\n var legendPayload = _ref.legendPayload;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, isPanorama, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nexport function SetPolarLegendPayload(_ref2) {\n var legendPayload = _ref2.legendPayload;\n var dispatch = useAppDispatch();\n var layout = useAppSelector(selectChartLayout);\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (layout !== 'centric' && layout !== 'radial') {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, layout, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { getValueByDataKey } from '../util/ChartUtils';\n\n/**\n * A tagged union describing the status of an item during animation.\n *\n * - `matched`: item exists in both previous and next data — interpolate between positions\n * - `added`: item is new (no previous position) — animate in\n * - `removed`: item was in previous data but not in next — animate out\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\n\n/**\n * A function that extracts a key from an animation item for matching purposes.\n * Items in the previous and next arrays that return the same key are considered\n * the same logical item and will animate between their positions.\n *\n * @param item The chart item (e.g., a bar rectangle, a line point, a pie sector)\n * @param index The index of the item in the array\n * @returns A string or number key, or null if the item cannot be matched\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\n\n/**\n * The union of all accepted `animationMatchBy` prop values:\n * a built-in sentinel string, or a custom matching function.\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\n\n/**\n * Match animation items by their array index (the default behavior).\n *\n * Previous items are paired with next items based on their position\n * in the array, with proportional stretching when array lengths differ.\n * When going from 5 to 15 items, each old point \"covers\" approximately 3 new points;\n * when shrinking, some old points are skipped.\n *\n * @example\n * import { matchByIndex } from 'recharts';\n * <Line animationMatchBy={matchByIndex} />\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\nexport var matchByIndex = 'index';\n\n/**\n * Match animation items sequentially: previous item 0 pairs with next item 0,\n * previous item 1 pairs with next item 1, and so on. When the new array is longer,\n * the extra items have no match and animate in from their default position.\n * When the new array is shorter, the ancient items are simply dropped.\n *\n * This is useful when new data is appended at the end of the array, and you want\n * existing points to stay in place while new points animate in.\n *\n * @example\n * import { matchAppend } from 'recharts';\n * <Line animationMatchBy={matchAppend} />\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\nexport var matchAppend = 'append';\n\n/**\n * Create a matching function that pairs items by a data key from their payload.\n *\n * Useful for time-series or streaming charts where new data points are added\n * to one end and old points are removed from the other. This ensures existing\n * points animate smoothly to their new positions instead of shifting by index.\n *\n * @param dataKey The key to look up in each item's payload (e.g., 'timestamp', 'date', 'id')\n * @returns An AnimationMatchBy function that can be passed to the animationMatchBy prop\n *\n * @example\n * import { matchByDataKey } from 'recharts';\n * <Line animationMatchBy={matchByDataKey('timestamp')} />\n * <Bar animationMatchBy={matchByDataKey('name')} />\n * <Pie animationMatchBy={matchByDataKey('id')} />\n *\n * @since 3.9\n * @see {@link https://recharts.github.io/en-US/guide/animations Animation guide}\n */\nexport function matchByDataKey(dataKey) {\n return item => {\n if (item.payload == null || typeof item.payload !== 'object') return null;\n var value = getValueByDataKey(item.payload, dataKey);\n if (value == null) return null;\n if (typeof value === 'string' || typeof value === 'number') return value;\n return JSON.stringify(value);\n };\n}\nfunction tagAlignedItems(alignedPrevItems, nextItems) {\n var removedPrevItems = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var tagged = [];\n /*\n * We put removed points at the start because we assume that a typical chart animates right-to-left\n * and the removed points will disappear from the left edge and outside the plot area.\n * If you chart behaves differently you may want to customize your matching function.\n */\n for (var prev of removedPrevItems) {\n tagged.push({\n status: 'removed',\n prev\n });\n }\n for (var i = 0; i < nextItems.length; i++) {\n // This function intentionally pairs by array index. The strategy-specific functions above are\n // responsible for producing an alignedPrevItems array whose indices already correspond to nextItems.\n var _prev = alignedPrevItems[i];\n var next = nextItems[i];\n if (_prev != null) {\n tagged.push({\n status: 'matched',\n prev: _prev,\n next\n });\n } else {\n tagged.push({\n status: 'added',\n next\n });\n }\n }\n return tagged;\n}\nfunction matchByIndexImpl(prevItems, nextItems) {\n var factor = prevItems.length / nextItems.length;\n var alignedPrevItems = nextItems.map((_, i) => prevItems[Math.floor(i * factor)]);\n return tagAlignedItems(alignedPrevItems, nextItems);\n}\nfunction matchAppendImpl(prevItems, nextItems) {\n var alignedPrevItems = nextItems.map((_, i) => prevItems[i]);\n return tagAlignedItems(alignedPrevItems, nextItems);\n}\nfunction buildPrevKeyMap(prevItems, matchBy) {\n var prevMap = new Map();\n for (var i = 0; i < prevItems.length; i++) {\n var _item = prevItems[i];\n if (_item == null) continue;\n var key = matchBy(_item, i);\n if (key != null && !prevMap.has(key)) {\n prevMap.set(key, _item);\n }\n }\n return prevMap;\n}\n\n/**\n * Match previous items to next items by key, and include removed items explicitly.\n *\n * @internal\n */\nfunction matchByKey(prevItems, nextItems, matchBy) {\n var prevMap = buildPrevKeyMap(prevItems, matchBy);\n\n // Track which prev keys were matched\n var matchedKeys = new Set();\n var alignedPrevItems = nextItems.map((next, i) => {\n var key = matchBy(next, i);\n if (key != null) {\n var prev = prevMap.get(key);\n if (prev !== undefined) {\n matchedKeys.add(key);\n return prev;\n }\n }\n return undefined;\n });\n\n // Removed = prev items whose keys were not matched to any next item\n var removedPrevItems = [];\n for (var _ref3 of prevMap) {\n var _ref2 = _slicedToArray(_ref3, 2);\n var key = _ref2[0];\n var _item2 = _ref2[1];\n if (!matchedKeys.has(key)) {\n removedPrevItems.push(_item2);\n }\n }\n return tagAlignedItems(alignedPrevItems, nextItems, removedPrevItems);\n}\n\n/**\n * Match previous items to next items using the given matching strategy and return tagged animation items.\n *\n * On first render, all next items are returned as `{ status: 'added' }`.\n * For key-based matching, unmatched previous items are appended as `{ status: 'removed' }`.\n *\n * @internal\n */\nexport function matchAnimationItems(prevItems, nextItems, matchBy) {\n if (nextItems == null) {\n return null;\n }\n if (prevItems == null) {\n return nextItems.map(next => ({\n status: 'added',\n next\n }));\n }\n if (matchBy === matchByIndex) {\n return matchByIndexImpl(prevItems, nextItems);\n }\n if (matchBy === matchAppend) {\n return matchAppendImpl(prevItems, nextItems);\n }\n return matchByKey(prevItems, nextItems, matchBy);\n}","import { useCallback, useRef } from 'react';\n/**\n * Small state machine shared by animated components that need interruption-safe\n * animations.\n *\n * Why this exists:\n * Recharts stores the latest visible animation frame in mutable refs so the next\n * animation can resume from that exact geometry. That works well, but there is a\n * subtle trap: when an animation is interrupted, React may render several times\n * before the new animation has actually emitted its own `animationElapsedTime=0` frame. If we keep\n * reading and writing the same live ref during that window, the \"start\" value of\n * the new animation can drift, which produces visible jumps.\n *\n * This hook separates those two responsibilities:\n * - `startValue` is a frozen snapshot of the previous animation state, captured\n * once per animation cycle and kept stable while that cycle is being matched\n * and interpolated.\n * - `previousValueRef.current` remains the mutable \"latest visible frame\" store\n * that future animations can resume from.\n *\n * The hook does not know anything about points, baselines, sectors, or shapes.\n * It only manages *when* a snapshot is captured and *when* new frames are allowed\n * to overwrite the mutable ref.\n *\n * Lifecycle:\n * 1. When `animationInput` changes by reference, a new cycle begins. We capture\n * the current ref value into `startValue` and temporarily block writes.\n * 2. When the new animation renders `animationElapsedTime=0`, we unlock writes. This ensures the new\n * animation has had a chance to render its true starting frame before any live\n * ref gets updated.\n * 3. For `animationElapsedTime > 0`, callers may commit the visible frame back into the mutable ref.\n * Callers can still veto that with `canCommit=false` (for example when a Line\n * needs to wait until SVG path length has been measured).\n * 4. At `animationElapsedTime=1`, we also refresh the frozen snapshot so subsequent rerenders in the\n * completed state observe the finished geometry.\n */\nexport function useAnimationStartSnapshot(animationInput, previousValueRef) {\n /*\n * Stores the identity of the animation cycle we are currently serving.\n * As soon as this changes, we know we need a brand new frozen snapshot.\n */\n var previousAnimationInputRef = useRef(animationInput);\n /*\n * Frozen start-of-cycle value used for interpolation.\n * This is the value callers should match against for the whole duration of the\n * current animation, even if the live ref is updated many times afterward.\n */\n var startValueRef = useRef(previousValueRef.current);\n /*\n * Prevents us from writing back into the live ref until the new animation has\n * actually rendered its own animationElapsedTime=0 frame. This avoids \"pre-start\" renders from\n * accidentally rebasing the next animation onto already-shifted geometry.\n */\n var isReadyToCommitRef = useRef(true);\n if (previousAnimationInputRef.current !== animationInput) {\n // New animation cycle: capture exactly one frozen starting snapshot.\n previousAnimationInputRef.current = animationInput;\n startValueRef.current = previousValueRef.current;\n // Writes stay blocked until the new cycle acknowledges its animationElapsedTime=0 frame.\n isReadyToCommitRef.current = false;\n }\n var syncStepValue = useCallback(function (stepValue, animationElapsedTime) {\n var canCommit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (animationElapsedTime === 0) {\n /*\n * animationElapsedTime=0 is the handshake that says: \"the new animation has now rendered its\n * own starting frame\". We do not write anything yet; we only allow later\n * in-flight frames to be committed safely.\n */\n isReadyToCommitRef.current = true;\n return;\n }\n if (animationElapsedTime === 1) {\n // Keep the frozen snapshot aligned with the fully completed geometry.\n startValueRef.current = stepValue;\n }\n if (animationElapsedTime > 0 && isReadyToCommitRef.current && canCommit) {\n /*\n * Commit the latest visible frame so a future interruption can resume from\n * exactly what the user saw on screen most recently.\n */\n // eslint-disable-next-line no-param-reassign\n previousValueRef.current = stepValue;\n }\n }, [previousValueRef]);\n return {\n startValue: startValueRef.current,\n syncStepValue\n };\n}","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport { JavascriptAnimate } from './JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { matchAnimationItems, matchByIndex } from './matchBy';\nimport { useAnimationStartSnapshot } from './useAnimationStartSnapshot';\n/**\n * Hook that tracks animation state and provides callbacks for animation start/end.\n *\n * @param onAnimationStart optional callback to call when animation starts\n * @param onAnimationEnd optional callback to call when animation ends\n */\nexport function useAnimationCallbacks(onAnimationStart, onAnimationEnd) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isAnimating = _useState2[0],\n setIsAnimating = _useState2[1];\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n return {\n isAnimating,\n handleAnimationStart,\n handleAnimationEnd\n };\n}\n\n/**\n * A function that interpolates animation items at a given time.\n * This function receives an array of changes, and must \"unwrap\" them\n * and interpolate appropriate values and return the result which Recharts will then render.\n *\n * @see {@link https://recharts.github.io/en-US/guide/animations/ Animations guide}\n *\n * @param items The tagged animation items describing what changed, or `null` on the very first render\n * (entrance animation). Each item is self-describing:\n * - `{ status: 'matched', prev, next }` — interpolate between `prev` and `next`\n * - `{ status: 'added', next }` — animate in from a computed entry position\n * - `{ status: 'removed', prev }` — animate out to a computed exit position\n *\n * At `animationElapsedTime = 1`, removed items should be excluded from the result.\n *\n * @param animationElapsedTime A normalized time value (0 = start, 1 = end)\n * @param layout of the chart, useful for deciding the direction of animation\n * @returns The interpolated items at time animationElapsedTime\n *\n * @since 3.9\n */\n\n/**\n * A reusable animation wrapper for array-based chart data.\n *\n * Encapsulates the common animation pattern shared by Bar, Scatter, Funnel, Pie,\n * Radar, RadialBar, Area, and Line:\n * 1. Track previous items in a ref\n * 2. Wrap in JavascriptAnimate\n * 3. Update ref when animationElapsedTime > 0\n *\n * @since 3.9\n */\nexport function AnimatedItems(props) {\n var _animationStartItems$;\n var animationInput = props.animationInput,\n animationIdPrefix = props.animationIdPrefix,\n items = props.items,\n previousItemsRef = props.previousItemsRef,\n isAnimationActive = props.isAnimationActive,\n animationBegin = props.animationBegin,\n animationDuration = props.animationDuration,\n animationEasing = props.animationEasing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n animationInterpolateFn = props.animationInterpolateFn,\n animationMatchBy = props.animationMatchBy,\n shouldUpdatePreviousRef = props.shouldUpdatePreviousRef,\n children = props.children,\n layout = props.layout;\n var animationId = useAnimationId(animationInput, animationIdPrefix);\n var animationStartItems = useAnimationStartSnapshot(animationId, previousItemsRef);\n var rawPrevItems = (_animationStartItems$ = animationStartItems.startValue) !== null && _animationStartItems$ !== void 0 ? _animationStartItems$ : null;\n var animationItems = matchAnimationItems(rawPrevItems, items, animationMatchBy !== null && animationMatchBy !== void 0 ? animationMatchBy : matchByIndex);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: onAnimationEnd,\n onAnimationStart: onAnimationStart,\n key: animationId\n }, animationElapsedTime => {\n var isEntrance = rawPrevItems == null;\n var stepData = items == null ? items : animationInterpolateFn(animationItems, animationElapsedTime, layout);\n var canUpdate = shouldUpdatePreviousRef ? shouldUpdatePreviousRef(animationElapsedTime) : animationElapsedTime > 0;\n animationStartItems.syncStepValue(stepData, animationElapsedTime, canUpdate);\n if (stepData == null) {\n return null;\n }\n return children(stepData, animationElapsedTime, isEntrance);\n });\n}","var _ref;\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { uniqueId } from './DataUtils';\n\n/**\n * Fallback for React.useId() for versions prior to React 18.\n * Generates a unique ID using a simple counter and a prefix.\n *\n * @returns A unique ID that remains consistent across renders.\n */\nexport var useIdFallback = () => {\n var _React$useState = React.useState(() => uniqueId('uid-')),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n return id;\n};\n\n/*\n * This weird syntax is used to avoid a build-time error in React 17 and earlier when building with Webpack.\n * See https://github.com/webpack/webpack/issues/14814\n */\nexport var useId = (_ref = React['useId'.toString()]) !== null && _ref !== void 0 ? _ref : useIdFallback;","import { useId } from './useId';\n\n/**\n * A hook that generates a unique ID. It uses React.useId() in React 18+ for SSR safety\n * and falls back to a client-side-only unique ID generator for older versions.\n *\n * The ID will stay the same across renders, and you can optionally provide a prefix.\n *\n * @param [prefix] - An optional prefix for the generated ID.\n * @param [customId] - An optional custom ID to override the generated one.\n * @returns The unique ID.\n */\nexport function useUniqueId(prefix, customId) {\n /*\n * We have to call this hook here even if we don't use the result because\n * rules of hooks demand that hooks are never called conditionally.\n */\n var generatedId = useId();\n\n // If a custom ID is provided, it always takes precedence.\n if (customId) {\n return customId;\n }\n\n // Apply the prefix if one was provided.\n return prefix ? \"\".concat(prefix, \"-\").concat(generatedId) : generatedId;\n}\n\n/**\n * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.\n * Either way the ID is now guaranteed to be present so no more nulls or undefined.\n */","import * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { useUniqueId } from '../util/useUniqueId';\nvar GraphicalItemIdContext = /*#__PURE__*/createContext(undefined);\nexport var RegisterGraphicalItemId = _ref => {\n var id = _ref.id,\n type = _ref.type,\n children = _ref.children;\n var resolvedId = useUniqueId(\"recharts-\".concat(type), id);\n return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {\n value: resolvedId\n }, children(resolvedId));\n};\nexport function useGraphicalItemId() {\n return useContext(GraphicalItemIdContext);\n}","import { createSlice, current, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * Unique ID of the graphical item.\n * This is used to identify the graphical item in the state and in the React tree.\n * This is required for every graphical item - it's either provided by the user or generated automatically.\n */\n\nvar initialState = {\n cartesianItems: [],\n polarItems: []\n};\nvar graphicalItemsSlice = createSlice({\n name: 'graphicalItems',\n initialState,\n reducers: {\n addCartesianGraphicalItem: {\n reducer(state, action) {\n state.cartesianItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n replaceCartesianGraphicalItem: {\n reducer(state, action) {\n var _action$payload = action.payload,\n prev = _action$payload.prev,\n next = _action$payload.next;\n var index = current(state).cartesianItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.cartesianItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeCartesianGraphicalItem: {\n reducer(state, action) {\n var index = current(state).cartesianItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.cartesianItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n addPolarGraphicalItem: {\n reducer(state, action) {\n state.polarItems.push(castDraft(action.payload));\n },\n prepare: prepareAutoBatched()\n },\n removePolarGraphicalItem: {\n reducer(state, action) {\n var index = current(state).polarItems.indexOf(castDraft(action.payload));\n if (index > -1) {\n state.polarItems.splice(index, 1);\n }\n },\n prepare: prepareAutoBatched()\n },\n replacePolarGraphicalItem: {\n reducer(state, action) {\n var _action$payload2 = action.payload,\n prev = _action$payload2.prev,\n next = _action$payload2.next;\n var index = current(state).polarItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.polarItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nvar _graphicalItemsSlice$ = graphicalItemsSlice.actions,\n addCartesianGraphicalItem = _graphicalItemsSlice$.addCartesianGraphicalItem,\n replaceCartesianGraphicalItem = _graphicalItemsSlice$.replaceCartesianGraphicalItem,\n removeCartesianGraphicalItem = _graphicalItemsSlice$.removeCartesianGraphicalItem,\n addPolarGraphicalItem = _graphicalItemsSlice$.addPolarGraphicalItem,\n removePolarGraphicalItem = _graphicalItemsSlice$.removePolarGraphicalItem,\n replacePolarGraphicalItem = _graphicalItemsSlice$.replacePolarGraphicalItem;\nexport { addCartesianGraphicalItem, replaceCartesianGraphicalItem, removeCartesianGraphicalItem, addPolarGraphicalItem, removePolarGraphicalItem, replacePolarGraphicalItem };\nexport var graphicalItemsReducer = graphicalItemsSlice.reducer;","import { memo, useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addCartesianGraphicalItem, addPolarGraphicalItem, removeCartesianGraphicalItem, removePolarGraphicalItem, replaceCartesianGraphicalItem, replacePolarGraphicalItem } from './graphicalItemsSlice';\nvar SetCartesianGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addCartesianGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceCartesianGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removeCartesianGraphicalItem(prevPropsRef.current));\n /*\n * Here we have to reset the ref to null because in StrictMode, the effect will run twice,\n * but it will keep the same ref value from the first render.\n *\n * In browser, React will clear the ref after the first effect cleanup,\n * so that wouldn't be an issue.\n *\n * In StrictMode, however, the ref is kept,\n * and in the hook above the code checks for `prevPropsRef.current === null`\n * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.\n *\n * https://github.com/recharts/recharts/issues/6022\n */\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetCartesianGraphicalItem = /*#__PURE__*/memo(SetCartesianGraphicalItemImpl);\nvar SetPolarGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addPolarGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replacePolarGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removePolarGraphicalItem(prevPropsRef.current));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetPolarGraphicalItem = /*#__PURE__*/memo(SetPolarGraphicalItemImpl);","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * @inline\n */\n\nexport var defaultAxisId = 0;\n\n/**\n * Properties shared in X, Y, and Z axes.\n * User defined axis settings, coming from props.\n */\n\n/**\n * Controls how Recharts calculates \"nice\" tick values for numerical axes.\n *\n * - `'none'`: Recharts does not apply any tick-rounding algorithm; tick positions are\n * determined entirely by d3, evenly spaced but not rounded to human-friendly numbers.\n * There is no domain-extension logic applied in this mode.\n *\n * - `'auto'` *(default)*: Recharts automatically decides whether and how to apply tick\n * niceties based on the domain definition. When the domain contains an `'auto'` keyword,\n * Recharts uses the `'adaptive'` algorithm and may extend the domain slightly to\n * produce clean tick labels. Otherwise, it applies the same algorithm while keeping\n * ticks within the fixed domain. This mirrors the default behavior from Recharts v2.\n *\n * - `'adaptive'`: Always applies the space-efficient algorithm (`getAdaptiveStep`),\n * which fills the available range as densely as possible while still rounding steps\n * to reasonable numbers (e.g. 10, 20, 25). May produce less \"round-looking\" labels\n * than `'snap125'`, but wastes less space. The domain-extension logic still applies\n * when the domain contains an `'auto'` keyword.\n *\n * - `'snap125'`: Always applies the round-numbers algorithm (`getSnap125Step`), which\n * snaps step sizes to values from the set {1, 2, 2.5, 5} × 10ⁿ. Produces very\n * human-friendly labels (e.g. 0, 5, 10, 15, 20) but may leave blank space at the\n * edges of the chart. The domain-extension logic still applies when the domain\n * contains an `'auto'` keyword.\n *\n * @see {@link https://recharts.github.io/guide/axisTicks/}\n * @inline\n */\n\n/**\n * These are the external props, visible for users as they set them using our public API.\n * There is all sorts of internal computed things based on these, but they will come through selectors.\n *\n * Properties shared between X and Y axes\n */\n\n/**\n * Z axis is special because it's never displayed. It controls the size of Scatter dots,\n * but it never displays ticks anywhere.\n */\n\nvar initialState = {\n xAxis: {},\n yAxis: {},\n zAxis: {}\n};\n\n/**\n * This is the slice where each individual Axis element pushes its own configuration.\n * Prefer to use this one instead of axisSlice.\n */\nvar cartesianAxisSlice = createSlice({\n name: 'cartesianAxis',\n initialState,\n reducers: {\n addXAxis: {\n reducer(state, action) {\n state.xAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceXAxis: {\n reducer(state, action) {\n var _action$payload = action.payload,\n prev = _action$payload.prev,\n next = _action$payload.next;\n if (state.xAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.xAxis[prev.id];\n }\n state.xAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeXAxis: {\n reducer(state, action) {\n delete state.xAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addYAxis: {\n reducer(state, action) {\n state.yAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceYAxis: {\n reducer(state, action) {\n var _action$payload2 = action.payload,\n prev = _action$payload2.prev,\n next = _action$payload2.next;\n if (state.yAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.yAxis[prev.id];\n }\n state.yAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeYAxis: {\n reducer(state, action) {\n delete state.yAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n addZAxis: {\n reducer(state, action) {\n state.zAxis[action.payload.id] = castDraft(action.payload);\n },\n prepare: prepareAutoBatched()\n },\n replaceZAxis: {\n reducer(state, action) {\n var _action$payload3 = action.payload,\n prev = _action$payload3.prev,\n next = _action$payload3.next;\n if (state.zAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.zAxis[prev.id];\n }\n state.zAxis[next.id] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n },\n removeZAxis: {\n reducer(state, action) {\n delete state.zAxis[action.payload.id];\n },\n prepare: prepareAutoBatched()\n },\n updateYAxisWidth(state, action) {\n var _action$payload4 = action.payload,\n id = _action$payload4.id,\n width = _action$payload4.width;\n var axis = state.yAxis[id];\n if (axis) {\n var _history$;\n var history = axis.widthHistory || [];\n // An oscillation is detected when the new width is the same as the width before the last one.\n // This is a simple A -> B -> A pattern. If the next width is B, and the difference is less than 1 pixel, we ignore it.\n if (history.length === 3 && history[0] === history[2] && width === history[1] && width !== axis.width && Math.abs(width - ((_history$ = history[0]) !== null && _history$ !== void 0 ? _history$ : 0)) <= 1) {\n return;\n }\n var newHistory = [...history, width].slice(-3);\n state.yAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {\n width,\n widthHistory: newHistory\n });\n }\n },\n updateXAxisHeight(state, action) {\n var _action$payload5 = action.payload,\n id = _action$payload5.id,\n height = _action$payload5.height;\n var axis = state.xAxis[id];\n if (axis) {\n var _history$2;\n var history = axis.heightHistory || [];\n // An oscillation is detected when the new height is the same as the height before the last one.\n // This is a simple A -> B -> A pattern. If the next height is B, and the difference is less than 1 pixel, we ignore it.\n if (history.length === 3 && history[0] === history[2] && height === history[1] && height !== axis.height && Math.abs(height - ((_history$2 = history[0]) !== null && _history$2 !== void 0 ? _history$2 : 0)) <= 1) {\n return;\n }\n var newHistory = [...history, height].slice(-3);\n state.xAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {\n height,\n heightHistory: newHistory\n });\n }\n }\n }\n});\nvar _cartesianAxisSlice$a = cartesianAxisSlice.actions,\n addXAxis = _cartesianAxisSlice$a.addXAxis,\n replaceXAxis = _cartesianAxisSlice$a.replaceXAxis,\n removeXAxis = _cartesianAxisSlice$a.removeXAxis,\n addYAxis = _cartesianAxisSlice$a.addYAxis,\n replaceYAxis = _cartesianAxisSlice$a.replaceYAxis,\n removeYAxis = _cartesianAxisSlice$a.removeYAxis,\n addZAxis = _cartesianAxisSlice$a.addZAxis,\n replaceZAxis = _cartesianAxisSlice$a.replaceZAxis,\n removeZAxis = _cartesianAxisSlice$a.removeZAxis,\n updateYAxisWidth = _cartesianAxisSlice$a.updateYAxisWidth,\n updateXAxisHeight = _cartesianAxisSlice$a.updateXAxisHeight;\nexport { addXAxis, replaceXAxis, removeXAxis, addYAxis, replaceYAxis, removeYAxis, addZAxis, replaceZAxis, removeZAxis, updateYAxisWidth, updateXAxisHeight };\nexport var cartesianAxisReducer = cartesianAxisSlice.reducer;","import { createSelector } from 'reselect';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nexport var selectChartOffset = createSelector([selectChartOffsetInternal], offsetInternal => {\n return {\n top: offsetInternal.top,\n bottom: offsetInternal.bottom,\n left: offsetInternal.left,\n right: offsetInternal.right\n };\n});","import { createSelector } from 'reselect';\nimport { selectChartOffset } from './selectChartOffset';\nimport { selectChartHeight, selectChartWidth } from './containerSelectors';\nexport var selectPlotArea = createSelector([selectChartOffset, selectChartWidth, selectChartHeight], (offset, chartWidth, chartHeight) => {\n if (!offset || chartWidth == null || chartHeight == null) {\n return undefined;\n }\n return {\n x: offset.left,\n y: offset.top,\n width: Math.max(0, chartWidth - offset.left - offset.right),\n height: Math.max(0, chartHeight - offset.top - offset.bottom)\n };\n});","import { defaultAxisId } from './state/cartesianAxisSlice';\nimport { selectAxisDomain, selectAxisInverseScale, selectAxisInverseDataSnapScale, selectAxisInverseTickSnapScale, selectAxisScale, selectAxisWithScale, selectRenderedTicksOfAxis } from './state/selectors/axisSelectors';\nimport { useAppSelector } from './state/hooks';\nimport { useIsPanorama } from './context/PanoramaContext';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataPoints, selectIsTooltipActive } from './state/selectors/tooltipSelectors';\nimport { selectChartOffset } from './state/selectors/selectChartOffset';\nimport { selectPlotArea } from './state/selectors/selectPlotArea';\nexport var useXAxis = xAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));\n};\nexport var useYAxis = yAxisId => {\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * A function that converts data values to pixel coordinates.\n * @param value - The data value to convert (number, string, or category).\n * @param options - Optional configuration for banded scales.\n * @param options.position - Position within a band: 'start', 'middle', or 'end'.\n * @returns The pixel coordinate, or `undefined` if the value is not in the domain.\n */\n\n/**\n * A function that converts pixel coordinates back to data values.\n * @param pixelValue - The pixel coordinate to convert.\n * @returns The closest data value in the domain.\n */\n\n/**\n * Returns a function to convert data values to pixel coordinates for an {@link XAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xScale = useXAxisScale();\n * if (xScale) {\n * const pixelX = xScale('Page A'); // Returns the pixel x-coordinate for 'Page A'\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisScale = function useXAxisScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert data values to pixel coordinates for a {@link YAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yScale = useYAxisScale();\n * if (yScale) {\n * const pixelY = yScale(1500); // Returns the pixel y-coordinate for value 1500\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisScale = function useYAxisScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useXAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xInverseScale = useXAxisInverseScale();\n * if (xInverseScale) {\n * const dataValue = xInverseScale(150); // Returns the data value at pixel x=150\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseScale = function useXAxisInverseScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useYAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yInverseScale = useYAxisInverseScale();\n * if (yInverseScale) {\n * const dataValue = yInverseScale(200); // Returns the data value at pixel y=200\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseScale = function useYAxisInverseScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'yAxis', yAxisId));\n};\n\n/**\n * Returns the ticks of an {@link XAxis}.\n *\n * This hook is useful for accessing the calculated ticks of an XAxis.\n * The ticks are the same as the ones rendered by the XAxis component.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useXAxisTicks = function useXAxisTicks() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns the ticks of a {@link YAxis}.\n *\n * This hook is useful for accessing the calculated ticks of a YAxis.\n * The ticks are the same as the ones rendered by the YAxis component.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useYAxisTicks = function useYAxisTicks() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'yAxis', yAxisId));\n};\n\n/**\n * Data point with x and y values that can be converted to pixel coordinates.\n * The x and y values should be in the same format as your chart data.\n */\n\n/**\n * Converts a data point (in data coordinates) to pixel coordinates.\n *\n * This hook is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart. It uses the axis scales to convert\n * data values to their corresponding pixel positions within the chart area.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist, or if the data point\n * cannot be converted (e.g., if the data values are outside the axis domains).\n *\n * This is a convenience hook that combines {@link useXAxisScale} and {@link useYAxisScale} together in a single call.\n *\n * @example\n * ```tsx\n * // Position a marker at data point { x: 'Page C', y: 2500 }\n * const pixelCoords = useCartesianScale({ x: 'Page C', y: 2500 });\n * if (pixelCoords) {\n * return <circle cx={pixelCoords.x} cy={pixelCoords.y} r={5} fill=\"red\" />;\n * }\n * ```\n *\n * @param dataPoint The data point with x and y values in data coordinates.\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The pixel x,y coordinates, or `undefined` if conversion is not possible.\n * @since 3.8\n */\nexport var useCartesianScale = function useCartesianScale(dataPoint) {\n var xAxisId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAxisId;\n var yAxisId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAxisId;\n var xScale = useXAxisScale(xAxisId);\n var yScale = useYAxisScale(yAxisId);\n if (xScale == null || yScale == null) {\n return undefined;\n }\n var pixelX = xScale(dataPoint.x);\n var pixelY = yScale(dataPoint.y);\n if (pixelX == null || pixelY == null) {\n return undefined;\n }\n return {\n x: pixelX,\n y: pixelY\n };\n};\n\n/**\n * Returns the active tooltip label. The label is one of the values from the chart data,\n * and is used to display in the tooltip content.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context\n *\n * @returns ActiveLabel\n * @since 3.0\n */\nexport var useActiveTooltipLabel = () => {\n return useAppSelector(selectActiveLabel);\n};\n\n/**\n * Returns the offset of the chart in pixels.\n *\n * Offset defines the blank space between the chart and the plot area.\n * This blank space is occupied by supporting elements like axes, legends, and brushes.\n *\n * The offset includes:\n *\n * - Margins\n * - Width and height of the axes\n * - Width and height of the legend\n * - Brush height\n *\n * If you are interested in the margin alone, use {@link useMargin} instead.\n *\n * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.\n *\n * It is also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the numbers will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Offset of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\n */\nexport var useOffset = () => {\n return useAppSelector(selectChartOffset);\n};\n\n/**\n * Plot area is the area where the actual chart data is rendered.\n * This means: bars, lines, scatter points, etc.\n *\n * The plot area is calculated based on the chart dimensions and the offset.\n *\n * Plot area `width` and `height` are the dimensions in pixels;\n * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.\n *\n * They are also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the plot area dimensions will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\n */\nexport var usePlotArea = () => {\n return useAppSelector(selectPlotArea);\n};\n\n/**\n * Returns the currently active data points being displayed in the Tooltip.\n * Active means that it is currently visible; this hook will return `undefined` if there is no current interaction.\n *\n * This follows the `<Tooltip />` props, if the Tooltip element is present in the chart.\n * If there is no `<Tooltip />` then this hook will follow the default Tooltip props.\n *\n * Data point is whatever you pass as an input to the chart using the `data={}` prop.\n *\n * This returns an array because a chart can have multiple graphical items in it (multiple Lines for example)\n * and tooltip with `shared={true}` will display all items at the same time.\n *\n * Returns undefined when used outside a chart context.\n *\n * @returns Data points that are currently visible in a Tooltip\n *\n * @since 3.1\n */\nexport var useActiveTooltipDataPoints = () => {\n return useAppSelector(selectActiveTooltipDataPoints);\n};\n\n/**\n * Returns the calculated domain of an X-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the XAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * If the chart has a Brush, the domain will be filtered to the brushed indexes if the hook is used outside a Brush context,\n * and the full domain will be returned if the hook is used inside a Brush context.\n *\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n * @since 3.2\n */\nexport var useXAxisDomain = function useXAxisDomain() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns the calculated domain of a Y-axis.\n *\n * The domain can be numerical: `[min, max]`, or categorical: `['a', 'b', 'c']`.\n *\n * The type of the domain is defined by the `type` prop of the YAxis.\n *\n * The values of the domain are calculated based on the data and the `dataKey` of the axis.\n *\n * Does not interact with Brushes, as Y-axes do not support brushing.\n *\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.\n * @since 3.2\n */\nexport var useYAxisDomain = function useYAxisDomain() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns true if the {@link Tooltip} is currently active (visible).\n *\n * Returns false if the Tooltip is not active or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {boolean} True if the Tooltip is active, false otherwise.\n * @since 3.7\n */\nexport var useIsTooltipActive = () => {\n var _useAppSelector;\n return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null && _useAppSelector !== void 0 ? _useAppSelector : false;\n};\n\n/**\n * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.\n * @since 3.7\n */\nexport var useActiveTooltipCoordinate = () => {\n var coordinate = useAppSelector(selectActiveTooltipCoordinate);\n if (coordinate == null) {\n return undefined;\n }\n return {\n x: coordinate.x,\n y: coordinate.y\n };\n};","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { isStacked } from '../../types/StackedGraphicalItem';\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nvar getBarSize = (globalSize, totalSize, selfSize) => {\n var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;\n if (isNullish(barSize)) {\n return undefined;\n }\n return getPercentValue(barSize, totalSize, 0);\n};\nexport var combineBarSizeList = (allBars, globalSize, totalSize) => {\n var initialValue = {};\n var stackedBars = allBars.filter(isStacked);\n var unstackedBars = allBars.filter(b => b.stackId == null);\n var groupByStack = stackedBars.reduce((acc, bar) => {\n var s = acc[bar.stackId];\n if (s == null) {\n s = [];\n }\n s.push(bar);\n acc[bar.stackId] = s;\n return acc;\n }, initialValue);\n var stackedSizeList = Object.entries(groupByStack).map(_ref => {\n var _bars$;\n var _ref2 = _slicedToArray(_ref, 2),\n stackId = _ref2[0],\n bars = _ref2[1];\n var dataKeys = bars.map(b => b.dataKey);\n var barSize = getBarSize(globalSize, totalSize, (_bars$ = bars[0]) === null || _bars$ === void 0 ? void 0 : _bars$.barSize);\n return {\n stackId,\n dataKeys,\n barSize\n };\n });\n var unstackedSizeList = unstackedBars.map(b => {\n var dataKeys = [b.dataKey].filter(dk => dk != null);\n var barSize = getBarSize(globalSize, totalSize, b.barSize);\n return {\n stackId: undefined,\n dataKeys,\n barSize\n };\n });\n return [...stackedSizeList, ...unstackedSizeList];\n};","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nfunction getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {\n var _sizeList$;\n var len = sizeList.length;\n if (len < 1) {\n return undefined;\n }\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether is barSize set by user\n // Okay but why does it check only for the first element? What if the first element is set but others are not?\n if (isWellBehavedNumber((_sizeList$ = sizeList[0]) === null || _sizeList$ === void 0 ? void 0 : _sizeList$.barSize)) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = Math.round((bandSize - sum) / 2);\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce((res, entry) => {\n var _entry$barSize;\n var newPosition = {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0\n }\n };\n var newRes = [...res, newPosition];\n prev = newPosition.position;\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize = Math.round(originalSize);\n }\n var size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce((res, entry, i) => [...res, {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: _offset + len * (originalSize - size) / 2 + (size + realBarGap) * i,\n size\n }\n }], initialValue);\n }\n return result;\n}\nexport var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);\n if (barBandSize !== bandSize && allBarPositions != null) {\n allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n }));\n }\n return allBarPositions;\n};","import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nexport var combineStackedData = (stackGroups, barSettings) => {\n var stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);\n if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {\n return undefined;\n }\n var stackId = barSettings.stackId;\n if (stackId == null) {\n return undefined;\n }\n var stackGroup = stackGroups[stackId];\n if (!stackGroup) {\n return undefined;\n }\n var stackedData = stackGroup.stackedData;\n if (!stackedData) {\n return undefined;\n }\n return stackedData.find(sd => sd.key === stackSeriesIdentifier);\n};","export var combineBarPosition = (allBarPositions, barSettings) => {\n if (allBarPositions == null || barSettings == null) {\n return undefined;\n }\n var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));\n if (position == null) {\n return undefined;\n }\n return position.position;\n};","import { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nexport function getZIndexFromUnknown(input, defaultZIndex) {\n if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {\n return input.zIndex;\n }\n return defaultZIndex;\n}","import { useEffect } from 'react';\nimport { setChartData, setComputedData } from '../state/chartDataSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from './PanoramaContext';\nexport var ChartDataContextProvider = props => {\n var chartData = props.chartData;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useEffect(() => {\n if (isPanorama) {\n // Panorama mode reuses data from the main chart, so we must not overwrite it here.\n return () => {\n // there is nothing to clean up\n };\n }\n dispatch(setChartData(chartData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [chartData, dispatch, isPanorama]);\n return null;\n};\nexport var SetComputedData = props => {\n var computedData = props.computedData;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setComputedData(computedData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [computedData, dispatch]);\n return null;\n};\nvar selectChartData = state => state.chartData.chartData;\n\n/**\n * \"data\" is the data of the chart - it has no type because this part of recharts is very flexible.\n * Basically it's an array of \"something\" and then there's the dataKey property in various places\n * that's meant to pull other things away from the data.\n *\n * Some charts have `data` defined on the chart root, and they will return the array through this hook.\n * For example: <ComposedChart data={data} />.\n *\n * Other charts, such as Pie, have data defined on individual graphical elements.\n * These charts will return `undefined` through this hook, and you need to read the data from children.\n * For example: <PieChart><Pie data={data} />\n *\n * Some charts also allow setting both - data on the parent, and data on the children at the same time!\n * However, this particular selector will only return the ones defined on the parent.\n *\n * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.\n *\n * @return data array for some charts and undefined for other\n */\nexport var useChartData = () => useAppSelector(selectChartData);\nvar selectDataIndex = state => {\n var _state$chartData = state.chartData,\n dataStartIndex = _state$chartData.dataStartIndex,\n dataEndIndex = _state$chartData.dataEndIndex;\n return {\n startIndex: dataStartIndex,\n endIndex: dataEndIndex\n };\n};\n\n/**\n * startIndex and endIndex are data boundaries, set through Brush.\n *\n * @return object with startIndex and endIndex\n */\nexport var useDataIndex = () => {\n return useAppSelector(selectDataIndex);\n};","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * From all Brush properties, only height has a default value and will always be defined.\n * Other properties are nullable and will be computed from offsets and margins if they are not set.\n */\n\nvar initialState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n};\nexport var brushSlice = createSlice({\n name: 'brush',\n initialState,\n reducers: {\n setBrushSettings(_state, action) {\n if (action.payload == null) {\n return initialState;\n }\n return action.payload;\n }\n }\n});\nvar setBrushSettings = brushSlice.actions.setBrushSettings;\nexport { setBrushSettings };\nexport var brushReducer = brushSlice.reducer;","export var rectWithPoints = (_ref, _ref2) => {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = _ref3 => {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref4) {\n var width = _ref4.width,\n height = _ref4.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","import { createSlice, current } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n dots: [],\n areas: [],\n lines: []\n};\nexport var referenceElementsSlice = createSlice({\n name: 'referenceElements',\n initialState,\n reducers: {\n addDot: (state, action) => {\n state.dots.push(action.payload);\n },\n removeDot: (state, action) => {\n var index = current(state).dots.findIndex(dot => dot === action.payload);\n if (index !== -1) {\n state.dots.splice(index, 1);\n }\n },\n addArea: (state, action) => {\n state.areas.push(action.payload);\n },\n removeArea: (state, action) => {\n var index = current(state).areas.findIndex(area => area === action.payload);\n if (index !== -1) {\n state.areas.splice(index, 1);\n }\n },\n addLine: (state, action) => {\n state.lines.push(castDraft(action.payload));\n },\n removeLine: (state, action) => {\n var index = current(state).lines.findIndex(line => line === action.payload);\n if (index !== -1) {\n state.lines.splice(index, 1);\n }\n }\n }\n});\nvar _referenceElementsSli = referenceElementsSlice.actions,\n addDot = _referenceElementsSli.addDot,\n removeDot = _referenceElementsSli.removeDot,\n addArea = _referenceElementsSli.addArea,\n removeArea = _referenceElementsSli.removeArea,\n addLine = _referenceElementsSli.addLine,\n removeLine = _referenceElementsSli.removeLine;\nexport { addDot, removeDot, addArea, removeArea, addLine, removeLine };\nexport var referenceElementsReducer = referenceElementsSlice.reducer;","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { createContext, useContext, useState } from 'react';\nimport { uniqueId } from '../util/DataUtils';\nimport { usePlotArea } from '../hooks';\nvar ClipPathIdContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Generates a unique clip path ID for use in SVG elements,\n * and puts it in a context provider.\n *\n * To read the clip path ID, use the `useClipPathId` hook,\n * or render `<ClipPath>` component which will automatically use the ID from this context.\n *\n * @param props children - React children to be wrapped by the provider\n * @returns React Context Provider\n */\nexport var ClipPathProvider = _ref => {\n var children = _ref.children;\n var _useState = useState(\"\".concat(uniqueId('recharts'), \"-clip\")),\n _useState2 = _slicedToArray(_useState, 1),\n clipPathId = _useState2[0];\n var plotArea = usePlotArea();\n if (plotArea == null) {\n return null;\n }\n var x = plotArea.x,\n y = plotArea.y,\n width = plotArea.width,\n height = plotArea.height;\n return /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n height: height,\n width: width\n }))), children);\n};\nexport var useClipPathId = () => {\n return useContext(ClipPathIdContext);\n};","//#region src/function/noop.ts\n/**\n* A no-operation function that does nothing.\n* This can be used as a placeholder or default function.\n*\n* @example\n* noop(); // Does nothing\n*\n* @returns This function does not return anything.\n*/\nfunction noop() {}\n//#endregion\nexport { noop };\n","//#region src/predicate/isPlainObject.ts\n/**\n* Checks if a given value is a plain object.\n*\n* @param value - The value to check.\n* @returns True if the value is a plain object, otherwise false.\n*\n* @example\n* ```typescript\n* // ✅👇 True\n*\n* isPlainObject({ }); // ✅\n* isPlainObject({ key: 'value' }); // ✅\n* isPlainObject({ key: new Date() }); // ✅\n* isPlainObject(new Object()); // ✅\n* isPlainObject(Object.create(null)); // ✅\n* isPlainObject({ nested: { key: true} }); // ✅\n* isPlainObject(new Proxy({}, {})); // ✅\n* isPlainObject({ [Symbol('tag')]: 'A' }); // ✅\n*\n* // ✅👇 (cross-realms, node context, workers, ...)\n* const runInNewContext = await import('node:vm').then(\n* (mod) => mod.runInNewContext\n* );\n* isPlainObject(runInNewContext('({})')); // ✅\n*\n* // ❌👇 False\n*\n* class Test { };\n* isPlainObject(new Test()) // ❌\n* isPlainObject(10); // ❌\n* isPlainObject(null); // ❌\n* isPlainObject('hello'); // ❌\n* isPlainObject([]); // ❌\n* isPlainObject(new Date()); // ❌\n* isPlainObject(new Uint8Array([1])); // ❌\n* isPlainObject(Buffer.from('ABC')); // ❌\n* isPlainObject(Promise.resolve({})); // ❌\n* isPlainObject(Object.create({})); // ❌\n* isPlainObject(new (class Cls {})); // ❌\n* isPlainObject(globalThis); // ❌,\n* ```\n*/\nfunction isPlainObject(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst proto = Object.getPrototypeOf(value);\n\tif (!(proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null)) return false;\n\treturn Object.prototype.toString.call(value) === \"[object Object]\";\n}\n//#endregion\nexport { isPlainObject };\n","import { getSymbols } from \"../compat/_internal/getSymbols.mjs\";\nimport { getTag } from \"../compat/_internal/getTag.mjs\";\nimport { arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag } from \"../compat/_internal/tags.mjs\";\nimport { isBuffer } from \"./isBuffer.mjs\";\nimport { isPlainObject } from \"./isPlainObject.mjs\";\nimport { eq } from \"../compat/util/eq.mjs\";\n//#region src/predicate/isEqualWith.ts\n/**\n* Compares two values for equality using a custom comparison function.\n*\n* The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.\n*\n* This function also uses the custom equality function to compare values inside objects,\n* arrays, maps, sets, and other complex structures, ensuring a deep comparison.\n*\n* This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.\n*\n* The custom comparison function can take up to six parameters:\n* - `x`: The value from the first object `a`.\n* - `y`: The value from the second object `b`.\n* - `property`: The property key used to get `x` and `y`.\n* - `xParent`: The parent of the first value `x`.\n* - `yParent`: The parent of the second value `y`.\n* - `stack`: An internal stack (Map) to handle circular references.\n*\n* @param a - The first value to compare.\n* @param b - The second value to compare.\n* @param areValuesEqual - A function to customize the comparison.\n* If it returns a boolean, that result will be used. If it returns undefined,\n* the default equality comparison will be used.\n* @returns `true` if the values are equal according to the customizer, otherwise `false`.\n*\n* @example\n* const customizer = (a, b) => {\n* if (typeof a === 'string' && typeof b === 'string') {\n* return a.toLowerCase() === b.toLowerCase();\n* }\n* };\n* isEqualWith('Hello', 'hello', customizer); // true\n* isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true\n* isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true\n*/\nfunction isEqualWith(a, b, areValuesEqual) {\n\treturn isEqualWithImpl(a, b, void 0, void 0, void 0, void 0, areValuesEqual);\n}\nfunction isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {\n\tconst result = areValuesEqual(a, b, property, aParent, bParent, stack);\n\tif (result !== void 0) return result;\n\tif (typeof a === typeof b) switch (typeof a) {\n\t\tcase \"bigint\":\n\t\tcase \"string\":\n\t\tcase \"boolean\":\n\t\tcase \"symbol\":\n\t\tcase \"undefined\": return a === b;\n\t\tcase \"number\": return a === b || Object.is(a, b);\n\t\tcase \"function\": return a === b;\n\t\tcase \"object\": return areObjectsEqual(a, b, stack, areValuesEqual);\n\t}\n\treturn areObjectsEqual(a, b, stack, areValuesEqual);\n}\nfunction areObjectsEqual(a, b, stack, areValuesEqual) {\n\tif (Object.is(a, b)) return true;\n\tlet aTag = getTag(a);\n\tlet bTag = getTag(b);\n\tif (aTag === \"[object Arguments]\") aTag = objectTag;\n\tif (bTag === \"[object Arguments]\") bTag = objectTag;\n\tif (aTag !== bTag) return false;\n\tswitch (aTag) {\n\t\tcase stringTag: return a.toString() === b.toString();\n\t\tcase numberTag: return eq(a.valueOf(), b.valueOf());\n\t\tcase booleanTag:\n\t\tcase dateTag:\n\t\tcase symbolTag: return Object.is(a.valueOf(), b.valueOf());\n\t\tcase regexpTag: return a.source === b.source && a.flags === b.flags;\n\t\tcase functionTag: return a === b;\n\t}\n\tstack = stack ?? /* @__PURE__ */ new Map();\n\tconst aStack = stack.get(a);\n\tconst bStack = stack.get(b);\n\tif (aStack != null && bStack != null) return aStack === b;\n\tstack.set(a, b);\n\tstack.set(b, a);\n\ttry {\n\t\tswitch (aTag) {\n\t\t\tcase mapTag:\n\t\t\t\tif (a.size !== b.size) return false;\n\t\t\t\tfor (const [key, value] of a.entries()) if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) return false;\n\t\t\t\treturn true;\n\t\t\tcase setTag: {\n\t\t\t\tif (a.size !== b.size) return false;\n\t\t\t\tconst aValues = Array.from(a.values());\n\t\t\t\tconst bValues = Array.from(b.values());\n\t\t\t\tfor (let i = 0; i < aValues.length; i++) {\n\t\t\t\t\tconst aValue = aValues[i];\n\t\t\t\t\tconst index = bValues.findIndex((bValue) => {\n\t\t\t\t\t\treturn isEqualWithImpl(aValue, bValue, void 0, a, b, stack, areValuesEqual);\n\t\t\t\t\t});\n\t\t\t\t\tif (index === -1) return false;\n\t\t\t\t\tbValues.splice(index, 1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcase arrayTag:\n\t\t\tcase uint8ArrayTag:\n\t\t\tcase uint8ClampedArrayTag:\n\t\t\tcase uint16ArrayTag:\n\t\t\tcase uint32ArrayTag:\n\t\t\tcase bigUint64ArrayTag:\n\t\t\tcase int8ArrayTag:\n\t\t\tcase int16ArrayTag:\n\t\t\tcase int32ArrayTag:\n\t\t\tcase bigInt64ArrayTag:\n\t\t\tcase float32ArrayTag:\n\t\t\tcase float64ArrayTag:\n\t\t\t\tif (isBuffer(a) !== isBuffer(b)) return false;\n\t\t\t\tif (a.length !== b.length) return false;\n\t\t\t\tfor (let i = 0; i < a.length; i++) if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) return false;\n\t\t\t\treturn true;\n\t\t\tcase arrayBufferTag:\n\t\t\t\tif (a.byteLength !== b.byteLength) return false;\n\t\t\t\treturn areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n\t\t\tcase dataViewTag:\n\t\t\t\tif (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) return false;\n\t\t\t\treturn areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n\t\t\tcase errorTag: return a.name === b.name && a.message === b.message;\n\t\t\tcase objectTag: {\n\t\t\t\tif (!(areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) || isPlainObject(a) && isPlainObject(b))) return false;\n\t\t\t\tconst aKeys = [...Object.keys(a), ...getSymbols(a)];\n\t\t\t\tconst bKeys = [...Object.keys(b), ...getSymbols(b)];\n\t\t\t\tif (aKeys.length !== bKeys.length) return false;\n\t\t\t\tfor (let i = 0; i < aKeys.length; i++) {\n\t\t\t\t\tconst propKey = aKeys[i];\n\t\t\t\t\tconst aProp = a[propKey];\n\t\t\t\t\tif (!Object.hasOwn(b, propKey)) return false;\n\t\t\t\t\tconst bProp = b[propKey];\n\t\t\t\t\tif (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) return false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tdefault: return false;\n\t\t}\n\t} finally {\n\t\tstack.delete(a);\n\t\tstack.delete(b);\n\t}\n}\n//#endregion\nexport { isEqualWith };\n","import { noop } from \"../function/noop.mjs\";\nimport { isEqualWith } from \"./isEqualWith.mjs\";\n//#region src/predicate/isEqual.ts\n/**\n* Checks if two values are equal, including support for `Date`, `RegExp`, and deep object comparison.\n*\n* @param a - The first value to compare.\n* @param b - The second value to compare.\n* @returns `true` if the values are equal, otherwise `false`.\n*\n* @example\n* isEqual(1, 1); // true\n* isEqual({ a: 1 }, { a: 1 }); // true\n* isEqual(/abc/g, /abc/g); // true\n* isEqual(new Date('2020-01-01'), new Date('2020-01-01')); // true\n* isEqual([1, 2, 3], [1, 2, 3]); // true\n*/\nfunction isEqual(a, b) {\n\treturn isEqualWith(a, b, noop);\n}\n//#endregion\nexport { isEqual };\n","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * For n equal to 1, the input array is returned as is.\n * For n greater than the length of the array, an array containing the first element\n * and every nTh element after that (if any) is returned.\n *\n * @param array An input array.\n * @param n A number specifying which elements to take.\n * @returns The result array of the same type as the input array.\n */\nexport function getEveryNth(array, n) {\n if (n < 1) {\n return [];\n }\n if (n === 1) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n var item = array[i];\n if (item !== undefined) {\n result.push(item);\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNth } from './getEveryNth';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNth(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNth } from '../util/getEveryNth';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluated all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNth(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}\nexport function getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n // Reworked logic for getEquidistantPreserveEndTicks\n var result = (ticks || []).slice();\n var len = result.length;\n if (len === 0) {\n return [];\n }\n var initialStart = boundaries.start,\n end = boundaries.end;\n\n // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)\n for (var stepsize = 1; stepsize <= len; stepsize++) {\n // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.\n var offset = (len - 1) % stepsize;\n var start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap\n var ok = true;\n\n // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1\n var _loop2 = function _loop2() {\n var entry = ticks[index];\n if (entry == null) {\n return 0; // continue\n }\n var i = index;\n var size;\n\n // Use a function to get size, as in the original code\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n\n // 3. Apply visibility logic (including the first tick special case)\n // The reviewer says *not* to unconditionally bypass checks for the last tick.\n var isShow = index === offset || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // If any tick in this end-anchored sequence fails visibility/collision,\n // reject this stepsize and move to the next iteration (larger stepsize).\n ok = false;\n return 1; // break\n }\n\n // 4. If showable, update the 'start' coordinate for the next collision check\n if (isShow) {\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n }\n },\n _ret2;\n for (var index = offset; index < len; index += stepsize) {\n _ret2 = _loop2();\n if (_ret2 === 0) continue;\n if (_ret2 === 1) break;\n }\n\n // 5. If the entire sequence for this stepsize passed the visibility check, return the result\n if (ok) {\n // Build the final result array explicitly using the validated stepsize and offset.\n var finalTicks = [];\n for (var _index = offset; _index < len; _index += stepsize) {\n var tick = ticks[_index];\n if (tick != null) {\n finalTicks.push(tick);\n }\n }\n return finalTicks;\n }\n }\n\n // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.\n return [];\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n if (_loop(i)) continue;\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n // This method is mutating the array so clone is indeed necessary here\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n if (tail != null) {\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n if (tail.tickCoord != null) {\n var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = 0; i < count; i++) {\n if (_loop2(i)) continue;\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n var _getNumberIntervalTic;\n return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize,\n letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = (content, index) => {\n var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize,\n letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize,\n letterSpacing\n })[sizeKey];\n };\n var tick0 = ticks[0];\n var tick1 = ticks[1];\n var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'equidistantPreserveEnd') {\n return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(entry => entry.isShow);\n}","/**\n * Calculates the width of the Y-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated width of the Y-axis.\n */\nexport var getCalculatedYAxisWidth = _ref => {\n var ticks = _ref.ticks,\n label = _ref.label,\n _ref$labelGapWithTick = _ref.labelGapWithTick,\n labelGapWithTick = _ref$labelGapWithTick === void 0 ? 5 : _ref$labelGapWithTick,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 0 : _ref$tickSize,\n _ref$tickMargin = _ref.tickMargin,\n tickMargin = _ref$tickMargin === void 0 ? 0 : _ref$tickMargin;\n // find the max width of the tick labels\n var maxTickWidth = 0;\n if (ticks) {\n Array.from(ticks).forEach(tickNode => {\n if (tickNode) {\n var bbox = tickNode.getBoundingClientRect();\n if (bbox.width > maxTickWidth) {\n maxTickWidth = bbox.width;\n }\n }\n });\n\n // calculate width of the axis label\n var labelWidth = label ? label.getBoundingClientRect().width : 0;\n var tickWidth = tickSize + tickMargin;\n\n // calculate the updated width of the y-axis\n var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);\n return Math.round(updatedYAxisWidth);\n }\n return 0;\n};","/**\n * Calculates the height of the X-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated height of the X-axis.\n */\nexport var getCalculatedXAxisHeight = _ref => {\n var ticks = _ref.ticks,\n label = _ref.label,\n _ref$labelGapWithTick = _ref.labelGapWithTick,\n labelGapWithTick = _ref$labelGapWithTick === void 0 ? 5 : _ref$labelGapWithTick,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 0 : _ref$tickSize,\n _ref$tickMargin = _ref.tickMargin,\n tickMargin = _ref$tickMargin === void 0 ? 0 : _ref$tickMargin;\n // find the max height of the tick labels\n var maxTickHeight = 0;\n if (ticks) {\n Array.from(ticks).forEach(tickNode => {\n if (tickNode) {\n var bbox = tickNode.getBoundingClientRect();\n if (bbox.height > maxTickHeight) {\n maxTickHeight = bbox.height;\n }\n }\n });\n\n // calculate height of the axis label\n var labelHeight = label ? label.getBoundingClientRect().height : 0;\n var tickHeight = tickSize + tickMargin;\n\n // calculate the updated height of the x-axis\n var updatedXAxisHeight = maxTickHeight + tickHeight + labelHeight + (label ? labelGapWithTick : 0);\n return Math.round(updatedXAxisHeight);\n }\n return 0;\n};","/**\n * @fileOverview this stores actually rendered ticks.\n *\n * What we do is that we have the domain -> ticks mapping in the cartesianSlice,\n * which is fine but the result then goes to CartesianAxis where we use DOM measurement\n * to decide which ticks to actually render.\n *\n * This renderedTickSlice stores those actually rendered ticks so that we can return them from a hook later.\n */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n xAxis: {},\n yAxis: {}\n};\nexport var renderedTicksSlice = createSlice({\n name: 'renderedTicks',\n initialState,\n reducers: {\n setRenderedTicks: (state, action) => {\n var _action$payload = action.payload,\n axisType = _action$payload.axisType,\n axisId = _action$payload.axisId,\n ticks = _action$payload.ticks;\n state[axisType][axisId] = castDraft(ticks);\n },\n removeRenderedTicks: (state, action) => {\n var _action$payload2 = action.payload,\n axisType = _action$payload2.axisType,\n axisId = _action$payload2.axisId;\n delete state[axisType][axisId];\n }\n }\n});\nvar _renderedTicksSlice$a = renderedTicksSlice.actions,\n setRenderedTicks = _renderedTicksSlice$a.setRenderedTicks,\n removeRenderedTicks = _renderedTicksSlice$a.removeRenderedTicks;\nexport { setRenderedTicks, removeRenderedTicks };\nexport var renderedTicksReducer = renderedTicksSlice.reducer;","var _excluded = [\"axisLine\", \"width\", \"height\", \"className\", \"hide\", \"ticks\", \"axisType\", \"axisId\"];\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport * as React from 'react';\nimport { useState, useRef, useCallback, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport get from 'es-toolkit/compat/get';\nimport isEqual from 'es-toolkit/compat/isEqual';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Text, isValidTextAnchor } from '../component/Text';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { getTicks } from './getTicks';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { getCalculatedYAxisWidth } from '../util/YAxisUtils';\nimport { getCalculatedXAxisHeight } from '../util/XAxisUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\nimport { removeRenderedTicks, setRenderedTicks } from '../state/renderedTicksSlice';\nimport { useAppDispatch } from '../state/hooks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var defaultCartesianAxisProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd',\n zIndex: DefaultZIndexes.axis\n};\n\n/*\n * `viewBox` and `scale` are SVG attributes.\n * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`\n * that are completely different data shape and different purpose.\n */\n\nfunction AxisLine(axisLineProps) {\n var x = axisLineProps.x,\n y = axisLineProps.y,\n width = axisLineProps.width,\n height = axisLineProps.height,\n orientation = axisLineProps.orientation,\n mirror = axisLineProps.mirror,\n axisLine = axisLineProps.axisLine,\n otherSvgProps = axisLineProps.otherSvgProps;\n if (!axisLine) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), svgPropertiesNoEvents(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n}\n\n/**\n * Calculate the coordinates of endpoints in ticks.\n * @param data The data of a simple tick.\n * @param x The x-coordinate of the axis.\n * @param y The y-coordinate of the axis.\n * @param width The width of the axis.\n * @param height The height of the axis.\n * @param orientation The orientation of the axis.\n * @param tickSize The length of the tick line.\n * @param mirror If true, the ticks are mirrored.\n * @param tickMargin The margin between the tick line and the tick text.\n * @returns An object with `line` and `tick` coordinates.\n * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.\n */\nfunction getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1,\n y1,\n x2,\n y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The text anchor of the tick.\n */\nfunction getTickTextAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n return mirror ? 'start' : 'end';\n case 'right':\n return mirror ? 'end' : 'start';\n default:\n return 'middle';\n }\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The vertical text anchor of the tick.\n */\nfunction getTickVerticalAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n case 'right':\n return 'middle';\n case 'top':\n return mirror ? 'start' : 'end';\n default:\n return mirror ? 'end' : 'start';\n }\n}\nfunction TickItem(props) {\n var option = props.option,\n tickProps = props.tickProps,\n value = props.value;\n var tickItem;\n var combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else if (typeof option === 'function') {\n tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else {\n var className = 'recharts-cartesian-axis-tick-value';\n if (typeof option !== 'boolean') {\n className = clsx(className, getClassNameFromUnknown(option));\n }\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: className\n }), value);\n }\n return tickItem;\n}\nfunction RenderedTicksReporter(_ref) {\n var ticks = _ref.ticks,\n axisType = _ref.axisType,\n axisId = _ref.axisId;\n var dispatch = useAppDispatch();\n /*\n * The ticks array gets a new identity on every render even when its contents are unchanged.\n * If we dispatched on every identity change, then every parent re-render would trigger\n * a store update from a passive effect. Under rapid external updates (e.g. a slider\n * driving chart data), those nested dispatches can trip React's update depth limit.\n * https://github.com/recharts/recharts/issues/7563\n */\n var lastDispatchedTicksRef = useRef(null);\n useEffect(() => {\n if (axisId == null || axisType == null) {\n return;\n }\n // Filter out irrelevant internal properties before exposing externally\n var tickItems = ticks.map(tick => ({\n value: tick.value,\n coordinate: tick.coordinate,\n offset: tick.offset,\n index: tick.index\n }));\n var last = lastDispatchedTicksRef.current;\n if (last != null && last.axisId === axisId && last.axisType === axisType && isEqual(last.ticks, tickItems)) {\n return;\n }\n lastDispatchedTicksRef.current = {\n ticks: tickItems,\n axisId,\n axisType\n };\n dispatch(setRenderedTicks({\n ticks: tickItems,\n axisId,\n axisType\n }));\n }, [dispatch, ticks, axisId, axisType]);\n useEffect(() => {\n if (axisId == null || axisType == null) {\n return noop;\n }\n return () => {\n dispatch(removeRenderedTicks({\n axisId,\n axisType\n }));\n };\n }, [dispatch, axisId, axisType]);\n return null;\n}\nvar Ticks = /*#__PURE__*/forwardRef((props, ref) => {\n var _props$ticks = props.ticks,\n ticks = _props$ticks === void 0 ? [] : _props$ticks,\n tick = props.tick,\n tickLine = props.tickLine,\n stroke = props.stroke,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n padding = props.padding,\n tickTextProps = props.tickTextProps,\n orientation = props.orientation,\n mirror = props.mirror,\n x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n tickSize = props.tickSize,\n tickMargin = props.tickMargin,\n fontSize = props.fontSize,\n letterSpacing = props.letterSpacing,\n getTicksConfig = props.getTicksConfig,\n events = props.events,\n axisType = props.axisType,\n axisId = props.axisId;\n // @ts-expect-error some properties are optional in props but required in getTicks\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, getTicksConfig), {}, {\n ticks\n }), fontSize, letterSpacing);\n var axisProps = svgPropertiesNoEvents(getTicksConfig);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n // Use user-provided textAnchor if available, otherwise calculate from orientation/mirror\n var textAnchor = isValidTextAnchor(axisProps.textAnchor) ? axisProps.textAnchor : getTickTextAnchor(orientation, mirror);\n var verticalAnchor = getTickVerticalAnchor(orientation, mirror);\n var tickLinePropsObject = {};\n if (typeof tickLine === 'object') {\n tickLinePropsObject = tickLine;\n }\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, tickLinePropsObject);\n var tickLineCoords = finalTicks.map(entry => _objectSpread({\n entry\n }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));\n var tickLines = tickLineCoords.map(_ref2 => {\n var entry = _ref2.entry,\n lineCoord = _ref2.line;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })));\n });\n var tickLabels = tickLineCoords.map((_ref3, i) => {\n var _ref4, _tickTextProps$angle;\n var entry = _ref3.entry,\n tickCoord = _ref3.tick;\n // @ts-expect-error we're not checking that padding and orientation types are in sync\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n verticalAnchor\n }, axisProps), {}, {\n textAnchor,\n stroke: 'none',\n fill: stroke\n }, tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter,\n padding\n }, tickTextProps), {}, {\n angle: (_ref4 = (_tickTextProps$angle = tickTextProps === null || tickTextProps === void 0 ? void 0 : tickTextProps.angle) !== null && _tickTextProps$angle !== void 0 ? _tickTextProps$angle : axisProps.angle) !== null && _ref4 !== void 0 ? _ref4 : 0\n });\n\n // @ts-expect-error customTickProps is contributing unknown props which we don't type properly\n var finalTickProps = _objectSpread(_objectSpread({}, tickProps), customTickProps);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick-label\",\n key: \"tick-label-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {\n option: tick,\n tickProps: finalTickProps,\n value: \"\".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')\n }));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks recharts-\".concat(axisType, \"-ticks\")\n }, /*#__PURE__*/React.createElement(RenderedTicksReporter, {\n ticks: finalTicks,\n axisId: axisId,\n axisType: axisType\n }), tickLabels.length > 0 && /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-labels recharts-\".concat(axisType, \"-tick-labels\"),\n ref: ref\n }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-lines recharts-\".concat(axisType, \"-tick-lines\")\n }, tickLines));\n});\nvar CartesianAxisComponent = /*#__PURE__*/forwardRef((props, ref) => {\n var axisLine = props.axisLine,\n width = props.width,\n height = props.height,\n className = props.className,\n hide = props.hide,\n ticks = props.ticks,\n axisType = props.axisType,\n axisId = props.axisId,\n rest = _objectWithoutProperties(props, _excluded);\n var _useState = useState(''),\n _useState2 = _slicedToArray(_useState, 2),\n fontSize = _useState2[0],\n setFontSize = _useState2[1];\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n letterSpacing = _useState4[0],\n setLetterSpacing = _useState4[1];\n var tickRefs = useRef(null);\n useImperativeHandle(ref, () => ({\n getCalculatedWidth: () => {\n var _props$labelRef;\n return getCalculatedYAxisWidth({\n ticks: tickRefs.current,\n label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,\n labelGapWithTick: 5,\n tickSize: props.tickSize,\n tickMargin: props.tickMargin\n });\n },\n getCalculatedHeight: () => {\n var _props$labelRef2;\n return getCalculatedXAxisHeight({\n ticks: tickRefs.current,\n label: (_props$labelRef2 = props.labelRef) === null || _props$labelRef2 === void 0 ? void 0 : _props$labelRef2.current,\n labelGapWithTick: 5,\n tickSize: props.tickSize,\n tickMargin: props.tickMargin\n });\n }\n }));\n var layerRef = useCallback(el => {\n if (el) {\n var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');\n tickRefs.current = tickNodes;\n var tick = tickNodes[0];\n if (tick) {\n var computedStyle = window.getComputedStyle(tick);\n var calculatedFontSize = computedStyle.fontSize;\n var calculatedLetterSpacing = computedStyle.letterSpacing;\n if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {\n setFontSize(calculatedFontSize);\n setLetterSpacing(calculatedLetterSpacing);\n }\n }\n }\n }, [fontSize, letterSpacing]);\n if (hide) {\n return null;\n }\n\n /*\n * This is different condition from what validateWidthHeight is doing;\n * the CartesianAxis does allow width or height to be undefined.\n */\n if (width != null && width <= 0 || height != null && height <= 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className)\n }, /*#__PURE__*/React.createElement(AxisLine, {\n x: props.x,\n y: props.y,\n width: width,\n height: height,\n orientation: props.orientation,\n mirror: props.mirror,\n axisLine: axisLine,\n otherSvgProps: svgPropertiesNoEvents(props)\n }), /*#__PURE__*/React.createElement(Ticks, {\n ref: layerRef,\n axisType: axisType,\n events: rest,\n fontSize: fontSize,\n getTicksConfig: props,\n height: props.height,\n letterSpacing: letterSpacing,\n mirror: props.mirror,\n orientation: props.orientation,\n padding: props.padding,\n stroke: props.stroke,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n tickLine: props.tickLine,\n tickMargin: props.tickMargin,\n tickSize: props.tickSize,\n tickTextProps: props.tickTextProps,\n ticks: ticks,\n unit: props.unit,\n width: props.width,\n x: props.x,\n y: props.y,\n axisId: axisId\n }), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {\n x: props.x,\n y: props.y,\n width: props.width,\n height: props.height,\n lowerWidth: props.width,\n upperWidth: props.width\n }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label,\n labelRef: props.labelRef\n }), props.children)));\n});\n\n/**\n * @deprecated\n *\n * This component is not meant to be used directly in app code.\n * Use XAxis or YAxis instead.\n *\n * Starting from Recharts v4.0 we will make this component internal only.\n */\nexport var CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {\n var props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);\n return /*#__PURE__*/React.createElement(CartesianAxisComponent, _extends({}, props, {\n ref: ref\n }));\n});\nCartesianAxis.displayName = 'CartesianAxis';","/**\n * This is the theme as was the default in 2.x and 3.x branches.\n *\n * It's not very consistent, colors are all over the place and overall exists only for backwards compatibility.\n * Prefer to use either {@link lightTheme} or {@link darkTheme} instead.\n *\n * @deprecated\n * @experimental\n */\nexport var legacyTheme = {\n grid: {\n stroke: '#ccc',\n fill: 'none'\n }\n};","import { createContext, useContext } from 'react';\nimport { legacyTheme } from './legacyTheme';\nvar RechartsThemeContext = /*#__PURE__*/createContext(legacyTheme);\n\n/**\n * Applies the provided theme to all charts in the children tree.\n *\n * @experimental\n */\nexport var RechartsThemeProvider = RechartsThemeContext.Provider;\n\n/**\n * Reads the currently active theme in the children tree.\n *\n * @experimental\n */\nexport var useRechartsTheme = () => useContext(RechartsThemeContext);","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"],\n _excluded3 = [\"xAxisId\", \"yAxisId\"],\n _excluded4 = [\"xAxisId\", \"yAxisId\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { defaultCartesianAxisProps } from './CartesianAxis';\nimport { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';\nimport { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { useRechartsTheme } from '../theme/RechartsThemeContext';\n\n/**\n * The <CartesianGrid horizontal\n */\n\n// We exclude strokeDasharray here because Recharts allows array of numbers while DOM does not\n\nvar Background = props => {\n var fill = props.fill;\n if (!fill || fill === 'none') {\n return null;\n }\n var fillOpacity = props.fillOpacity,\n x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n ry = props.ry;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n ry: ry,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n};\nfunction LineItem(_ref) {\n var option = _ref.option,\n lineItemProps = _ref.lineItemProps;\n var lineItem;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error typescript does not see the props type when cloning an element\n lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);\n } else if (typeof option === 'function') {\n lineItem = option(lineItemProps);\n } else {\n var _svgPropertiesNoEvent;\n var x1 = lineItemProps.x1,\n y1 = lineItemProps.y1,\n x2 = lineItemProps.x2,\n y2 = lineItemProps.y2,\n key = lineItemProps.key,\n others = _objectWithoutProperties(lineItemProps, _excluded);\n var _ref2 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n __ = _ref2.offset,\n restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);\n var strokeDasharray = Array.isArray(restOfFilteredProps.strokeDasharray) ? restOfFilteredProps.strokeDasharray.join(',') : restOfFilteredProps.strokeDasharray;\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, restOfFilteredProps, {\n strokeDasharray: strokeDasharray,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n return lineItem;\n}\nfunction HorizontalGridLines(props) {\n var x = props.x,\n width = props.width,\n _props$horizontal = props.horizontal,\n horizontal = _props$horizontal === void 0 ? true : _props$horizontal,\n horizontalPoints = props.horizontalPoints;\n if (!horizontal || !horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n var xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n otherLineItemProps = _objectWithoutProperties(props, _excluded3);\n var items = horizontalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n key: \"line-\".concat(i),\n option: horizontal,\n lineItemProps: lineItemProps\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n}\nfunction VerticalGridLines(props) {\n var y = props.y,\n height = props.height,\n _props$vertical = props.vertical,\n vertical = _props$vertical === void 0 ? true : _props$vertical,\n verticalPoints = props.verticalPoints;\n if (!vertical || !verticalPoints || !verticalPoints.length) {\n return null;\n }\n var xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n otherLineItemProps = _objectWithoutProperties(props, _excluded4);\n var items = verticalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n option: vertical,\n lineItemProps: lineItemProps,\n key: \"line-\".concat(i)\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n}\nfunction HorizontalStripes(props) {\n var horizontalFill = props.horizontalFill,\n fillOpacity = props.fillOpacity,\n x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n horizontalPoints = props.horizontalPoints,\n _props$horizontal2 = props.horizontal,\n horizontal = _props$horizontal2 === void 0 ? true : _props$horizontal2;\n if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {\n return null;\n }\n var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);\n // Why is this condition `!==` instead of `<=` ?\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n var items = roundedSortedHorizontalPoints.map((entry, i) => {\n // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?\n var nextPoint = roundedSortedHorizontalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineHeight = lastStripe ? y + height - entry : nextPoint - entry;\n if (lineHeight <= 0) {\n return null;\n }\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n}\nfunction VerticalStripes(props) {\n var _props$vertical2 = props.vertical,\n vertical = _props$vertical2 === void 0 ? true : _props$vertical2,\n verticalFill = props.verticalFill,\n fillOpacity = props.fillOpacity,\n x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n verticalPoints = props.verticalPoints;\n if (!vertical || !verticalFill || !verticalFill.length) {\n return null;\n }\n var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n var items = roundedSortedVerticalPoints.map((entry, i) => {\n var nextPoint = roundedSortedVerticalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineWidth = lastStripe ? x + width - entry : nextPoint - entry;\n if (lineWidth <= 0) {\n return null;\n }\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n}\nvar defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {\n var xAxis = _ref3.xAxis,\n width = _ref3.width,\n height = _ref3.height,\n offset = _ref3.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.left, offset.left + offset.width, syncWithTicks);\n};\nvar defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {\n var yAxis = _ref4.yAxis,\n width = _ref4.width,\n height = _ref4.height,\n offset = _ref4.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.top, offset.top + offset.height, syncWithTicks);\n};\nexport var defaultCartesianGridProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: [],\n xAxisId: 0,\n yAxisId: 0,\n syncWithTicks: false,\n zIndex: DefaultZIndexes.grid\n};\n\n/**\n * Renders background grid with lines and fill colors in a Cartesian chart.\n *\n * @consumes CartesianChartContext\n */\nexport function CartesianGrid(props) {\n var _propsIncludingDefaul, _propsIncludingDefaul2, _propsIncludingDefaul3, _propsIncludingDefaul4, _propsIncludingDefaul5, _propsIncludingDefaul6;\n var chartWidth = useChartWidth();\n var chartHeight = useChartHeight();\n var offset = useOffsetInternal();\n var propsIncludingDefaults = _objectSpread(_objectSpread({}, resolveDefaultProps(props, defaultCartesianGridProps)), {}, {\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height\n });\n var xAxisId = propsIncludingDefaults.xAxisId,\n yAxisId = propsIncludingDefaults.yAxisId,\n x = propsIncludingDefaults.x,\n y = propsIncludingDefaults.y,\n width = propsIncludingDefaults.width,\n height = propsIncludingDefaults.height,\n syncWithTicks = propsIncludingDefaults.syncWithTicks,\n horizontalValues = propsIncludingDefaults.horizontalValues,\n verticalValues = propsIncludingDefaults.verticalValues;\n var isPanorama = useIsPanorama();\n var xAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama));\n var yAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama));\n var theme = useRechartsTheme();\n var themeProps = {\n stroke: (_propsIncludingDefaul = propsIncludingDefaults.stroke) !== null && _propsIncludingDefaul !== void 0 ? _propsIncludingDefaul : theme.grid.stroke,\n strokeWidth: (_propsIncludingDefaul2 = propsIncludingDefaults.strokeWidth) !== null && _propsIncludingDefaul2 !== void 0 ? _propsIncludingDefaul2 : theme.grid.strokeWidth,\n strokeOpacity: (_propsIncludingDefaul3 = propsIncludingDefaults.strokeOpacity) !== null && _propsIncludingDefaul3 !== void 0 ? _propsIncludingDefaul3 : theme.grid.strokeOpacity,\n strokeDasharray: (_propsIncludingDefaul4 = propsIncludingDefaults.strokeDasharray) !== null && _propsIncludingDefaul4 !== void 0 ? _propsIncludingDefaul4 : theme.grid.strokeDasharray\n };\n if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {\n return null;\n }\n\n /*\n * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined\n * outside the propsIncludingDefaults because they were never part of the original props\n * and they were never passed as a prop down to horizontal/vertical custom elements.\n * If we add these two to propsIncludingDefaults then we are changing public API.\n * Not a bad thing per se but also not necessary.\n */\n var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;\n var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;\n var horizontalPoints = propsIncludingDefaults.horizontalPoints,\n verticalPoints = propsIncludingDefaults.verticalPoints;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {\n var isHorizontalValues = horizontalValues && horizontalValues.length;\n var generatorResult = horizontalCoordinatesGenerator({\n yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {\n ticks: isHorizontalValues ? horizontalValues : yAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isHorizontalValues ? true : syncWithTicks);\n warn(Array.isArray(generatorResult), \"horizontalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof generatorResult, \"]\"));\n if (Array.isArray(generatorResult)) {\n horizontalPoints = generatorResult;\n }\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {\n var isVerticalValues = verticalValues && verticalValues.length;\n var _generatorResult = verticalCoordinatesGenerator({\n xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {\n ticks: isVerticalValues ? verticalValues : xAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isVerticalValues ? true : syncWithTicks);\n warn(Array.isArray(_generatorResult), \"verticalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof _generatorResult, \"]\"));\n if (Array.isArray(_generatorResult)) {\n verticalPoints = _generatorResult;\n }\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: propsIncludingDefaults.zIndex\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, /*#__PURE__*/React.createElement(Background, {\n fill: (_propsIncludingDefaul5 = propsIncludingDefaults.fill) !== null && _propsIncludingDefaul5 !== void 0 ? _propsIncludingDefaul5 : theme.grid.fill,\n fillOpacity: (_propsIncludingDefaul6 = propsIncludingDefaults.fillOpacity) !== null && _propsIncludingDefaul6 !== void 0 ? _propsIncludingDefaul6 : theme.grid.fillOpacity,\n x: propsIncludingDefaults.x,\n y: propsIncludingDefaults.y,\n width: propsIncludingDefaults.width,\n height: propsIncludingDefaults.height,\n ry: propsIncludingDefaults.ry\n }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {\n horizontalPoints: horizontalPoints\n })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {\n verticalPoints: verticalPoints\n })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, themeProps, {\n offset: offset,\n horizontalPoints: horizontalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, themeProps, {\n offset: offset,\n verticalPoints: verticalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n }))));\n}\nCartesianGrid.displayName = 'CartesianGrid';","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * ErrorBars have lot more settings but all the others are scoped to the component itself.\n * Only some of them required to be reported to the global store because XAxis and YAxis need to know\n * if the error bar is contributing to extending the axis domain.\n */\n\nvar initialState = {};\nvar errorBarSlice = createSlice({\n name: 'errorBars',\n initialState,\n reducers: {\n addErrorBar: (state, action) => {\n var _action$payload = action.payload,\n itemId = _action$payload.itemId,\n errorBar = _action$payload.errorBar;\n if (!state[itemId]) {\n state[itemId] = [];\n }\n state[itemId].push(errorBar);\n },\n replaceErrorBar: (state, action) => {\n var _action$payload2 = action.payload,\n itemId = _action$payload2.itemId,\n prev = _action$payload2.prev,\n next = _action$payload2.next;\n if (state[itemId]) {\n state[itemId] = state[itemId].map(e => e.dataKey === prev.dataKey && e.direction === prev.direction ? next : e);\n }\n },\n removeErrorBar: (state, action) => {\n var _action$payload3 = action.payload,\n itemId = _action$payload3.itemId,\n errorBar = _action$payload3.errorBar;\n if (state[itemId]) {\n state[itemId] = state[itemId].filter(e => e.dataKey !== errorBar.dataKey || e.direction !== errorBar.direction);\n }\n }\n }\n});\nvar _errorBarSlice$action = errorBarSlice.actions,\n addErrorBar = _errorBarSlice$action.addErrorBar,\n replaceErrorBar = _errorBarSlice$action.replaceErrorBar,\n removeErrorBar = _errorBarSlice$action.removeErrorBar;\nexport { addErrorBar, replaceErrorBar, removeErrorBar };\nexport var errorBarReducer = errorBarSlice.reducer;","var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\nimport { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { useGraphicalItemId } from './RegisterGraphicalItemId';\nvar initialContextState = {\n data: [],\n xAxisId: 'xAxis-0',\n yAxisId: 'yAxis-0',\n dataPointFormatter: () => ({\n x: 0,\n y: 0,\n value: 0\n }),\n errorBarOffset: 0\n};\nvar ErrorBarContext = /*#__PURE__*/createContext(initialContextState);\nexport function SetErrorBarContext(props) {\n var children = props.children,\n rest = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {\n value: rest\n }, children);\n}\nexport var useErrorBarContext = () => useContext(ErrorBarContext);\nexport function ReportErrorBarSettings(props) {\n var dispatch = useAppDispatch();\n var graphicalItemId = useGraphicalItemId();\n var prevPropsRef = useRef(null);\n useEffect(() => {\n if (graphicalItemId == null) {\n // ErrorBar outside a graphical item context does not do anything.\n return;\n }\n if (prevPropsRef.current === null) {\n dispatch(addErrorBar({\n itemId: graphicalItemId,\n errorBar: props\n }));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceErrorBar({\n itemId: graphicalItemId,\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, graphicalItemId, props]);\n useEffect(() => {\n return () => {\n if (prevPropsRef.current != null && graphicalItemId != null) {\n dispatch(removeErrorBar({\n itemId: graphicalItemId,\n errorBar: prevPropsRef.current\n }));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch, graphicalItemId]);\n return null;\n}","import * as React from 'react';\nimport { useAppSelector } from '../state/hooks';\nimport { implicitXAxis, implicitYAxis, selectXAxisRange, selectXAxisSettings, selectYAxisRange, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { usePlotArea } from '../hooks';\nexport function useNeedsClip(xAxisId, yAxisId) {\n var _xAxis$allowDataOverf, _yAxis$allowDataOverf;\n var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : implicitXAxis.allowDataOverflow;\n var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : implicitYAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n return {\n needClip,\n needClipX,\n needClipY\n };\n}\nexport function GraphicalItemClipPath(_ref) {\n var xAxisId = _ref.xAxisId,\n yAxisId = _ref.yAxisId,\n clipPathId = _ref.clipPathId;\n var plotArea = usePlotArea();\n var _useNeedsClip = useNeedsClip(xAxisId, yAxisId),\n needClipX = _useNeedsClip.needClipX,\n needClipY = _useNeedsClip.needClipY,\n needClip = _useNeedsClip.needClip;\n var xAxisRange = useAppSelector(state => selectXAxisRange(state, xAxisId, false));\n var yAxisRange = useAppSelector(state => selectYAxisRange(state, yAxisId, false));\n if (!needClip || !plotArea) {\n return null;\n }\n var x = plotArea.x,\n y = plotArea.y,\n width = plotArea.width,\n height = plotArea.height;\n var clipX = needClipX && xAxisRange ? Math.min(xAxisRange[0], xAxisRange[1]) : x - width / 2;\n var clipY = needClipY && yAxisRange ? Math.min(yAxisRange[0], yAxisRange[1]) : y - height / 2;\n var clipWidth = needClipX && xAxisRange ? Math.abs(xAxisRange[1] - xAxisRange[0]) : width * 2;\n var clipHeight = needClipY && yAxisRange ? Math.abs(yAxisRange[1] - yAxisRange[0]) : height * 2;\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: clipX,\n y: clipY,\n width: clipWidth,\n height: clipHeight\n }));\n}","import { defaultAxisId } from '../cartesianAxisSlice';\nexport function selectXAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems, _state$graphicalItems2;\n return (_state$graphicalItems = (_state$graphicalItems2 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems2 === void 0 ? void 0 : _state$graphicalItems2.xAxisId) !== null && _state$graphicalItems !== void 0 ? _state$graphicalItems : defaultAxisId;\n}\nexport function selectYAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems3, _state$graphicalItems4;\n return (_state$graphicalItems3 = (_state$graphicalItems4 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems4 === void 0 ? void 0 : _state$graphicalItems4.yAxisId) !== null && _state$graphicalItems3 !== void 0 ? _state$graphicalItems3 : defaultAxisId;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var _excluded = [\"option\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\nexport var defaultBarShape = Rectangle;\nexport function BarRectangle(_ref) {\n var option = _ref.option,\n shapeProps = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Shape, {\n option: option,\n DefaultShape: defaultBarShape,\n shapeProps: shapeProps,\n activeClassName: \"recharts-active-bar\",\n inActiveClassName: \"recharts-inactive-bar\"\n });\n}\n/**\n * Safely gets minPointSize from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return (value, index) => {\n if (isNumber(minPointSize)) return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? true ? invariant(false, \"minPointSize callback function received a value with type of \".concat(typeof value, \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","import { createSelector } from 'reselect';\nimport { selectAxisWithScale, selectCartesianAxisSize, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { isNullish } from '../../util/DataUtils';\nimport { getBandSizeOfAxis } from '../../util/ChartUtils';\nimport { computeBarRectangles } from '../../cartesian/Bar';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';\nimport { combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\nimport { combineBarPosition } from './combiners/combineBarPosition';\nvar pickIsPanorama = (_state, _id, isPanorama) => isPanorama;\nvar pickBarId = (_state, id) => id;\nvar selectSynchronisedBarSettings = createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));\nexport var selectMaxBarSize = createSelector([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);\nvar pickCells = (_state, _id, _isPanorama, cells) => cells;\nexport var selectAllVisibleBars = createSelector([selectChartLayout, selectUnfilteredCartesianItems, selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {\n if (layout === 'horizontal') {\n return i.xAxisId === xAxisId;\n }\n return i.yAxisId === yAxisId;\n}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));\nvar selectBarStackGroups = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);\n }\n return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);\n};\nexport var selectBarCartesianAxisSize = (state, id) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectCartesianAxisSize(state, 'xAxis', xAxisId);\n }\n return selectCartesianAxisSize(state, 'yAxis', yAxisId);\n};\nexport var selectBarSizeList = createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);\nexport var selectBarBandSize = (state, id, isPanorama) => {\n var _ref, _getBandSizeOfAxis;\n var barSettings = selectSynchronisedBarSettings(state, id);\n if (barSettings == null) {\n return 0;\n }\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return 0;\n }\n var layout = selectChartLayout(state);\n var globalMaxBarSize = selectRootMaxBarSize(state);\n var childMaxBarSize = barSettings.maxBarSize;\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;\n};\nexport var selectAxisBandSize = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return getBandSizeOfAxis(axis, ticks);\n};\nexport var selectAllBarPositions = createSelector([selectBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], combineAllBarPositions);\nvar selectXAxisWithScale = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisWithScale = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n};\nvar selectXAxisTicks = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisTicks = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n};\nexport var selectBarPosition = createSelector([selectAllBarPositions, selectSynchronisedBarSettings], combineBarPosition);\nexport var selectStackedDataOfItem = createSelector([selectBarStackGroups, selectSynchronisedBarSettings], combineStackedData);\nexport var selectBarRectangles = createSelector([selectChartOffsetInternal, selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, selectChartLayout, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref2, bandSize, stackedData, barSettings, cells) => {\n var chartData = _ref2.chartData,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {\n return undefined;\n }\n var data = barSettings.data;\n var displayedData;\n if (data != null && data.length > 0) {\n displayedData = data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null) {\n return undefined;\n }\n return computeBarRectangles({\n layout,\n barSettings,\n pos,\n parentViewBox: axisViewBox,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n dataStartIndex\n });\n});","var _excluded = [\"index\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { getNormalizedStackId } from '../util/ChartUtils';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAppSelector } from '../state/hooks';\nimport { selectStackRects } from '../state/selectors/barStackSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Layer } from '../container/Layer';\nimport { Rectangle } from '../shape/Rectangle';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar BarStackContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Hook to resolve the stack ID for a Bar component.\n * If a stack ID is provided via props, it is used directly.\n * Otherwise, this will read stack ID from BarStack context if available.\n * If both are undefined, it returns undefined.\n * @param childStackId\n */\nexport var useStackId = childStackId => {\n var stackSettings = useContext(BarStackContext);\n if (stackSettings != null) {\n return stackSettings.stackId;\n }\n if (childStackId == null) {\n return undefined;\n }\n return getNormalizedStackId(childStackId);\n};\nexport var defaultBarStackProps = {\n radius: 0\n};\nvar getClipPathId = (stackId, index) => {\n return \"recharts-bar-stack-clip-path-\".concat(stackId, \"-\").concat(index);\n};\nexport var useBarStackClipPathUrl = index => {\n var barStackContext = useContext(BarStackContext);\n if (barStackContext == null) {\n return undefined;\n }\n var stackId = barStackContext.stackId;\n return \"url(#\".concat(getClipPathId(stackId, index), \")\");\n};\nexport var BarStackClipLayer = _ref => {\n var index = _ref.index,\n rest = _objectWithoutProperties(_ref, _excluded);\n var clipPathUrl = useBarStackClipPathUrl(index);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-stack-layer\",\n clipPath: clipPathUrl\n }, rest));\n};\n\n/**\n * This React component will render a clipPath that the individual bars in the stack will reference\n * to achieve rounded corners for the entire stack.\n */\nvar BarStackClipPath = _ref2 => {\n var stackId = _ref2.stackId,\n radius = _ref2.radius;\n var isPanorama = useIsPanorama();\n var positions = useAppSelector(state => selectStackRects(state, stackId, isPanorama));\n if (positions == null || positions.length === 0) {\n return null;\n }\n /*\n * Render one clipPath per rectangle in the stack.\n * Each rectangle corresponds to one data entry in the chart.\n */\n return /*#__PURE__*/React.createElement(\"defs\", null, positions.map((pos, index) => {\n if (pos == null) {\n return null;\n }\n var clipPathId = getClipPathId(stackId, index);\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n key: clipPathId,\n id: clipPathId\n }, /*#__PURE__*/React.createElement(Rectangle, {\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n x: pos.x,\n y: pos.y,\n width: pos.width,\n height: pos.height,\n radius: radius\n }));\n }));\n};\nvar BarStackImpl = props => {\n var resolvedStackId = useUniqueId('recharts-bar-stack', getNormalizedStackId(props.stackId));\n var _resolveDefaultProps = resolveDefaultProps(props, defaultBarStackProps),\n children = _resolveDefaultProps.children,\n radius = _resolveDefaultProps.radius;\n var context = useMemo(() => ({\n stackId: resolvedStackId,\n radius\n }), [resolvedStackId, radius]);\n return /*#__PURE__*/React.createElement(BarStackContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(BarStackClipPath, {\n stackId: resolvedStackId,\n radius: radius\n }), children);\n};\n\n/**\n * @provides BarStackContext\n * @since 3.6\n */\nexport var BarStack = /*#__PURE__*/React.memo(BarStackImpl, propsAreEqual);","var _excluded = [\"onMouseEnter\", \"onMouseLeave\", \"onClick\"],\n _excluded2 = [\"value\", \"background\", \"tooltipPosition\"],\n _excluded3 = [\"id\"],\n _excluded4 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"];\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Cell } from '../component/Cell';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { interpolate, isNan, mathSign, noop } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getBaseValueOfBar, getCateCoordinateOfBar, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, defaultBarShape, minPointSizeCallback } from '../util/BarUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { selectBarRectangles } from '../state/selectors/barSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { AnimatedItems, useAnimationCallbacks } from '../animation/AnimatedItems';\nimport { matchAppend } from '../animation/matchBy';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { BarStackClipLayer, useStackId } from './BarStack';\nvar computeLegendPayloadFromBarData = props => {\n var dataKey = props.dataKey,\n name = props.name,\n fill = props.fill,\n legendType = props.legendType,\n hide = props.hide;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: fill,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var dataKey = _ref.dataKey,\n stroke = _ref.stroke,\n strokeWidth = _ref.strokeWidth,\n fill = _ref.fill,\n name = _ref.name,\n hide = _ref.hide,\n unit = _ref.unit,\n formatter = _ref.formatter,\n tooltipType = _ref.tooltipType,\n id = _ref.id;\n var tooltipEntrySettings = {\n dataDefinedOnItem: undefined,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey: undefined,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit,\n formatter,\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction BarBackground(props) {\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var data = props.data,\n dataKey = props.dataKey,\n backgroundFromProps = props.background,\n allOtherBarProps = props.allOtherBarProps;\n var onMouseEnterFromProps = allOtherBarProps.onMouseEnter,\n onMouseLeaveFromProps = allOtherBarProps.onMouseLeave,\n onItemClickFromProps = allOtherBarProps.onClick,\n restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, allOtherBarProps.id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, allOtherBarProps.id);\n if (!backgroundFromProps || data == null) {\n return null;\n }\n var backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)\n }, data.map((entry, i) => {\n var value = entry.value,\n backgroundFromDataEntry = entry.background,\n tooltipPosition = entry.tooltipPosition,\n rest = _objectWithoutProperties(entry, _excluded2);\n if (!backgroundFromDataEntry) {\n return null;\n }\n var onMouseEnter = onMouseEnterFromContext(entry, entry.originalDataIndex);\n var onMouseLeave = onMouseLeaveFromContext(entry, entry.originalDataIndex);\n var onClick = onClickFromContext(entry, entry.originalDataIndex);\n var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n option: backgroundFromProps,\n isActive: String(entry.originalDataIndex) === activeIndex\n }, rest), {}, {\n // @ts-expect-error backgroundProps is contributing unknown props\n fill: '#eee'\n }, backgroundFromDataEntry), backgroundProps), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i)\n }, barRectangleProps));\n }));\n}\nfunction BarLabelListProvider(_ref2) {\n var showLabels = _ref2.showLabels,\n children = _ref2.children,\n rects = _ref2.rects;\n var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {\n var viewBox = {\n x: entry.x,\n y: entry.y,\n width: entry.width,\n lowerWidth: entry.width,\n upperWidth: entry.width,\n height: entry.height\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: entry.value,\n payload: entry.payload,\n parentViewBox: entry.parentViewBox,\n viewBox,\n fill: entry.fill\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction BarRectangleWithActiveState(props) {\n var shape = props.shape,\n activeBar = props.activeBar,\n baseProps = props.baseProps,\n entry = props.entry,\n index = props.index,\n dataKey = props.dataKey;\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n /*\n * Bars support stacking, meaning that there can be multiple bars at the same x value.\n * With Tooltip shared=false we only want to highlight the currently active Bar, not all.\n *\n * Also, if the tooltip is shared, we want to highlight all bars at the same x value\n * regardless of the dataKey.\n *\n * With shared Tooltip, the activeDataKey is undefined.\n *\n * We use entry.originalDataIndex to match against activeIndex because the render index parameter\n * is based on the filtered array, while activeIndex is based on the pre-filter displayed data slice.\n * When entries are filtered out (for example null/zero-dimension bars), these indices can differ.\n */\n var isActive = activeBar && String(entry.originalDataIndex) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);\n var isAnotherBarActive = activeIndex != null && (String(entry.originalDataIndex) !== activeIndex || activeDataKey != null && dataKey !== activeDataKey);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n stayInLayer = _useState2[0],\n setStayInLayer = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n hasMountedActive = _useState4[0],\n setHasMountedActive = _useState4[1];\n useEffect(() => {\n var rafId;\n if (isActive) {\n // 1. Enter the layer immediately\n setStayInLayer(true);\n\n // 2. Wait for the browser to paint the \"inactive\" state in the new layer,\n // then switch to active to trigger the CSS transition (width grow).\n rafId = requestAnimationFrame(() => {\n setHasMountedActive(true);\n });\n } else {\n setHasMountedActive(false);\n if (isAnotherBarActive) {\n setStayInLayer(false);\n }\n }\n return () => {\n cancelAnimationFrame(rafId);\n };\n }, [isActive, isAnotherBarActive]);\n var handleTransitionEnd = useCallback(() => {\n // 4. Leave the layer only when the exit transition finishes\n if (!isActive) {\n setStayInLayer(false);\n }\n }, [isActive]);\n\n // Determine props:\n // - If entering (isActive=true) but not mounted yet (hasMountedActive=false), pass isActive=false (inactive size).\n // - If exiting (isActive=false), pass isActive=false (inactive size).\n var isVisuallyActive = isActive && hasMountedActive;\n\n // Render in ZIndexLayer if active OR if we are waiting for exit transition\n var shouldRenderInLayer = isActive || stayInLayer;\n var option;\n if (isActive) {\n if (activeBar === true) {\n option = shape;\n } else {\n option = activeBar;\n }\n } else {\n option = shape;\n }\n var content = /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: isVisuallyActive,\n option: option,\n index: index,\n dataKey: dataKey,\n animationElapsedTime: props.animationElapsedTime,\n isAnimating: props.isAnimating,\n isEntrance: props.isEntrance,\n onTransitionEnd: handleTransitionEnd\n }));\n if (shouldRenderInLayer) {\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.activeBar\n }, /*#__PURE__*/React.createElement(BarStackClipLayer, {\n index: entry.originalDataIndex\n }, content));\n }\n return content;\n}\nfunction BarRectangleNeverActive(props) {\n var shape = props.shape,\n baseProps = props.baseProps,\n entry = props.entry,\n index = props.index,\n dataKey = props.dataKey;\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: false,\n option: shape,\n index: index,\n dataKey: dataKey,\n animationElapsedTime: props.animationElapsedTime,\n isAnimating: props.isAnimating,\n isEntrance: props.isEntrance\n }));\n}\nfunction BarRectangles(_ref3) {\n var _svgPropertiesNoEvent;\n var data = _ref3.data,\n props = _ref3.props,\n animationElapsedTime = _ref3.animationElapsedTime,\n isAnimating = _ref3.isAnimating,\n isEntrance = _ref3.isEntrance;\n var _ref4 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n id = _ref4.id,\n baseProps = _objectWithoutProperties(_ref4, _excluded3);\n var shape = props.shape,\n dataKey = props.dataKey,\n activeBar = props.activeBar;\n var onMouseEnterFromProps = props.onMouseEnter,\n onItemClickFromProps = props.onClick,\n onMouseLeaveFromProps = props.onMouseLeave,\n restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n if (!data) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {\n return /*#__PURE__*/React.createElement(BarStackClipLayer, _extends({\n index: entry.originalDataIndex\n // https://github.com/recharts/recharts/issues/5415\n ,\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i),\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, entry.originalDataIndex),\n onMouseLeave: onMouseLeaveFromContext(entry, entry.originalDataIndex),\n onClick: onClickFromContext(entry, entry.originalDataIndex)\n }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {\n shape: shape,\n activeBar: activeBar,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey,\n animationElapsedTime: animationElapsedTime,\n isAnimating: isAnimating,\n isEntrance: isEntrance\n }) :\n /*#__PURE__*/\n /*\n * If the `activeBar` prop is falsy, then let's call the variant without hooks.\n * Using the `selectActiveTooltipIndex` selector is usually fast\n * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.\n * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.\n * So let's just skip the hooks altogether. That way, React can skip rendering the component,\n * and can skip the tree reconciliation for its children too.\n * Because we can't call hooks conditionally, we need to have a separate component for that.\n */\n React.createElement(BarRectangleNeverActive, {\n shape: shape,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey,\n animationElapsedTime: animationElapsedTime,\n isAnimating: isAnimating,\n isEntrance: isEntrance\n }));\n }));\n}\nvar defaultBarAnimateItems = (items, animationElapsedTime, layout) => {\n if (items == null) return [];\n if (animationElapsedTime === 1) {\n return items.flatMap(item => item.status === 'removed' ? [] : [item.next]);\n }\n return items.flatMap(item => {\n if (item.status === 'removed') {\n // animate removed items to 0 height/width respective of layout\n if (layout === 'horizontal') {\n return [_objectSpread(_objectSpread({}, item.prev), {}, {\n height: interpolate(item.prev.height, 0, animationElapsedTime),\n y: interpolate(item.prev.y, item.prev.y + item.prev.height, animationElapsedTime)\n })];\n }\n return [_objectSpread(_objectSpread({}, item.prev), {}, {\n width: interpolate(item.prev.width, 0, animationElapsedTime)\n })];\n }\n if (item.status === 'matched') {\n return [_objectSpread(_objectSpread({}, item.next), {}, {\n x: interpolate(item.prev.x, item.next.x, animationElapsedTime),\n y: interpolate(item.prev.y, item.next.y, animationElapsedTime),\n width: interpolate(item.prev.width, item.next.width, animationElapsedTime),\n height: interpolate(item.prev.height, item.next.height, animationElapsedTime)\n })];\n }\n // added\n var next = item.next;\n if (layout === 'horizontal') {\n return [_objectSpread(_objectSpread({}, next), {}, {\n height: interpolate(0, next.height, animationElapsedTime),\n y: interpolate(next.stackedBarStart, next.y, animationElapsedTime)\n })];\n }\n return [_objectSpread(_objectSpread({}, next), {}, {\n width: interpolate(0, next.width, animationElapsedTime),\n x: interpolate(next.stackedBarStart, next.x, animationElapsedTime)\n })];\n });\n};\nfunction RectanglesWithAnimation(_ref5) {\n var props = _ref5.props,\n previousRectanglesRef = _ref5.previousRectanglesRef;\n var data = props.data,\n isAnimationActive = props.isAnimationActive,\n animationBegin = props.animationBegin,\n animationDuration = props.animationDuration,\n animationEasing = props.animationEasing,\n animationInterpolateFn = props.animationInterpolateFn,\n layout = props.layout;\n var _useAnimationCallback = useAnimationCallbacks(props.onAnimationStart, props.onAnimationEnd),\n isAnimating = _useAnimationCallback.isAnimating,\n handleAnimationStart = _useAnimationCallback.handleAnimationStart,\n handleAnimationEnd = _useAnimationCallback.handleAnimationEnd;\n return /*#__PURE__*/React.createElement(BarLabelListProvider, {\n showLabels: !isAnimating,\n rects: data\n }, /*#__PURE__*/React.createElement(AnimatedItems, {\n animationInput: data,\n animationIdPrefix: \"recharts-bar-\",\n items: data,\n previousItemsRef: previousRectanglesRef,\n isAnimationActive: isAnimationActive,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n onAnimationStart: handleAnimationStart,\n onAnimationEnd: handleAnimationEnd,\n animationInterpolateFn: animationInterpolateFn,\n animationMatchBy: props.animationMatchBy,\n layout: layout\n }, (stepData, animationElapsedTime, isEntrance) => /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {\n props: props,\n data: stepData,\n animationElapsedTime: animationElapsedTime,\n isAnimating: isAnimating || animationElapsedTime < 1,\n isEntrance: isEntrance\n }))), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderRectangles(props) {\n var previousRectanglesRef = useRef(null);\n return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {\n previousRectanglesRef: previousRectanglesRef,\n props: props\n });\n}\nvar defaultMinPointSize = 0;\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n /**\n * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value,\n // getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n};\nclass BarWithState extends PureComponent {\n render() {\n var _this$props = this.props,\n hide = _this$props.hide,\n data = _this$props.data,\n dataKey = _this$props.dataKey,\n className = _this$props.className,\n xAxisId = _this$props.xAxisId,\n yAxisId = _this$props.yAxisId,\n needClip = _this$props.needClip,\n background = _this$props.background,\n id = _this$props.id;\n if (hide || data == null) {\n return null;\n }\n var layerClass = clsx('recharts-bar', className);\n var clipPathId = id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n id: id\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n })), /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined\n }, /*#__PURE__*/React.createElement(BarBackground, {\n data: data,\n dataKey: dataKey,\n background: background,\n allOtherBarProps: this.props\n }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));\n }\n}\nexport var defaultBarProps = {\n activeBar: false,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n animationInterpolateFn: defaultBarAnimateItems,\n animationMatchBy: matchAppend,\n background: false,\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'rect',\n minPointSize: defaultMinPointSize,\n shape: defaultBarShape,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.bar\n};\nfunction BarImpl(props) {\n var xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n hide = props.hide,\n legendType = props.legendType,\n minPointSize = props.minPointSize,\n activeBar = props.activeBar,\n animationBegin = props.animationBegin,\n animationDuration = props.animationDuration,\n animationEasing = props.animationEasing,\n isAnimationActive = props.isAnimationActive;\n var _useNeedsClip = useNeedsClip(xAxisId, yAxisId),\n needClip = _useNeedsClip.needClip;\n var layout = useChartLayout();\n var isPanorama = useIsPanorama();\n var cells = findAllByType(props.children, Cell);\n var rects = useAppSelector(state => selectBarRectangles(state, props.id, isPanorama, cells));\n if (layout !== 'vertical' && layout !== 'horizontal') {\n return null;\n }\n var errorBarOffset;\n var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];\n if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {\n errorBarOffset = 0;\n } else {\n errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;\n }\n return /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: rects,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: errorBarOffset\n }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {\n layout: layout,\n needClip: needClip,\n data: rects,\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n hide: hide,\n legendType: legendType,\n minPointSize: minPointSize,\n activeBar: activeBar,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive\n })));\n}\nexport function computeBarRectangles(_ref6) {\n var layout = _ref6.layout,\n _ref6$barSettings = _ref6.barSettings,\n dataKey = _ref6$barSettings.dataKey,\n minPointSizeProp = _ref6$barSettings.minPointSize,\n hasCustomShape = _ref6$barSettings.hasCustomShape,\n pos = _ref6.pos,\n bandSize = _ref6.bandSize,\n xAxis = _ref6.xAxis,\n yAxis = _ref6.yAxis,\n xAxisTicks = _ref6.xAxisTicks,\n yAxisTicks = _ref6.yAxisTicks,\n stackedData = _ref6.stackedData,\n displayedData = _ref6.displayedData,\n offset = _ref6.offset,\n cells = _ref6.cells,\n parentViewBox = _ref6.parentViewBox,\n dataStartIndex = _ref6.dataStartIndex;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis\n });\n var stackedBarStart = numericAxis.scale.map(baseValue);\n return displayedData.map((entry, index) => {\n var value, x, y, width, height, background;\n if (stackedData) {\n // Use dataStartIndex to access the correct element in the full stackedData array\n var untruncatedValue = stackedData[index + dataStartIndex];\n if (untruncatedValue == null) {\n return null;\n }\n value = truncateByDomain(untruncatedValue, stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref7;\n var baseValueScale = yAxis.scale.map(value[0]);\n var currentValueScale = yAxis.scale.map(value[1]);\n if (baseValueScale == null || currentValueScale == null) {\n return null;\n }\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n y = (_ref7 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref7 !== void 0 ? _ref7 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = isNan(computedHeight) ? 0 : computedHeight;\n background = {\n x,\n y: offset.top,\n width,\n height: offset.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _baseValueScale = xAxis.scale.map(value[0]);\n var _currentValueScale = xAxis.scale.map(value[1]);\n if (_baseValueScale == null || _currentValueScale == null) {\n return null;\n }\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: offset.left,\n y,\n width: offset.width,\n height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n\n /*\n * Filter out 0-dimension rectangles early to avoid creating unnecessary component trees.\n * BarStack clip-paths use originalDataIndex, so sparse filtered arrays remain index-stable.\n * Bars with a custom shape are not filtered out: the custom renderer may still draw something\n * visible at zero-dimension positions (e.g. horizontal lines in a BoxPlot).\n */\n if (x == null || y == null || width == null || height == null || !hasCustomShape && (width === 0 || height === 0)) {\n return null;\n }\n var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {\n stackedBarStart,\n x,\n y,\n width,\n height,\n value: stackedData ? value : value[1],\n payload: entry,\n background,\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n },\n parentViewBox,\n originalDataIndex: index\n }, cells && cells[index] && cells[index].props);\n return barRectangleItem;\n }).filter(Boolean);\n}\nfunction BarFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultBarProps);\n // stackId may arrive from props or from BarStack context\n var stackId = useStackId(props.stackId);\n var isPanorama = useIsPanorama();\n // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"bar\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromBarData(props)\n }), /*#__PURE__*/React.createElement(SetBarTooltipEntrySettings, {\n dataKey: props.dataKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n unit: props.unit,\n formatter: props.formatter,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"bar\",\n id: id\n // Bar does not allow setting data directly on the graphical item (why?)\n ,\n data: undefined,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n dataKey: props.dataKey,\n stackId: stackId,\n hide: props.hide,\n barSize: props.barSize,\n minPointSize: props.minPointSize,\n maxBarSize: props.maxBarSize,\n isPanorama: isPanorama,\n hasCustomShape: props.shape != null && props.shape !== defaultBarShape\n }), /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {\n id: id\n })))));\n}\n\n/**\n * @provides ErrorBarContext\n * @provides LabelListContext\n * @provides CellReader\n * @consumes CartesianChartContext\n * @consumes BarStackContext\n */\nexport var Bar = /*#__PURE__*/React.memo(BarFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\nBar.displayName = 'Bar';","var _excluded = [\"domain\", \"range\"],\n _excluded2 = [\"domain\", \"range\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { propsAreEqual } from './propsAreEqual';\nfunction shortArraysAreEqual(arr1, arr2) {\n if (arr1 === arr2) {\n return true;\n }\n if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {\n return arr1[0] === arr2[0] && arr1[1] === arr2[1];\n }\n return false;\n}\n\n/**\n * Usually we would not compare array props deeply for performance consideration.\n * However, for axis props, domain is sometimes defined as a two-elements array, and range is always\n * a two-elements array. So we can do a shallow comparison for the rest props and a shallow\n * comparison for these two array props.\n * @param prevProps\n * @param nextProps\n */\nexport function axisPropsAreEqual(prevProps, nextProps) {\n if (prevProps === nextProps) {\n return true;\n }\n var prevDomain = prevProps.domain,\n prevRange = prevProps.range,\n prevRest = _objectWithoutProperties(prevProps, _excluded);\n var nextDomain = nextProps.domain,\n nextRange = nextProps.range,\n nextRest = _objectWithoutProperties(nextProps, _excluded2);\n if (!shortArraysAreEqual(prevDomain, nextDomain)) {\n return false;\n }\n if (!shortArraysAreEqual(prevRange, nextRange)) {\n return false;\n }\n return propsAreEqual(prevRest, nextRest);\n}","var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport { isValidElement, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { addXAxis, replaceXAxis, removeXAxis, updateXAxisHeight } from '../state/cartesianAxisSlice';\nimport { implicitXAxis, selectTicksOfAxis, selectXAxisPosition, selectXAxisSettingsNoDefaults, selectXAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetXAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var typeFromProps = props.type,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'xAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [restProps, evaluatedType]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addXAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceXAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeXAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nvar XAxisImpl = props => {\n var xAxisId = props.xAxisId,\n className = props.className,\n height = props.height,\n label = props.label;\n var cartesianAxisRef = useRef(null);\n var labelRef = useRef(null);\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n var axisType = 'xAxis';\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));\n var axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));\n var position = useAppSelector(state => selectXAxisPosition(state, xAxisId));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));\n useLayoutEffect(() => {\n // No dynamic height calculation is done when height !== 'auto'\n // or when a function/react element is used for label\n if (height !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {\n return;\n }\n var axisComponent = cartesianAxisRef.current;\n if (!axisComponent) {\n return;\n }\n var updatedXAxisHeight = axisComponent.getCalculatedHeight();\n\n // if the height has changed, dispatch an action to update the height\n if (Math.round(axisSize.height) !== Math.round(updatedXAxisHeight)) {\n dispatch(updateXAxisHeight({\n id: xAxisId,\n height: updatedXAxisHeight\n }));\n }\n }, [\n // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n // The ref will be populated by then.\n // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n cartesianTickItems, axisSize, dispatch, label, xAxisId, height, synchronizedSettings]);\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n ticks = props.ticks,\n del = props.scale,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var id = synchronizedSettings.id,\n del2 = synchronizedSettings.scale,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n ref: cartesianAxisRef,\n labelRef: labelRef,\n x: position.x,\n y: position.y,\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: xAxisId\n }));\n};\nexport var xAxisDefaultProps = {\n allowDataOverflow: implicitXAxis.allowDataOverflow,\n allowDecimals: implicitXAxis.allowDecimals,\n allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,\n angle: implicitXAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n height: implicitXAxis.height,\n hide: false,\n includeHidden: implicitXAxis.includeHidden,\n interval: implicitXAxis.interval,\n label: false,\n minTickGap: implicitXAxis.minTickGap,\n mirror: implicitXAxis.mirror,\n orientation: implicitXAxis.orientation,\n padding: implicitXAxis.padding,\n reversed: implicitXAxis.reversed,\n scale: implicitXAxis.scale,\n tick: implicitXAxis.tick,\n tickCount: implicitXAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitXAxis.type,\n niceTicks: implicitXAxis.niceTicks,\n xAxisId: 0\n};\nvar XAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, xAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {\n allowDataOverflow: props.allowDataOverflow,\n allowDecimals: props.allowDecimals,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n angle: props.angle,\n dataKey: props.dataKey,\n domain: props.domain,\n height: props.height,\n hide: props.hide,\n id: props.xAxisId,\n includeHidden: props.includeHidden,\n interval: props.interval,\n minTickGap: props.minTickGap,\n mirror: props.mirror,\n name: props.name,\n orientation: props.orientation,\n padding: props.padding,\n reversed: props.reversed,\n scale: props.scale,\n tick: props.tick,\n tickCount: props.tickCount,\n tickFormatter: props.tickFormatter,\n ticks: props.ticks,\n type: props.type,\n unit: props.unit,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(XAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nXAxis.displayName = 'XAxis';","var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { isValidElement, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { addYAxis, replaceYAxis, removeYAxis, updateYAxisWidth } from '../state/cartesianAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { implicitYAxis, selectTicksOfAxis, selectYAxisPosition, selectYAxisSettingsNoDefaults, selectYAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetYAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var typeFromProps = props.type,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'yAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [evaluatedType, restProps]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addYAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceYAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeYAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nfunction YAxisImpl(props) {\n var yAxisId = props.yAxisId,\n className = props.className,\n width = props.width,\n label = props.label;\n var cartesianAxisRef = useRef(null);\n var labelRef = useRef(null);\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n var axisType = 'yAxis';\n var axisSize = useAppSelector(state => selectYAxisSize(state, yAxisId));\n var position = useAppSelector(state => selectYAxisPosition(state, yAxisId));\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));\n useLayoutEffect(() => {\n // No dynamic width calculation is done when width !== 'auto'\n // or when a function/react element is used for label\n if (width !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {\n return;\n }\n var axisComponent = cartesianAxisRef.current;\n if (!axisComponent) {\n return;\n }\n var updatedYAxisWidth = axisComponent.getCalculatedWidth();\n\n // if the width has changed, dispatch an action to update the width\n if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {\n dispatch(updateYAxisWidth({\n id: yAxisId,\n width: updatedYAxisWidth\n }));\n }\n }, [\n // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n // The ref will be populated by then.\n // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n ticks = props.ticks,\n del = props.scale,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var id = synchronizedSettings.id,\n del2 = synchronizedSettings.scale,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n ref: cartesianAxisRef,\n labelRef: labelRef,\n x: position.x,\n y: position.y,\n tickTextProps: width === 'auto' ? {\n width: undefined\n } : {\n width\n },\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: yAxisId\n }));\n}\nexport var yAxisDefaultProps = {\n allowDataOverflow: implicitYAxis.allowDataOverflow,\n allowDecimals: implicitYAxis.allowDecimals,\n allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,\n angle: implicitYAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n hide: false,\n includeHidden: implicitYAxis.includeHidden,\n interval: implicitYAxis.interval,\n label: false,\n minTickGap: implicitYAxis.minTickGap,\n mirror: implicitYAxis.mirror,\n orientation: implicitYAxis.orientation,\n padding: implicitYAxis.padding,\n reversed: implicitYAxis.reversed,\n scale: implicitYAxis.scale,\n tick: implicitYAxis.tick,\n tickCount: implicitYAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitYAxis.type,\n niceTicks: implicitYAxis.niceTicks,\n width: implicitYAxis.width,\n yAxisId: 0\n};\nvar YAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, yAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {\n interval: props.interval,\n id: props.yAxisId,\n scale: props.scale,\n type: props.type,\n domain: props.domain,\n allowDataOverflow: props.allowDataOverflow,\n dataKey: props.dataKey,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n padding: props.padding,\n includeHidden: props.includeHidden,\n reversed: props.reversed,\n ticks: props.ticks,\n width: props.width,\n orientation: props.orientation,\n mirror: props.mirror,\n hide: props.hide,\n unit: props.unit,\n name: props.name,\n angle: props.angle,\n minTickGap: props.minTickGap,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(YAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nYAxis.displayName = 'YAxis';","import { createSelector } from 'reselect';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from './tooltipSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { combineActiveProps, selectOrderedTooltipTicks } from './selectors';\nimport { selectPolarViewBox } from './polarAxisSelectors';\nimport { selectTooltipAxisType } from './selectTooltipAxisType';\nvar pickChartPointer = (_state, chartPointer) => chartPointer;\nexport var selectActivePropsFromChartPointer = createSelector([pickChartPointer, selectChartLayout, selectPolarViewBox, selectTooltipAxisType, selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks, selectOrderedTooltipTicks, selectChartOffsetInternal], combineActiveProps);","/**\n * Type guard to check if the pointer event is from an SVG element.\n */\nfunction isSvgPointer(pointer) {\n return 'getBBox' in pointer.currentTarget && typeof pointer.currentTarget.getBBox === 'function';\n}\n\n/**\n * Computes relative element coordinates from mouse or touch event.\n *\n * The output coordinates are relative to the top-left corner of the active element (= currentTarget),\n * where the top-left corner is (0, 0).\n * Moving right, the x-coordinate increases, and moving down, the y-coordinate increases.\n *\n * The coordinates are rounded to the nearest integer and account for CSS transform scale.\n * So element that's scaled will return the same coordinates as element that's not scaled.\n *\n * In other words: you zoom in or out, numbers stay the same.\n *\n * This function works with both HTML elements and SVG elements.\n *\n * It works with both Mouse and Touch events.\n * For Touch events, it returns an array of coordinates, one for each touch point.\n * For Mouse events, it returns a single coordinate object.\n *\n * @example\n * ```tsx\n * // In an HTML element event handler. Legend passes the native event as the 3rd argument.\n * <Legend onMouseMove={(_data, _i, e) => {\n * // These coordinates are relative to the top-left corner of the Legend element\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Legend position: (${relativeX}, ${relativeY})`);\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In an SVG element event handler. Area is an SVG element, and passes the event as second argument.\n * <Area onMouseMove={(_, e) => {\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Area position: (${relativeX}, ${relativeY})`);\n * // Here you can call usePlotArea to convert to chart coordinates\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In a chart root touch handler. Chart root passes the event as second argument.\n * <LineChart onTouchMove={(_, e) => {\n * const touchPoints = getRelativeCoordinate(e);\n * touchPoints.forEach(({ relativeX, relativeY }, index) => {\n * console.log(`Touch point ${index} at LineChart position: (${relativeX}, ${relativeY})`);\n * });\n * }}>\n * ```\n *\n * @since 3.8\n * @param event The mouse or touch event from React event handlers (works with both HTML and SVG elements)\n * @returns Coordinates relative to the top-left corner of the element. Single object for Mouse events, array of objects for Touch events.\n */\n\nexport function getRelativeCoordinate(event) {\n var rect = event.currentTarget.getBoundingClientRect();\n var scaleX, scaleY;\n if (isSvgPointer(event)) {\n // For SVG elements, use getBBox() to get the intrinsic size in SVG coordinates\n var bbox = event.currentTarget.getBBox();\n scaleX = bbox.width > 0 ? rect.width / bbox.width : 1;\n scaleY = bbox.height > 0 ? rect.height / bbox.height : 1;\n } else {\n // For HTML elements, use offsetWidth/offsetHeight\n var element = event.currentTarget;\n scaleX = element.offsetWidth > 0 ? rect.width / element.offsetWidth : 1;\n scaleY = element.offsetHeight > 0 ? rect.height / element.offsetHeight : 1;\n }\n var getCoordinates = (clientX, clientY) => ({\n /*\n * Here it's important to use:\n * - event.clientX and event.clientY to get the mouse position relative to the viewport, including scroll.\n * - pageX and pageY are not used because they are relative to the whole document, and ignore scroll.\n * - rect.left and rect.top are used to get the position of the chart relative to the viewport.\n * - offsetX and offsetY are not used because they are relative to the offset parent\n * which may or may not be the same as the clientX and clientY, depending on the position of the chart in the DOM\n * and surrounding element styles. CSS position: relative, absolute, fixed, will change the offset parent.\n * - scaleX and scaleY are necessary for when the chart element is scaled using CSS `transform: scale(N)`.\n */\n relativeX: Math.round((clientX - rect.left) / scaleX),\n relativeY: Math.round((clientY - rect.top) / scaleY)\n });\n if ('touches' in event) {\n return Array.from(event.touches).map(touch => getCoordinates(touch.clientX, touch.clientY));\n }\n return getCoordinates(event.clientX, event.clientY);\n}","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\nexport var mouseClickAction = createAction('mouseClick');\nexport var mouseClickMiddleware = createListenerMiddleware();\n\n// TODO: there's a bug here when you click the chart the activeIndex resets to zero\nmouseClickMiddleware.startListening({\n actionCreator: mouseClickAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var activeProps = selectActivePropsFromChartPointer(listenerApi.getState(), getRelativeCoordinate(mousePointer));\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseClickAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n }\n});\nexport var mouseMoveAction = createAction('mouseMove');\nexport var mouseMoveMiddleware = createListenerMiddleware();\n\n/*\n * This single rafId is safe because:\n * 1. Each chart has its own Redux store instance with its own middleware\n * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)\n * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position\n * This is different from externalEventsMiddleware which handles multiple event types\n * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.\n */\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointer = null;\nmouseMoveMiddleware.startListening({\n actionCreator: mouseMoveAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var state = listenerApi.getState();\n var _state$eventSettings = state.eventSettings,\n throttleDelay = _state$eventSettings.throttleDelay,\n throttledEvents = _state$eventSettings.throttledEvents;\n var isThrottled = throttledEvents === 'all' || (throttledEvents === null || throttledEvents === void 0 ? void 0 : throttledEvents.includes('mousemove'));\n\n // Cancel any pending execution\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n\n /*\n * Here it is important to resolve the chart pointer _before_ the callback,\n * because once we leave the current event loop, the mousePointer event object will lose\n * reference to currentTarget which getRelativeCoordinate uses.\n */\n latestChartPointer = getRelativeCoordinate(mousePointer);\n var callback = () => {\n /*\n * Here we read a fresh state again inside the callback to ensure we have the latest state values\n * after any potential actions that may have been dispatched between the original event and this callback.\n */\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (!latestChartPointer) {\n rafId = null;\n timeoutId = null;\n return;\n }\n\n /*\n * This functionality only applies to charts that have axes.\n * Graphical items have its own mouse events handling mechanism where they attach events directly to the items.\n */\n if (tooltipEventType === 'axis') {\n var activeProps = selectActivePropsFromChartPointer(currentState, latestChartPointer);\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n } else {\n // this is needed to clear tooltip state when the mouse moves out of the inRange (svg - offset) function, but not yet out of the svg\n listenerApi.dispatch(mouseLeaveChart());\n }\n }\n rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n timeoutId = setTimeout(callback, throttleDelay);\n }\n }\n }\n});","export function reduxDevtoolsJsonStringifyReplacer(key, value) {\n if (value instanceof HTMLElement) {\n return \"HTMLElement <\".concat(value.tagName, \" class=\\\"\").concat(value.className, \"\\\">\");\n }\n if (value === window) {\n return 'global.window';\n }\n if (key === 'children' && typeof value === 'object' && value !== null) {\n return '<<CHILDREN>>';\n }\n return value;\n}","import { createSlice } from '@reduxjs/toolkit';\n\n/**\n * These are chart options that users can choose - which means they can also\n * choose to change them which should trigger a re-render.\n */\n\nexport var initialState = {\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n barSize: undefined,\n className: undefined,\n maxBarSize: undefined,\n stackOffset: 'none',\n syncId: undefined,\n syncMethod: 'index',\n baseValue: undefined,\n reverseStackOrder: false\n};\nvar rootPropsSlice = createSlice({\n name: 'rootProps',\n initialState,\n reducers: {\n updateOptions: (state, action) => {\n var _action$payload$barGa;\n state.accessibilityLayer = action.payload.accessibilityLayer;\n state.barCategoryGap = action.payload.barCategoryGap;\n state.barGap = (_action$payload$barGa = action.payload.barGap) !== null && _action$payload$barGa !== void 0 ? _action$payload$barGa : initialState.barGap;\n state.barSize = action.payload.barSize;\n state.maxBarSize = action.payload.maxBarSize;\n state.stackOffset = action.payload.stackOffset;\n state.syncId = action.payload.syncId;\n state.syncMethod = action.payload.syncMethod;\n state.className = action.payload.className;\n state.baseValue = action.payload.baseValue;\n state.reverseStackOrder = action.payload.reverseStackOrder;\n }\n }\n});\nexport var rootPropsReducer = rootPropsSlice.reducer;\nvar updateOptions = rootPropsSlice.actions.updateOptions;\nexport { updateOptions };","import { createSlice } from '@reduxjs/toolkit';\nvar initialState = null;\nvar reducers = {\n updatePolarOptions: (state, action) => {\n if (state === null) {\n return action.payload;\n }\n state.startAngle = action.payload.startAngle;\n state.endAngle = action.payload.endAngle;\n state.cx = action.payload.cx;\n state.cy = action.payload.cy;\n state.innerRadius = action.payload.innerRadius;\n state.outerRadius = action.payload.outerRadius;\n return state;\n }\n};\nvar polarOptionsSlice = createSlice({\n name: 'polarOptions',\n initialState,\n reducers\n});\nvar updatePolarOptions = polarOptionsSlice.actions.updatePolarOptions;\nexport { updatePolarOptions };\nexport var polarOptionsReducer = polarOptionsSlice.reducer;","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setKeyboardInteraction } from './tooltipSlice';\nimport { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './selectors/tooltipSelectors';\nimport { selectCoordinateForDefaultIndex } from './selectors/selectors';\nimport { selectChartDirection, selectTooltipAxisDataKey } from './selectors/axisSelectors';\nimport { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nexport var keyDownAction = createAction('keyDown');\nexport var focusAction = createAction('focus');\nexport var blurAction = createAction('blur');\nexport var keyboardEventsMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestKeyboardActionPayload = null;\nkeyboardEventsMiddleware.startListening({\n actionCreator: keyDownAction,\n effect: (action, listenerApi) => {\n latestKeyboardActionPayload = action.payload;\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n var state = listenerApi.getState();\n var _state$eventSettings = state.eventSettings,\n throttleDelay = _state$eventSettings.throttleDelay,\n throttledEvents = _state$eventSettings.throttledEvents;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('keydown');\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n var callback = () => {\n try {\n var currentState = listenerApi.getState();\n var accessibilityLayerIsActive = currentState.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var keyboardInteraction = currentState.tooltip.keyboardInteraction;\n var key = latestKeyboardActionPayload;\n if (key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Enter') {\n return;\n }\n\n // TODO this is lacking index for charts that do not support numeric indexes\n var resolvedIndex = combineActiveTooltipIndex(keyboardInteraction, selectTooltipDisplayedData(currentState), selectTooltipAxisDataKey(currentState), selectTooltipAxisDomain(currentState));\n var currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);\n var isOutsideDomain = !Number.isFinite(currentIndex) || currentIndex < 0;\n var tooltipTicks = selectTooltipAxisTicks(currentState);\n var displayedData = selectTooltipDisplayedData(currentState);\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (key === 'Enter') {\n if (isOutsideDomain) {\n return;\n }\n var _coordinate = selectCoordinateForDefaultIndex(currentState, tooltipEventType, 'hover', String(keyboardInteraction.index));\n listenerApi.dispatch(setKeyboardInteraction({\n active: !keyboardInteraction.active,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: _coordinate\n }));\n return;\n }\n var direction = selectChartDirection(currentState);\n var directionMultiplier = direction === 'left-to-right' ? 1 : -1;\n var movement = key === 'ArrowRight' ? 1 : -1;\n var nextIndex;\n if (isOutsideDomain) {\n var axisDataKey = selectTooltipAxisDataKey(currentState);\n var domain = selectTooltipAxisDomain(currentState);\n var effectiveMovement = movement * directionMultiplier;\n\n // Build a minimal TooltipInteractionState for the candidate-index check.\n var mkInteraction = i => ({\n active: false,\n index: String(i),\n dataKey: undefined,\n graphicalItemId: undefined,\n coordinate: undefined\n });\n nextIndex = -1;\n if (effectiveMovement > 0) {\n for (var i = 0; i < displayedData.length; i++) {\n if (combineActiveTooltipIndex(mkInteraction(i), displayedData, axisDataKey, domain) != null) {\n nextIndex = i;\n break;\n }\n }\n } else {\n for (var _i = displayedData.length - 1; _i >= 0; _i--) {\n if (combineActiveTooltipIndex(mkInteraction(_i), displayedData, axisDataKey, domain) != null) {\n nextIndex = _i;\n break;\n }\n }\n }\n if (nextIndex < 0) {\n return;\n }\n } else {\n nextIndex = currentIndex + movement * directionMultiplier;\n var dataLength = (tooltipTicks === null || tooltipTicks === void 0 ? void 0 : tooltipTicks.length) || displayedData.length;\n if (dataLength === 0 || nextIndex >= dataLength || nextIndex < 0) {\n return;\n }\n }\n var coordinate = selectCoordinateForDefaultIndex(currentState, tooltipEventType, 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex.toString(),\n activeCoordinate: coordinate\n }));\n } finally {\n rafId = null;\n timeoutId = null;\n }\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestKeyboardActionPayload = null;\n timeoutId = setTimeout(() => {\n if (latestKeyboardActionPayload) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\n }\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: focusAction,\n effect: (_action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var keyboardInteraction = state.tooltip.keyboardInteraction;\n if (keyboardInteraction.active) {\n return;\n }\n if (keyboardInteraction.index == null) {\n var nextIndex = '0';\n var tooltipEventType = selectTooltipEventType(state, state.tooltip.settings.shared);\n var coordinate = selectCoordinateForDefaultIndex(state, tooltipEventType, 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex,\n activeCoordinate: coordinate\n }));\n }\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: blurAction,\n effect: (_action, listenerApi) => {\n var state = listenerApi.getState();\n var accessibilityLayerIsActive = state.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var keyboardInteraction = state.tooltip.keyboardInteraction;\n if (keyboardInteraction.active) {\n listenerApi.dispatch(setKeyboardInteraction({\n active: false,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: keyboardInteraction.coordinate\n }));\n }\n }\n});","export function createEventProxy(reactEvent) {\n reactEvent.persist();\n var currentTarget = reactEvent.currentTarget;\n return new Proxy(reactEvent, {\n get: (target, prop) => {\n if (prop === 'currentTarget') {\n return currentTarget;\n }\n var value = Reflect.get(target, prop);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n });\n}","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var externalEventAction = createAction('externalEvent');\nexport var externalEventsMiddleware = createListenerMiddleware();\n\n/*\n * We need a Map keyed by event type because this middleware handles MULTIPLE different event types\n * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)\n * from the same DOM element. Different event types should NOT cancel each other's animation frames.\n * For example, a click event and a mousemove event can happen in quick succession and both should be processed.\n * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.\n */\nvar rafIdMap = new Map();\nvar timeoutIdMap = new Map();\nvar latestEventMap = new Map();\nexternalEventsMiddleware.startListening({\n actionCreator: externalEventAction,\n effect: (action, listenerApi) => {\n var _action$payload = action.payload,\n handler = _action$payload.handler,\n reactEvent = _action$payload.reactEvent;\n if (handler == null) {\n return;\n }\n var eventType = reactEvent.type;\n var eventProxy = createEventProxy(reactEvent);\n latestEventMap.set(eventType, {\n handler,\n reactEvent: eventProxy\n });\n\n // Cancel any pending execution for this event type\n var existingRafId = rafIdMap.get(eventType);\n if (existingRafId !== undefined) {\n cancelAnimationFrame(existingRafId);\n rafIdMap.delete(eventType);\n }\n var state = listenerApi.getState();\n var _state$eventSettings = state.eventSettings,\n throttleDelay = _state$eventSettings.throttleDelay,\n throttledEvents = _state$eventSettings.throttledEvents;\n\n /*\n * reactEvent.type gives us the event type as a string, e.g., 'click', 'mousemove', etc.\n * which is the same as the names used in throttledEvents array\n * but that array is strictly typed as ReadonlyArray<keyof GlobalEventHandlersEventMap> | 'all' | undefined\n * so that we can have relevant autocomplete and type checking elsewhere.\n * This makes TypeScript panic because it refuses to call .includes() on ReadonlyArray<keyof GlobalEventHandlersEventMap>\n * with a string argument.\n * To satisfy TypeScript, we need to explicitly typecast throttledEvents here.\n */\n var eventListAsString = throttledEvents;\n\n // Check if this event type should be throttled\n // throttledEvents can be 'all' or an array of event names\n var isThrottled = eventListAsString === 'all' || (eventListAsString === null || eventListAsString === void 0 ? void 0 : eventListAsString.includes(eventType));\n var existingTimeoutId = timeoutIdMap.get(eventType);\n if (existingTimeoutId !== undefined && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(existingTimeoutId);\n timeoutIdMap.delete(eventType);\n }\n var callback = () => {\n var latestAction = latestEventMap.get(eventType);\n try {\n if (!latestAction) {\n // This happens if the event was consumed by the leading edge and no new event came in\n return;\n }\n var latestHandler = latestAction.handler,\n latestEvent = latestAction.reactEvent;\n var currentState = listenerApi.getState();\n var nextState = {\n activeCoordinate: selectActiveTooltipCoordinate(currentState),\n activeDataKey: selectActiveTooltipDataKey(currentState),\n activeIndex: selectActiveTooltipIndex(currentState),\n activeLabel: selectActiveLabel(currentState),\n activeTooltipIndex: selectActiveTooltipIndex(currentState),\n isTooltipActive: selectIsTooltipActive(currentState)\n };\n if (latestHandler) {\n latestHandler(nextState, latestEvent);\n }\n } finally {\n rafIdMap.delete(eventType);\n timeoutIdMap.delete(eventType);\n latestEventMap.delete(eventType);\n }\n };\n if (!isThrottled) {\n // Execute immediately\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n var rafId = requestAnimationFrame(callback);\n rafIdMap.set(eventType, rafId);\n } else if (typeof throttleDelay === 'number') {\n if (!timeoutIdMap.has(eventType)) {\n /*\n * Leading edge execution - execute immediately on the first event\n * and then start the cooldown period to throttle subsequent events.\n */\n callback();\n\n // Start cooldown\n var timeoutId = setTimeout(callback, throttleDelay);\n timeoutIdMap.set(eventType, timeoutId);\n }\n } else {\n // Should not happen based on type, but fallback to immediate\n callback();\n }\n }\n});","import { createSelector } from 'reselect';\nimport { selectTooltipState } from './selectTooltipState';\nvar selectAllTooltipPayloadConfiguration = createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);\nexport var selectTooltipCoordinate = createSelector([selectAllTooltipPayloadConfiguration, (_state, tooltipIndex) => tooltipIndex, (_state, _tooltipIndex, graphicalItemId) => graphicalItemId], (allTooltipConfigurations, tooltipIndex, graphicalItemId) => {\n if (tooltipIndex == null) {\n return undefined;\n }\n var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {\n return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;\n });\n if (mostRelevantTooltipConfiguration == null) {\n return undefined;\n }\n var getPosition = mostRelevantTooltipConfiguration.getPosition;\n if (getPosition == null) {\n return undefined;\n }\n return getPosition(tooltipIndex);\n});","import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { selectTooltipCoordinate } from './selectors/touchSelectors';\nimport { selectAllGraphicalItemsSettings } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var touchEventAction = createAction('touchMove');\nexport var touchEventMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointers = null;\nvar latestTouchEvent = null;\ntouchEventMiddleware.startListening({\n actionCreator: touchEventAction,\n effect: (action, listenerApi) => {\n var touchEvent = action.payload;\n if (touchEvent.touches == null || touchEvent.touches.length === 0) {\n return;\n }\n latestTouchEvent = createEventProxy(touchEvent);\n var state = listenerApi.getState();\n var _state$eventSettings = state.eventSettings,\n throttleDelay = _state$eventSettings.throttleDelay,\n throttledEvents = _state$eventSettings.throttledEvents;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('touchmove');\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n latestChartPointers = Array.from(touchEvent.touches).map(touch => getRelativeCoordinate({\n clientX: touch.clientX,\n clientY: touch.clientY,\n currentTarget: touchEvent.currentTarget\n }));\n var callback = () => {\n if (latestTouchEvent == null) {\n return;\n }\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (tooltipEventType === 'axis') {\n var _latestChartPointers;\n var latestTouchPointer = (_latestChartPointers = latestChartPointers) === null || _latestChartPointers === void 0 ? void 0 : _latestChartPointers[0];\n if (latestTouchPointer == null) {\n rafId = null;\n timeoutId = null;\n return;\n }\n var activeProps = selectActivePropsFromChartPointer(currentState, latestTouchPointer);\n if ((activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null) {\n listenerApi.dispatch(setMouseOverAxisIndex({\n activeIndex: activeProps.activeIndex,\n activeDataKey: undefined,\n activeCoordinate: activeProps.activeCoordinate\n }));\n }\n } else if (tooltipEventType === 'item') {\n var _target$getAttribute;\n var touch = latestTouchEvent.touches[0];\n if (document.elementFromPoint == null || touch == null) {\n return;\n }\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n if (!target || !target.getAttribute) {\n return;\n }\n var itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);\n var graphicalItemId = (_target$getAttribute = target.getAttribute(DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;\n var settings = selectAllGraphicalItemsSettings(currentState).find(item => item.id === graphicalItemId);\n if (itemIndex == null || settings == null || graphicalItemId == null) {\n return;\n }\n var dataKey = settings.dataKey;\n var coordinate = selectTooltipCoordinate(currentState, itemIndex, graphicalItemId);\n listenerApi.dispatch(setActiveMouseOverItemIndex({\n activeDataKey: dataKey,\n activeIndex: itemIndex,\n activeCoordinate: coordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n }\n rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestTouchEvent = null;\n timeoutId = setTimeout(() => {\n if (latestTouchEvent) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\n }\n }\n});","import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nexport var initialEventSettingsState = {\n throttleDelay: 'raf',\n throttledEvents: ['mousemove', 'touchmove', 'pointermove', 'scroll', 'wheel']\n};\nvar eventSettingsSlice = createSlice({\n name: 'eventSettings',\n initialState: initialEventSettingsState,\n reducers: {\n setEventSettings: (state, action) => {\n if (action.payload.throttleDelay != null) {\n state.throttleDelay = action.payload.throttleDelay;\n }\n if (action.payload.throttledEvents != null) {\n state.throttledEvents = castDraft(action.payload.throttledEvents);\n }\n }\n }\n});\nvar setEventSettings = eventSettingsSlice.actions.setEventSettings;\nexport { setEventSettings };\nexport var eventSettingsReducer = eventSettingsSlice.reducer;","import { autoBatchEnhancer, combineReducers, configureStore } from '@reduxjs/toolkit';\nimport { optionsReducer } from './optionsSlice';\nimport { tooltipReducer } from './tooltipSlice';\nimport { chartDataReducer } from './chartDataSlice';\nimport { chartLayoutReducer } from './layoutSlice';\nimport { mouseClickMiddleware, mouseMoveMiddleware } from './mouseEventsMiddleware';\nimport { reduxDevtoolsJsonStringifyReplacer } from './reduxDevtoolsJsonStringifyReplacer';\nimport { cartesianAxisReducer } from './cartesianAxisSlice';\nimport { graphicalItemsReducer } from './graphicalItemsSlice';\nimport { referenceElementsReducer } from './referenceElementsSlice';\nimport { brushReducer } from './brushSlice';\nimport { legendReducer } from './legendSlice';\nimport { rootPropsReducer } from './rootPropsSlice';\nimport { polarAxisReducer } from './polarAxisSlice';\nimport { polarOptionsReducer } from './polarOptionsSlice';\nimport { keyboardEventsMiddleware } from './keyboardEventsMiddleware';\nimport { externalEventsMiddleware } from './externalEventsMiddleware';\nimport { touchEventMiddleware } from './touchEventsMiddleware';\nimport { errorBarReducer } from './errorBarSlice';\nimport { Global } from '../util/Global';\nimport { zIndexReducer } from './zIndexSlice';\nimport { eventSettingsReducer } from './eventSettingsSlice';\nimport { renderedTicksReducer } from './renderedTicksSlice';\nvar rootReducer = combineReducers({\n brush: brushReducer,\n cartesianAxis: cartesianAxisReducer,\n chartData: chartDataReducer,\n errorBars: errorBarReducer,\n eventSettings: eventSettingsReducer,\n graphicalItems: graphicalItemsReducer,\n layout: chartLayoutReducer,\n legend: legendReducer,\n options: optionsReducer,\n polarAxis: polarAxisReducer,\n polarOptions: polarOptionsReducer,\n referenceElements: referenceElementsReducer,\n renderedTicks: renderedTicksReducer,\n rootProps: rootPropsReducer,\n tooltip: tooltipReducer,\n zIndex: zIndexReducer\n});\nexport var createRechartsStore = function createRechartsStore(preloadedState) {\n var chartName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Chart';\n return configureStore({\n reducer: rootReducer,\n // redux-toolkit v1 types are unhappy with the preloadedState type. Remove the `as any` when bumping to v2\n preloadedState: preloadedState,\n // @ts-expect-error redux-toolkit v1 types are unhappy with the middleware array. Remove this comment when bumping to v2\n middleware: getDefaultMiddleware => {\n var _process$env$NODE_ENV;\n return getDefaultMiddleware({\n serializableCheck: false,\n immutableCheck: !['commonjs', 'es6', 'production'].includes((_process$env$NODE_ENV = \"es6\") !== null && _process$env$NODE_ENV !== void 0 ? _process$env$NODE_ENV : '')\n }).concat([mouseClickMiddleware.middleware, mouseMoveMiddleware.middleware, keyboardEventsMiddleware.middleware, externalEventsMiddleware.middleware, touchEventMiddleware.middleware]);\n },\n /*\n * I can't find out how to satisfy typescript here.\n * We return `EnhancerArray<[StoreEnhancer<{}, {}>, StoreEnhancer]>` from this function,\n * but the types say we should return `EnhancerArray<StoreEnhancer<{}, {}>`.\n * Looks like it's badly inferred generics, but it won't allow me to provide the correct type manually either.\n * So let's just ignore the error for now.\n */\n // @ts-expect-error mismatched generics\n enhancers: getDefaultEnhancers => {\n var enhancers = getDefaultEnhancers;\n if (typeof getDefaultEnhancers === 'function') {\n /*\n * In RTK v2 this is always a function, but in v1 it is an array.\n * Because we have @types/redux-toolkit v1 as a dependency, typescript is going to flag this as an error.\n * We support both RTK v1 and v2, so we need to do this check.\n * https://redux-toolkit.js.org/usage/migrating-rtk-2#configurestoreenhancers-must-be-a-callback\n */\n // @ts-expect-error RTK v2 behaviour on RTK v1 types\n enhancers = getDefaultEnhancers();\n }\n return enhancers.concat(autoBatchEnhancer({\n type: 'raf'\n }));\n },\n devTools: Global.devToolsEnabled && {\n serialize: {\n replacer: reduxDevtoolsJsonStringifyReplacer\n },\n name: \"recharts-\".concat(chartName)\n }\n });\n};","import * as React from 'react';\nimport { useRef } from 'react';\nimport { Provider } from 'react-redux';\nimport { createRechartsStore } from './store';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nexport function RechartsStoreProvider(_ref) {\n var preloadedState = _ref.preloadedState,\n children = _ref.children,\n reduxStoreName = _ref.reduxStoreName;\n var isPanorama = useIsPanorama();\n /*\n * Why the ref? Redux official documentation recommends to use store as a singleton,\n * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example\n *\n * Which is correct! Except that is considering deploying Redux in an app.\n * Recharts as a library supports multiple charts on the same page.\n * And each of these charts needs its own store independent of others!\n *\n * The alternative is to have everything in the store keyed by the chart id.\n * Which would make working with everything a little bit more painful because we need the chart id everywhere.\n */\n var storeRef = useRef(null);\n\n /*\n * Panorama means that this chart is not its own chart, it's only a \"preview\"\n * being rendered as a child of Brush.\n * In such case, it should not have a store on its own - it should implicitly inherit\n * whatever data is in the \"parent\" or \"root\" chart.\n * Which here is represented by not having a Provider at all. All selectors will use the root store by default.\n */\n if (isPanorama) {\n return children;\n }\n if (storeRef.current == null) {\n storeRef.current = createRechartsStore(preloadedState, reduxStoreName);\n }\n\n // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.\n var nonNullContext = RechartsReduxContext;\n return /*#__PURE__*/React.createElement(Provider, {\n context: nonNullContext,\n store: storeRef.current\n }, children);\n}","import { memo, useEffect } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { setLayout, setMargin } from './layoutSlice';\nimport { useAppDispatch } from './hooks';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * \"Main\" props are props that are only accepted on the main chart,\n * as opposed to the small panorama chart inside a Brush.\n */\n\nfunction ReportMainChartPropsImpl(_ref) {\n var layout = _ref.layout,\n margin = _ref.margin;\n var dispatch = useAppDispatch();\n\n /*\n * Skip dispatching properties in panorama chart for two reasons:\n * 1. The root chart should be deciding on these properties, and\n * 2. Brush reads these properties from redux store, and so they must remain stable\n * to avoid circular dependency and infinite re-rendering.\n */\n var isPanorama = useIsPanorama();\n /*\n * useEffect here is required to avoid the \"Cannot update a component while rendering a different component\" error.\n * https://github.com/facebook/react/issues/18178\n *\n * Reported in https://github.com/recharts/recharts/issues/5514\n */\n useEffect(() => {\n if (!isPanorama) {\n dispatch(setLayout(layout));\n dispatch(setMargin(margin));\n }\n }, [dispatch, isPanorama, layout, margin]);\n return null;\n}\nexport var ReportMainChartProps = /*#__PURE__*/memo(ReportMainChartPropsImpl, propsAreEqual);","import { useEffect } from 'react';\nimport { updateOptions } from './rootPropsSlice';\nimport { useAppDispatch } from './hooks';\nexport function ReportChartProps(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(updateOptions(props));\n }, [dispatch, props]);\n return null;\n}","import { useEffect, memo } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { setEventSettings } from './eventSettingsSlice';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar ReportEventSettingsImpl = props => {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setEventSettings(props));\n }, [dispatch, props]);\n return null;\n};\nexport var ReportEventSettings = /*#__PURE__*/memo(ReportEventSettingsImpl, propsAreEqual);","import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';\nimport { selectAllRegisteredZIndexes } from './zIndexSelectors';\nfunction ZIndexSvgPortal(_ref) {\n var zIndex = _ref.zIndex,\n isPanorama = _ref.isPanorama;\n var ref = useRef(null);\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n if (ref.current) {\n dispatch(registerZIndexPortalElement({\n zIndex,\n element: ref.current,\n isPanorama\n }));\n }\n return () => {\n dispatch(unregisterZIndexPortalElement({\n zIndex,\n isPanorama\n }));\n };\n }, [dispatch, zIndex, isPanorama]);\n // these g elements should not be tabbable\n return /*#__PURE__*/React.createElement(\"g\", {\n tabIndex: -1,\n ref: ref,\n className: \"recharts-zIndex-layer_\".concat(zIndex)\n });\n}\nexport function AllZIndexPortals(_ref2) {\n var children = _ref2.children,\n isPanorama = _ref2.isPanorama;\n var allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);\n if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {\n return children;\n }\n var allNegativeZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex < 0);\n // We exclude zero on purpose - that is the default layer, and it doesn't need a portal.\n var allPositiveZIndexes = allRegisteredZIndexes.filter(zIndex => zIndex > 0);\n return /*#__PURE__*/React.createElement(React.Fragment, null, allNegativeZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })), children, allPositiveZIndexes.map(zIndex => /*#__PURE__*/React.createElement(ZIndexSvgPortal, {\n key: zIndex,\n zIndex: zIndex,\n isPanorama: isPanorama\n })));\n}","var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Surface } from './Surface';\nimport { useAppSelector } from '../state/hooks';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { AllZIndexPortals } from '../zIndex/ZIndexPortal';\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%',\n /*\n * display: block is necessary here because the default for an SVG is display: inline,\n * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG\n * to make space for the descender of letters like \"g\" and \"y\". This throws off the height calculation\n * and causes the container to grow indefinitely on each render with responsive=true.\n * Display: block removes that extra space.\n *\n * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.\n */\n display: 'block'\n};\nvar MainChartSurface = /*#__PURE__*/forwardRef((props, ref) => {\n var width = useChartWidth();\n var height = useChartHeight();\n var hasAccessibilityLayer = useAccessibilityLayer();\n if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n return null;\n }\n var children = props.children,\n otherAttributes = props.otherAttributes,\n title = props.title,\n desc = props.desc;\n var tabIndex, role;\n if (otherAttributes != null) {\n if (typeof otherAttributes.tabIndex === 'number') {\n tabIndex = otherAttributes.tabIndex;\n } else {\n tabIndex = hasAccessibilityLayer ? 0 : undefined;\n }\n if (typeof otherAttributes.role === 'string') {\n role = otherAttributes.role;\n } else {\n role = hasAccessibilityLayer ? 'application' : undefined;\n }\n }\n return /*#__PURE__*/React.createElement(Surface, _extends({}, otherAttributes, {\n title: title,\n desc: desc,\n role: role,\n tabIndex: tabIndex,\n width: width,\n height: height,\n style: FULL_WIDTH_AND_HEIGHT,\n ref: ref\n }), children);\n});\nvar BrushPanoramaSurface = _ref => {\n var children = _ref.children;\n var brushDimensions = useAppSelector(selectBrushDimensions);\n if (!brushDimensions) {\n return null;\n }\n var width = brushDimensions.width,\n height = brushDimensions.height,\n y = brushDimensions.y,\n x = brushDimensions.x;\n return /*#__PURE__*/React.createElement(Surface, {\n width: width,\n height: height,\n x: x,\n y: y\n }, children);\n};\nexport var RootSurface = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var children = _ref2.children,\n rest = _objectWithoutProperties(_ref2, _excluded);\n var isPanorama = useIsPanorama();\n if (isPanorama) {\n return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: true\n }, children));\n }\n return /*#__PURE__*/React.createElement(MainChartSurface, _extends({\n ref: ref\n }, rest), /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: false\n }, children));\n});","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport { useEffect, useState } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectContainerScale } from '../state/selectors/containerSelectors';\nimport { setScale } from '../state/layoutSlice';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\nexport function useReportScale() {\n var dispatch = useAppDispatch();\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n ref = _useState2[0],\n setRef = _useState2[1];\n var scale = useAppSelector(selectContainerScale);\n useEffect(() => {\n if (ref == null) {\n return;\n }\n var rect = ref.getBoundingClientRect();\n var newScale = rect.width / ref.offsetWidth;\n if (isWellBehavedNumber(newScale) && newScale !== scale) {\n dispatch(setScale(newScale));\n }\n }, [ref, dispatch, scale]);\n return setRef;\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport * as React from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { mouseLeaveChart } from '../state/tooltipSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseClickAction, mouseMoveAction } from '../state/mouseEventsMiddleware';\nimport { useSynchronisedEventsFromOtherCharts } from '../synchronisation/useChartSynchronisation';\nimport { focusAction, keyDownAction, blurAction } from '../state/keyboardEventsMiddleware';\nimport { useReportScale } from '../util/useReportScale';\nimport { externalEventAction } from '../state/externalEventsMiddleware';\nimport { touchEventAction } from '../state/touchEventsMiddleware';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { LegendPortalContext } from '../context/legendPortalContext';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nimport { useResponsiveContainerContext } from '../component/ResponsiveContainer';\nvar EventSynchronizer = () => {\n useSynchronisedEventsFromOtherCharts();\n return null;\n};\nfunction getNumberOrZero(value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n var parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return 0;\n}\nvar ResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var _props$style, _props$style2;\n var observerRef = useRef(null);\n var _useState = useState({\n containerWidth: getNumberOrZero((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width),\n containerHeight: getNumberOrZero((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.height)\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n // 1. First, call the external ref if it was provided\n if (typeof ref === 'function') {\n ref(node);\n }\n\n // 2. Disconnect any previously active ResizeObserver instance to prevent memory leaks\n if (observerRef.current != null) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n\n // 3. Initiate a new ResizeObserver on the valid DOM node\n if (node != null && typeof ResizeObserver !== 'undefined') {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n containerWidth = _node$getBoundingClie.width,\n containerHeight = _node$getBoundingClie.height;\n setContainerSize(containerWidth, containerHeight);\n var callback = entries => {\n var entry = entries[0];\n if (entry == null) {\n return;\n }\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n setContainerSize(width, height);\n };\n var observer = new ResizeObserver(callback);\n observer.observe(node);\n observerRef.current = observer;\n }\n }, [ref, setContainerSize]);\n useEffect(() => {\n return () => {\n var observer = observerRef.current;\n if (observer != null) {\n observer.disconnect();\n }\n };\n }, [setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar ReadSizeOnceDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var width = props.width,\n height = props.height;\n var _useState3 = useState({\n containerWidth: getNumberOrZero(width),\n containerHeight: getNumberOrZero(height)\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n sizes = _useState4[0],\n setSizes = _useState4[1];\n var setContainerSize = useCallback((newWidth, newHeight) => {\n setSizes(prevState => {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n var innerRef = useCallback(node => {\n if (typeof ref === 'function') {\n ref(node);\n }\n if (node != null) {\n var _node$getBoundingClie2 = node.getBoundingClientRect(),\n containerWidth = _node$getBoundingClie2.width,\n containerHeight = _node$getBoundingClie2.height;\n setContainerSize(containerWidth, containerHeight);\n }\n }, [ref, setContainerSize]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: sizes.containerWidth,\n height: sizes.containerHeight\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: innerRef\n }, props)));\n});\nvar StaticDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var width = props.width,\n height = props.height;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props)));\n});\nvar NonResponsiveDiv = /*#__PURE__*/forwardRef((props, ref) => {\n var width = props.width,\n height = props.height;\n // When width or height are percentages or CSS short names, read size from DOM once\n if (typeof width === 'string' || typeof height === 'string') {\n return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {\n ref: ref\n }));\n }\n // When both are numbers, use them directly\n if (typeof width === 'number' && typeof height === 'number') {\n return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {\n width: width,\n height: height,\n ref: ref\n }));\n }\n // When width/height are undefined, render wrapper div without reporting size\n // This results in no SVG being rendered (intentional for backwards compatibility)\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props)));\n});\nfunction getWrapperDivComponent(responsive) {\n return responsive ? ResponsiveDiv : NonResponsiveDiv;\n}\nexport var RechartsWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n var children = props.children,\n className = props.className,\n heightFromProps = props.height,\n onClick = props.onClick,\n onContextMenu = props.onContextMenu,\n onDoubleClick = props.onDoubleClick,\n onMouseDown = props.onMouseDown,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseMove = props.onMouseMove,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n style = props.style,\n widthFromProps = props.width,\n responsive = props.responsive,\n _props$dispatchTouchE = props.dispatchTouchEvents,\n dispatchTouchEvents = _props$dispatchTouchE === void 0 ? true : _props$dispatchTouchE;\n var containerRef = useRef(null);\n var dispatch = useAppDispatch();\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n tooltipPortal = _useState6[0],\n setTooltipPortal = _useState6[1];\n var _useState7 = useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n legendPortal = _useState8[0],\n setLegendPortal = _useState8[1];\n var setScaleRef = useReportScale();\n var responsiveContainerCalculations = useResponsiveContainerContext();\n var width = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.width) > 0 ? responsiveContainerCalculations.width : widthFromProps;\n var height = (responsiveContainerCalculations === null || responsiveContainerCalculations === void 0 ? void 0 : responsiveContainerCalculations.height) > 0 ? responsiveContainerCalculations.height : heightFromProps;\n var innerRef = useCallback(node => {\n setScaleRef(node);\n if (typeof ref === 'function') {\n ref(node);\n }\n setTooltipPortal(node);\n setLegendPortal(node);\n if (node != null) {\n containerRef.current = node;\n }\n }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);\n var myOnClick = useCallback(e => {\n dispatch(mouseClickAction(e));\n dispatch(externalEventAction({\n handler: onClick,\n reactEvent: e\n }));\n }, [dispatch, onClick]);\n var myOnMouseEnter = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseEnter,\n reactEvent: e\n }));\n }, [dispatch, onMouseEnter]);\n var myOnMouseLeave = useCallback(e => {\n dispatch(mouseLeaveChart());\n dispatch(externalEventAction({\n handler: onMouseLeave,\n reactEvent: e\n }));\n }, [dispatch, onMouseLeave]);\n var myOnMouseMove = useCallback(e => {\n dispatch(mouseMoveAction(e));\n dispatch(externalEventAction({\n handler: onMouseMove,\n reactEvent: e\n }));\n }, [dispatch, onMouseMove]);\n var onFocus = useCallback(() => {\n dispatch(focusAction());\n }, [dispatch]);\n var onBlur = useCallback(() => {\n dispatch(blurAction());\n }, [dispatch]);\n var onKeyDown = useCallback(e => {\n dispatch(keyDownAction(e.key));\n }, [dispatch]);\n var myOnContextMenu = useCallback(e => {\n dispatch(externalEventAction({\n handler: onContextMenu,\n reactEvent: e\n }));\n }, [dispatch, onContextMenu]);\n var myOnDoubleClick = useCallback(e => {\n dispatch(externalEventAction({\n handler: onDoubleClick,\n reactEvent: e\n }));\n }, [dispatch, onDoubleClick]);\n var myOnMouseDown = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseDown,\n reactEvent: e\n }));\n }, [dispatch, onMouseDown]);\n var myOnMouseUp = useCallback(e => {\n dispatch(externalEventAction({\n handler: onMouseUp,\n reactEvent: e\n }));\n }, [dispatch, onMouseUp]);\n var myOnTouchStart = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchStart,\n reactEvent: e\n }));\n }, [dispatch, onTouchStart]);\n\n /*\n * onTouchMove is special because it behaves different from mouse events.\n * Mouse events have 'enter' + 'leave' combo that notify us when the mouse is over\n * a certain element. Touch events don't have that; touch only gives us\n * start (finger down), end (finger up) and move (finger moving).\n * So we need to figure out which element the user is touching\n * ourselves. Fortunately, there's a convenient method for that:\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPoint\n */\n var myOnTouchMove = useCallback(e => {\n if (dispatchTouchEvents) {\n dispatch(touchEventAction(e));\n }\n dispatch(externalEventAction({\n handler: onTouchMove,\n reactEvent: e\n }));\n }, [dispatch, dispatchTouchEvents, onTouchMove]);\n var myOnTouchEnd = useCallback(e => {\n dispatch(externalEventAction({\n handler: onTouchEnd,\n reactEvent: e\n }));\n }, [dispatch, onTouchEnd]);\n var WrapperDiv = getWrapperDivComponent(responsive);\n return /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(LegendPortalContext.Provider, {\n value: legendPortal\n }, /*#__PURE__*/React.createElement(WrapperDiv, {\n width: width !== null && width !== void 0 ? width : style === null || style === void 0 ? void 0 : style.width,\n height: height !== null && height !== void 0 ? height : style === null || style === void 0 ? void 0 : style.height,\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width,\n height\n }, style),\n onClick: myOnClick,\n onContextMenu: myOnContextMenu,\n onDoubleClick: myOnDoubleClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onMouseDown: myOnMouseDown,\n onMouseEnter: myOnMouseEnter,\n onMouseLeave: myOnMouseLeave,\n onMouseMove: myOnMouseMove,\n onMouseUp: myOnMouseUp,\n onTouchEnd: myOnTouchEnd,\n onTouchMove: myOnTouchMove,\n onTouchStart: myOnTouchStart,\n ref: innerRef\n }, /*#__PURE__*/React.createElement(EventSynchronizer, null), children)));\n});","var _excluded = [\"width\", \"height\", \"responsive\", \"children\", \"className\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RootSurface } from '../container/RootSurface';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { ClipPathProvider } from '../container/ClipPathProvider';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ReportChartSize } from '../context/chartLayoutContext';\nexport var CategoricalChart = /*#__PURE__*/forwardRef((props, ref) => {\n var width = props.width,\n height = props.height,\n responsive = props.responsive,\n children = props.children,\n className = props.className,\n style = props.style,\n compact = props.compact,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var attrs = svgPropertiesNoEvents(others);\n\n /*\n * The \"compact\" mode is used as the panorama within Brush.\n * However because `compact` is a public prop, let's assume that it can render outside of Brush too.\n */\n if (compact) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc\n }, children));\n }\n return /*#__PURE__*/React.createElement(RechartsWrapper, {\n className: className,\n style: style,\n width: width,\n height: height,\n responsive: responsive !== null && responsive !== void 0 ? responsive : false,\n onClick: props.onClick,\n onMouseLeave: props.onMouseLeave,\n onMouseEnter: props.onMouseEnter,\n onMouseMove: props.onMouseMove,\n onMouseDown: props.onMouseDown,\n onMouseUp: props.onMouseUp,\n onContextMenu: props.onContextMenu,\n onDoubleClick: props.onDoubleClick,\n onTouchStart: props.onTouchStart,\n onTouchMove: props.onTouchMove,\n onTouchEnd: props.onTouchEnd\n }, /*#__PURE__*/React.createElement(RootSurface, {\n otherAttributes: attrs,\n title: title,\n desc: desc,\n ref: ref\n }, /*#__PURE__*/React.createElement(ClipPathProvider, null, children)));\n});","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar defaultMargin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n};\nexport var defaultCartesianChartProps = _objectSpread({\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n layout: 'horizontal',\n margin: defaultMargin,\n responsive: false,\n reverseStackOrder: false,\n stackOffset: 'none',\n syncMethod: 'index'\n}, initialEventSettingsState);\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.\n */\n\nexport var CartesianChart = /*#__PURE__*/forwardRef(function CartesianChart(props, ref) {\n var _categoricalChartProp;\n var rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultCartesianChartProps);\n var chartName = props.chartName,\n defaultTooltipEventType = props.defaultTooltipEventType,\n validateTooltipEventTypes = props.validateTooltipEventTypes,\n tooltipPayloadSearcher = props.tooltipPayloadSearcher,\n categoricalChartProps = props.categoricalChartProps;\n var options = {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n eventEmitter: undefined\n };\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName\n }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {\n chartData: categoricalChartProps.data\n }), /*#__PURE__*/React.createElement(ReportMainChartProps, {\n layout: rootChartProps.layout,\n margin: rootChartProps.margin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: rootChartProps.throttleDelay,\n throttledEvents: rootChartProps.throttledEvents\n }), /*#__PURE__*/React.createElement(ReportChartProps, {\n baseValue: rootChartProps.baseValue,\n accessibilityLayer: rootChartProps.accessibilityLayer,\n barCategoryGap: rootChartProps.barCategoryGap,\n maxBarSize: rootChartProps.maxBarSize,\n stackOffset: rootChartProps.stackOffset,\n barGap: rootChartProps.barGap,\n barSize: rootChartProps.barSize,\n syncId: rootChartProps.syncId,\n syncMethod: rootChartProps.syncMethod,\n className: rootChartProps.className,\n reverseStackOrder: rootChartProps.reverseStackOrder\n }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, rootChartProps, {\n ref: ref\n })));\n});","import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis', 'item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var BarChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"BarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});","/** 单日 24 小时堆叠柱状图:下段「新增」+ 上段「缓存」,shadcn 风格(极简轴、圆角柱、自定义 tooltip)。 */\r\nimport type { ReactNode } from 'react'\r\nimport { Bar, BarChart, CartesianGrid, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'\r\nimport { formatTokens } from '../../usage/aggregate.ts'\r\nimport { cacheSplit } from '../../usage/heatmap.ts'\r\nimport type { DailyRecord } from '../../usage/store.ts'\r\nimport css from './chart.module.css'\r\n\r\ninterface HourRow { hour: number; fresh: number; cached: number; calls: number }\r\n\r\ninterface ChartTooltipProps { active?: boolean; label?: number; payload?: { payload: HourRow }[] }\r\n\r\nfunction ChartTooltip({ active, label, payload }: ChartTooltipProps): ReactNode {\r\n if (!active || payload === undefined || payload.length === 0) return null\r\n const row = payload[0].payload\r\n return (\r\n <div className={css.tooltip}>\r\n <div className={css.tooltipTitle}>{label}:00</div>\r\n <div>新增 {formatTokens(row.fresh)}</div>\r\n <div>缓存 {formatTokens(row.cached)}</div>\r\n <div className={css.tooltipTotal}>合计 {formatTokens(row.fresh + row.cached)} · {row.calls} 次</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport function DailyBarChart({ record }: { record: DailyRecord }): ReactNode {\r\n const data: HourRow[] = record.hours.map((b, hour) => ({ hour, ...cacheSplit(b), calls: b.calls }))\r\n return (\r\n <div className={css.chartTheme}>\r\n <ResponsiveContainer width=\"100%\" height={160}>\r\n <BarChart data={data} margin={{ top: 8, right: 8, bottom: 0, left: 8 }} barCategoryGap=\"20%\">\r\n <CartesianGrid vertical={false} stroke=\"var(--chart-label)\" strokeOpacity={0.2} strokeDasharray=\"3 3\" />\r\n <XAxis\r\n dataKey=\"hour\"\r\n tickLine={false}\r\n axisLine={false}\r\n ticks={[0, 6, 12, 18]}\r\n tickFormatter={(h: number) => `${h}:00`}\r\n fontSize={11}\r\n stroke=\"var(--chart-label)\"\r\n />\r\n <YAxis hide />\r\n <Tooltip content={<ChartTooltip />} cursor={{ fill: 'var(--dsw-alias-interactive-bg-hover)' }} />\r\n <Bar dataKey=\"fresh\" stackId=\"t\" fill=\"var(--chart-1)\" />\r\n <Bar dataKey=\"cached\" stackId=\"t\" fill=\"var(--chart-2)\" radius={[3, 3, 0, 0]} />\r\n </BarChart>\r\n </ResponsiveContainer>\r\n <div className={css.legend}>\r\n <span><i className={css.swatchFresh} />新增</span>\r\n <span><i className={css.swatchCached} />缓存</span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","/** Token 用量模态框:活动热力图(近 13 周)与单日详情双 tab,tab 完全独立切换。 */\r\nimport { useState, type ReactNode } from 'react'\r\nimport { Modal } from '@deepseek-ai/dsh-client-ui-primitives'\r\nimport { billedOf, formatTokens, shiftDate } from '../../usage/aggregate.ts'\r\nimport { cacheHitRate, type HeatmapDay } from '../../usage/heatmap.ts'\r\nimport type { Bucket, DailyRecord } from '../../usage/store.ts'\r\nimport { useLoadState } from '../shared/load-state.ts'\r\nimport { ActivityHeatmap } from './ActivityHeatmap.tsx'\r\nimport { DailyBarChart } from './DailyBarChart.tsx'\r\nimport css from './UsageModal.module.css'\r\n\r\nexport interface UsageModalProps {\r\n open: boolean\r\n onClose: () => void\r\n /** 初始日期 YYYY-MM-DD;非 null = 默认打开单日 tab 并定位到该日;缺省/null = 默认活动 tab。 */\r\n initialDate?: string | null\r\n}\r\n\r\ntype Tab = 'activity' | 'day'\r\n\r\ninterface RangePayload { today: string; days: HeatmapDay[] }\r\ninterface DayPayload { today: string; record: DailyRecord }\r\n\r\n/** fetch JSON:非 2xx 与网络错误都抛错(useLoadState 转 error 态)。 */\r\nasync function fetchJson<T>(url: string): Promise<T> {\r\n const res = await fetch(url)\r\n if (!res.ok) throw new Error(`HTTP ${res.status}`)\r\n return await res.json() as T\r\n}\r\n\r\n/** 永不落定的占位 promise:dayDate 未定时跳过拉取(保持 loading,dayDate 落定后 deps 变化重拉)。 */\r\nconst PENDING = new Promise<never>(() => {})\r\n\r\nfunction Breakdown({ title, rows }: { title: string; rows: [string, Bucket][] }) {\r\n if (rows.length === 0) return null\r\n return (\r\n <section>\r\n <h3 className={css.sectionTitle}>{title}</h3>\r\n {rows.map(([name, b]) => (\r\n <div key={name} className={css.row}>\r\n <span className={css.rowName}>{name}</span>\r\n <span>{formatTokens(billedOf(b))}</span>\r\n <span className={css.rowCalls}>{b.calls} 次</span>\r\n </div>\r\n ))}\r\n </section>\r\n )\r\n}\r\n\r\nexport function UsageModal({ open, onClose, initialDate }: UsageModalProps): ReactNode {\r\n // 数据拉取只在打开时发生(关着就 unmount,与归档的 `if (!open) return` 守卫等价)。\r\n // 打开时 body 全新挂载,tab/date 状态天然以 initialDate 初始化,无需复位 effect。\r\n return (\r\n <Modal open={open} onClose={onClose} title=\"Token 用量\" closeLabel=\"关闭\" className={css.dialog}>\r\n {open && <UsageModalBody initialDate={initialDate ?? null} />}\r\n </Modal>\r\n )\r\n}\r\n\r\nfunction UsageModalBody({ initialDate }: { initialDate: string | null }): ReactNode {\r\n const [tab, setTab] = useState<Tab>(initialDate === null ? 'activity' : 'day')\r\n /** 单日 tab 的日期;null = 未定(跟随 today)。 */\r\n const [date, setDate] = useState<string | null>(initialDate)\r\n /** 打开即取 91 天范围数据;缓存在 state,tab 来回切换不重取。 */\r\n const range = useLoadState<RangePayload>(\r\n () => fetchJson<RangePayload>('/dsh-agent-toolkit/api/usage/range?days=91'),\r\n [])\r\n const today = range.state.kind === 'ok' ? range.state.data.today : undefined\r\n /** 单日 tab 当前日期:pager 选过的日期优先,否则 today(等 range payload 到达)。 */\r\n const dayDate = date ?? today\r\n /** date 未定时(等 today)不拉取:挂 PENDING 保持 loading,dayDate 落定后 deps 变化重拉。 */\r\n const day = useLoadState<DayPayload>(() => {\r\n if (dayDate === undefined) return PENDING\r\n return fetchJson<DayPayload>(`/dsh-agent-toolkit/api/usage/daily?date=${dayDate}`)\r\n }, [dayDate])\r\n\r\n const record = dayDate !== undefined && day.state.kind === 'ok' ? day.state.data.record : undefined\r\n const hit = record === undefined ? null : cacheHitRate(record.totals)\r\n\r\n return (\r\n <>\r\n <div className={css.tabs} role=\"tablist\">\r\n <button type=\"button\" role=\"tab\" aria-selected={tab === 'activity'}\r\n className={tab === 'activity' ? `${css.tab} ${css.tabActive}` : css.tab}\r\n onClick={() => { setTab('activity') }}>活动</button>\r\n <button type=\"button\" role=\"tab\" aria-selected={tab === 'day'}\r\n className={tab === 'day' ? `${css.tab} ${css.tabActive}` : css.tab}\r\n onClick={() => { setTab('day') }}>单日</button>\r\n </div>\r\n {tab === 'activity' ? (\r\n <>\r\n {range.state.kind === 'loading' && <p>加载中…</p>}\r\n {range.state.kind === 'error' && <p>加载失败,请重试</p>}\r\n {range.state.kind === 'ok' && (\r\n <>\r\n <h3 className={css.sectionTitle}>近 13 周活动</h3>\r\n <ActivityHeatmap today={range.state.data.today} days={range.state.data.days} />\r\n </>\r\n )}\r\n </>\r\n ) : (\r\n <>\r\n {dayDate !== undefined && (\r\n <div className={css.pager}>\r\n <button type=\"button\" className={css.pagerButton} aria-label=\"前一天\" onClick={() => { setDate(shiftDate(dayDate, -1)) }}>←</button>\r\n <span className={css.dateLabel}>{dayDate}</span>\r\n <button type=\"button\" className={css.pagerButton} aria-label=\"后一天\" disabled={today === undefined || shiftDate(dayDate, 1) > today}\r\n onClick={() => { setDate(shiftDate(dayDate, 1)) }}>→</button>\r\n </div>\r\n )}\r\n {day.state.kind === 'loading' && <p>加载中…</p>}\r\n {day.state.kind === 'error' && <p>加载失败,请重试</p>}\r\n {record !== undefined && (\r\n <>\r\n <DailyBarChart record={record} />\r\n <p className={css.total}>\r\n 当日总量 {formatTokens(billedOf(record.totals))} · {record.totals.calls} 次调用\r\n {record.totals.estimated > 0 && `(含估算 ${formatTokens(record.totals.estimated)})`}\r\n {hit !== null && `(缓存命中率 ${Math.round(hit * 100)}%)`}\r\n {record.totals.calls === 0 && ' · 当日无用量'}\r\n </p>\r\n <Breakdown title=\"按模型\" rows={Object.entries(record.byModel).sort((a, b) => billedOf(b[1]) - billedOf(a[1]))} />\r\n <Breakdown title=\"按项目\" rows={Object.entries(record.byProject).sort((a, b) => billedOf(b[1]) - billedOf(a[1]))} />\r\n {record.compaction.calls > 0 && (\r\n <p className={css.compaction}>上下文压缩 {formatTokens(billedOf(record.compaction))} · {record.compaction.calls} 次</p>\r\n )}\r\n </>\r\n )}\r\n </>\r\n )}\r\n </>\r\n )\r\n}\r\n","/** usage 侧边栏底栏入口:createSidebarEntry 工厂产物(宽栏窄栏统一仅图标 + Tooltip),点击打开 Token 用量模态框。 */\r\nimport type { ReactNode } from 'react'\r\nimport type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\n// 触发 ui-sidebar 对 SlotMap 的声明合并(sidebar.footer.action 键与 owner props)。\r\nimport type {} from '@deepseek-ai/dsh-client-ui-sidebar/client'\r\nimport { IconDataOutline16 } from '@deepseek-ai/dsh-client-ui-primitives'\r\nimport { createSidebarEntry } from '../shared/entry.tsx'\r\nimport { UsageModal } from './UsageModal.tsx'\r\n\r\nconst SidebarEntry = createSidebarEntry({\r\n id: 'dsh-agent-toolkit:usage',\r\n order: 0,\r\n icon: <IconDataOutline16 size={18} />,\r\n title: 'Token 用量',\r\n renderModal: (p) => <UsageModal {...p} />,\r\n})\r\n\r\n/** 槽注册要求完整 composed props(含运行时 share useSessions/useWorkspaces);实现只消费 wide。 */\r\nexport function UsageEntry(props: PropsRuntime<'sidebar.footer.action'>): ReactNode {\r\n return <SidebarEntry wide={props.wide} />\r\n}\r\n","/** dsh-agent-toolkit usage 浏览器半:注册侧边栏底栏入口。 */\r\nimport type { Context } from '@deepseek-ai/cordis'\r\n// 触发 ui-sidebar 对 SlotMap 的声明合并(sidebar.footer.action 键)。\r\nimport type {} from '@deepseek-ai/dsh-client-ui-sidebar/client'\r\nimport { UsageEntry } from './entry.tsx'\r\n\r\nexport function setupUsageClient(ctx: Context): void {\r\n // inject() 等 slot 被 ui-sidebar 声明后再注册,声明消失自动回滚。\r\n ctx.slots.inject('sidebar.footer.action', () =>\r\n ctx.slots.register(\r\n { name: 'sidebar.footer.action', id: 'dsh-agent-toolkit:usage', order: 0 },\r\n UsageEntry,\r\n ))\r\n}\r\n","/** @dsh-agent-toolkit/token-usage 浏览器半:注册「Token 用量」侧边栏底栏入口。 */\nimport type { Context } from '@deepseek-ai/cordis'\nimport { setupUsageClient } from './usage/index.ts'\n\nexport const inject = ['slots']\n\nexport function apply(ctx: Context): void {\n try {\n setupUsageClient(ctx)\n } catch (error) {\n // 双装:同一侧边栏入口 id 已被先到实例(dsh-agent-toolkit 或本包)注册,slots 重复\n // id 抛错——后到实例自动停用用量面板,不向上抛以免整个浏览器半崩溃。\n console.warn('[dsh-agent-toolkit/token-usage] 侧边栏「Token 用量」入口已由先到实例注册,本实例停用用量面板', error)\n }\n}\n\n// 供 dsh-agent-toolkit 浏览器半 bundle 复用(client-module 入口)。\nexport { setupUsageClient } from './usage/index.ts'\n"],"x_google_ignoreList":[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,EAAE,GAAE;CAAC,IAAI,GAAE,GAAE,IAAE;CAAG,IAAG,YAAU,OAAO,KAAG,YAAU,OAAO,GAAE,KAAG;MAAO,IAAG,YAAU,OAAO,GAAE,IAAG,MAAM,QAAQ,CAAC,GAAE;EAAC,IAAI,IAAE,EAAE;EAAO,KAAI,IAAE,GAAE,IAAE,GAAE,KAAI,EAAE,OAAK,IAAE,EAAE,EAAE,EAAE,OAAK,MAAI,KAAG,MAAK,KAAG;CAAE,OAAM,KAAI,KAAK,GAAE,EAAE,OAAK,MAAI,KAAG,MAAK,KAAG;CAAG,OAAO;AAAC;AAAC,SAAgB,OAAM;CAAC,KAAI,IAAI,GAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,UAAU,QAAO,IAAE,GAAE,KAAI,CAAC,IAAE,UAAU,QAAM,IAAE,EAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;CAAG,OAAO;AAAC;;;;;;;;;;;;;;;;;;;ACiB/W,SAAgB,mBACd,MAC0C;CAC1C,MAAM,EAAE,MAAM,OAAO,gBAAgB;CACrC,OAAO,SAAS,aAAa,OAA6C;EACxE,MAAM,EAAE,SAAS;EAEjB,MAAM,QAAe;EACrB,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;EACtC,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,SAAD;GAAS,OAAO;GAAO,SAAS;GAC9B,UAAA,oBAAC,UAAD;IACE,MAAK;IACL,WAAW,KAAKA,yBAAI,SAAS,CAAC,QAAQA,yBAAI,IAAI;IAC9C,cAAY;IACZ,eAAe;KAAE,QAAQ,IAAI;IAAE;IAE9B,UAAA;GACK,CAAA;EACD,CAAA,GACR,YAAY;GAAE;GAAM,eAAe;IAAE,QAAQ,KAAK;GAAE;GAAG,GAAG;EAAM,CAAC,CAClE,EAAA,CAAA;CAEN;AACF;;;;AChBA,SAAgB,SAAS,GAAmB;CAC1C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;AAC7D;;AAwFA,SAAgB,UAAU,MAAc,MAAsB;CAC5D,OAAO,IAAI,KAAK,KAAK,MAAM,GAAG,KAAK,WAAW,IAAI,OAAO,KAAU,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE;AAChG;;AAGA,SAAgB,aAAa,GAAmB;CAC9C,MAAM,QAAQ;EAAC;EAAI;EAAK;EAAK;CAAG;CAChC,IAAI,QAAQ;CACZ,IAAI,OAAO;CACX,OAAO,SAAS,OAAQ,OAAO,MAAM,SAAS,GAAG;EAC/C,SAAS;EACT,QAAQ;CACV;CACA,OAAO,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,MAAM;AAC9D;;;AC3HA,MAAM,SAAS;;AAwBf,SAAgB,QAAQ,QAAgB,KAA2B;CACjE,IAAI,UAAU,GAAG,OAAO;CACxB,IAAI,OAAO,GAAG,OAAO;CACrB,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,KAAM,SAAS,MAAO,CAAC,CAAC,CAAC;AAC/D;;AAWA,SAAgB,YAAY,OAAe,MAAqC;CAC9E,MAAM,SAAS,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD,MAAM,UAAU,KAAK,MAAM,GAAG,MAAM,WAAW;CAE/C,MAAM,UADQ,WAAW,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,SACtC,KAAK;CAC7B,MAAM,MAAM,KAAK,IAAI,GAAG,GAAG,KAAK,KAAK,MAAM,EAAE,MAAM,CAAC;CACpD,OAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MACpC,MAAM,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;EAClC,MAAM,KAAK,WAAW,IAAI,IAAI,KAAK;EACnC,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE;EACnD,MAAM,MAAM,OAAO,IAAI,IAAI;EAC3B,MAAM,SAAS,KAAK;EACpB,OAAO;GAAE;GAAM;GAAK,OAAO,UAAU,QAAQ,KAAA,IAAY,IAAI,QAAQ,IAAI,QAAQ,GAAG;GAAG;EAAO;CAChG,CAAC,CAAC;AACN;;AAGA,SAAgB,WAAW,GAA8C;CACvE,OAAO;EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE;EAAW,QAAQ,EAAE;CAAU;AACvF;;AAGA,SAAgB,aAAa,QAA+B;CAC1D,MAAM,QAAQ,OAAO,QAAQ,OAAO;CACpC,OAAO,UAAU,IAAI,OAAO,OAAO,YAAY;AACjD;;;;AC/DA,SAAgB,aACd,MACA,MAC6C;CAC7C,MAAM,CAAC,OAAO,YAAY,SAAuB,EAAE,MAAM,UAAU,CAAC;CACpE,MAAM,CAAC,MAAM,WAAW,SAAS,CAAC;CAClC,gBAAgB;EACd,IAAI,QAAQ;EACZ,SAAS,EAAE,MAAM,UAAU,CAAC;EAC5B,KAAK,CAAC,CACH,MAAM,SAAS;GAAE,IAAI,CAAC,OAAO,SAAS;IAAE,MAAM;IAAM;GAAK,CAAC;EAAE,CAAC,CAAC,CAC9D,OAAO,UAAU;GAChB,IAAI,CAAC,OAAO,SAAS;IAAE,MAAM;IAAS,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GAAE,CAAC;EACzG,CAAC;EACH,aAAa;GAAE,QAAQ;EAAK;CAG9B,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;CAClB,OAAO;EAAE;EAAO,cAAc;GAAE,SAAS,MAAM,IAAI,CAAC;EAAE;CAAE;AAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA,SAAgB,gBAAgB,EAAE,OAAO,QAAyC;CAChF,MAAM,UAAU,YAAY,OAAO,IAAI;CACvC,OACE,qBAAC,OAAD;EAAK,WAAWC,yBAAM;EAAtB,UAAA,CACE,oBAAC,OAAD;GAAK,WAAWC,mCAAI;GACjB,UAAA,QAAQ,KAAK,KAAK,MAAM;IACvB,MAAM,QAAQ,IAAI,MAAM,SAAS,KAAK,KAAK,SAAS,KAAK,CAAC;IAC1D,OAAO,oBAAC,QAAD,EAAA,UAAe,UAAU,KAAA,IAAY,KAAK,GAAG,OAAO,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,GAAS,GAA1E,CAA0E;GAC9F,CAAC;EACE,CAAA,GACL,oBAAC,OAAD;GAAK,WAAWA,mCAAI;GACjB,UAAA,QAAQ,KAAK,KAAK,MACjB,oBAAC,OAAD;IAAa,WAAWA,mCAAI;IACzB,UAAA,IAAI,KAAK,SACR,oBAAC,OAAD;KAEE,WAAWA,mCAAI,QAAQ,KAAK;KAC5B,iBAAe,KAAK,UAAU,KAAA;KAC9B,OAAO,KAAK,SAAS,KAAA,IAAY,GAAG,KAAK,KAAK,IAAI,aAAa,KAAK,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,KAAK,SAAS,EAAE;IACjH,GAJM,KAAK,IAIX,CACF;GACE,GATK,CASL,CACN;EACE,CAAA,CACF;;AAET;;;ACtCA,IAAI,YAAY;CAAC;CAA2B;CAAU;CAAiB;CAAS;CAAgB;CAAW;CAAkB;CAAoB;CAA2B;CAAsB;CAA6B;CAAuB;CAA8B;CAAW;CAAkB;CAAU;CAAiB;CAAY;CAAmB;CAAiB;CAAwB;CAAW;CAAkB;CAAW;CAAkB;CAAY;CAAmB;CAAa;CAAoB;CAAU;CAAiB;CAAW;CAAkB;CAAa;CAAoB;CAAc;CAAqB;CAAW;CAAkB;CAAW;CAAkB;CAAa;CAAoB;CAAoB;CAA2B;CAAoB;CAA2B;CAAa;CAAoB;CAAe;CAAsB;CAAW;CAAkB;CAAgB;CAAuB;CAAoB;CAA2B;CAAe;CAAsB;CAAW;CAAkB;CAAU;CAAiB;CAAa;CAAoB;CAAc;CAAqB;CAAgB;CAAuB;CAAY;CAAmB;CAAa;CAAoB;CAAa;CAAoB;CAAa;CAAoB;CAAgB;CAAuB;CAAkB;CAAyB;CAAa;CAAoB;CAAc;CAAqB;CAAW;CAAkB;CAAiB;CAAwB;CAAiB;CAAwB;CAAU;CAAiB;CAAa;CAAoB;CAAe;CAAsB;CAAc;CAAqB;CAAe;CAAsB;CAAc;CAAqB;CAAe;CAAsB;CAAU;CAAiB;CAAe;CAAsB;CAAgB;CAAgB;CAAe;CAAsB;CAAc;CAAqB;CAAe;CAAsB;CAAa;CAAoB;CAAY;CAAmB;CAAiB;CAAwB;CAAc;CAAqB;CAAe;CAAsB;CAAgB;CAAuB;CAAiB;CAAwB;CAAiB;CAAwB;CAAe;CAAsB;CAAmB;CAA0B;CAAkB;CAAyB;CAAkB;CAAyB;CAAiB;CAAwB;CAAgB;CAAuB;CAAuB;CAA8B;CAAwB;CAA+B;CAAY;CAAmB;CAAW;CAAkB;CAAoB;CAA2B;CAAkB;CAAyB;CAAwB;CAA+B;CAAmB;AAAwB;AAC/4F,SAAgB,WAAW,KAAK;CAC9B,IAAI,OAAO,QAAQ,UACjB,OAAO;CAGT,OAAOC,UAAiB,SAAS,GAAG;AACtC;;;ACGA,IAAI,uCAAuB,IAAI,IAAI;CATT;CAAyB;CAAe;CAAqB;CAAa;CAAgB;CAAiB;CAAiB;CAAgB;CAAiB;CAAgB;CAAoB;CAAgB;CAAiB;CAAqB;CAAiB;CAAe;CAAiB;CAAe;CAAgB;CAAqB;CAAc;CAAmB;CAAc;CAAa;CAAc;CAAkB;CAAwB;CAAoB;CAAa;CAAoB;CAAiB;CAAgB;CAAiB;CAAiB;CAAiB;CAAwB;CAAiB;CAAiB;CAAgB;CAAiB;CAAgB;CAAa;CAAiB;CAAiB;CAAiB;CAAkB;CAAa;CAAS;CAAU;CAAM;CAAQ;CAAO;CAAS;CAAU;CAAO;CAAQ;CAQv4B;CAAU;CAAS;CAAQ;CAAY;CAAgB;CAAc;CAAY;CAAqB;CAAgB;CAAc;CAAa;CAAc;CAAU;CAAiB;CAAiB;CAAe;CAAW;CAAiB;CAAiB;CAAe;CAAQ;CAAS;CAAQ;CAAM;CAAY;CAAa;CAAQ;CAAY;CAAiB;CAAY;CAAsB;CAA6B;CAAgB;CAAkB;CAAqB;CAAoB;CAAU;CAAM;CAAM;CAAK;CAAc;CAAW;CAAmB;CAAa;CAAW;CAAW;CAAoB;CAAO;CAAM;CAAM;CAAY;CAAa;CAAoB;CAAO;CAAY;CAA6B;CAAQ;CAAe;CAAY;CAAU;CAAa;CAAe;CAAc;CAAgB;CAAa;CAAc;CAAY;CAAkB;CAAe;CAAa;CAAe;CAAc;CAAU;CAAQ;CAAM;CAAM;CAAM;CAAM;CAAa;CAA8B;CAA4B;CAAY;CAAqB;CAAiB;CAAW;CAAa;CAAgB;CAAQ;CAAe;CAAkB;CAAO;CAAM;CAAa;CAAM;CAAM;CAAM;CAAM;CAAK;CAAgB;CAAoB;CAAW;CAAa;CAAc;CAAY;CAAgB;CAAiB;CAAiB;CAAqB;CAAS;CAAa;CAAgB;CAAa;CAAe;CAAe;CAAe;CAAQ;CAAoB;CAAa;CAAgB;CAAQ;CAAc;CAAU;CAAW;CAAY;CAAS;CAAU;CAAe;CAAU;CAAY;CAAoB;CAAqB;CAAc;CAAW;CAAc;CAAuB;CAAoB;CAAgB;CAAiB;CAAa;CAAa;CAAa;CAAiB;CAAuB;CAAkB;CAAK;CAAU;CAAQ;CAAQ;CAAmB;CAAe;CAAa;CAAsB;CAAoB;CAAW;CAAU;CAAU;CAAM;CAAM;CAAQ;CAAkB;CAAS;CAAW;CAAoB;CAAoB;CAAS;CAAgB;CAAe;CAAgB;CAAS;CAAS;CAAe;CAAa;CAAe;CAAyB;CAA0B;CAAU;CAAU;CAAmB;CAAoB;CAAiB;CAAkB;CAAoB;CAAiB;CAAe;CAAgB;CAAkB;CAAe;CAAW;CAAW;CAAc;CAAkB;CAAc;CAAiB;CAAM;CAAa;CAAM;CAAM;CAAqB;CAAsB;CAAW;CAAe;CAAgB;CAAc;CAAe;CAAU;CAAgB;CAAW;CAAY;CAAe;CAAe;CAAY;CAAgB;CAAc;CAAc;CAAiB;CAAU;CAAe;CAAe;CAAM;CAAM;CAAK;CAAoB;CAAW;CAAgB;CAAgB;CAAa;CAAa;CAAa;CAAc;CAAa;CAAW;CAAW;CAAS;CAAc;CAAY;CAAM;CAAM;CAAK;CAAoB;CAAK;CAAc;CAAO;CAAO;AACxnG,CAAC;AACrD,SAAgB,oBAAoB,KAAK;CACvC,IAAI,OAAO,QAAQ,UACjB,OAAO;CAET,OAAO,qBAAqB,IAAI,GAAG;AACrC;;;;;;AAMA,SAAgB,gBAAgB,KAAK;CACnC,OAAO,OAAO,QAAQ,YAAY,IAAI,WAAW,OAAO;AAC1D;;;;;;AAOA,SAAgB,sBAAsB,KAAK;CACzC,IAAI,OAAO,QAAQ,YAAY,QAAQ,MACrC,OAAO,CAAC;CAEV,IAAI,SAAS,CAAC;CACd,KAAK,IAAI,OAAO,KACd,IAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAC3C;MAAA,oBAAoB,GAAG,KAAK,gBAAgB,GAAG,GACjD,OAAO,OAAO,IAAI;CAAA;CAIxB,OAAO;AACT;;;;;;;;;;;;;;;;AAiBA,SAAgB,iCAAiC,OAAO;CACtD,IAAI,SAAS,MACX,OAAO;CAET,IAAiB,6BAAe,KAAK,KAAK,OAAO,MAAM,UAAU,YAAY,MAAM,UAAU,MAAM;EACjG,IAAI,IAAI,MAAM;EACd,OAAO,sBAAsB,CAAC;CAChC;CACA,IAAI,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,GACnD,OAAO,sBAAsB,KAAK;CAEpC,OAAO;AACT;;;;;;;;ACjEA,SAAgB,uBAAuB,KAAK;CAC1C,IAAI,SAAS,CAAC;CAGd,KAAK,IAAI,OAAO,KACd,IAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAC3C;MAAA,oBAAoB,GAAG,KAAK,gBAAgB,GAAG,KAAK,WAAW,GAAG,GACpE,OAAO,OAAO,IAAI;CAAA;CAIxB,OAAO;AACT;;;ACpBA,IAAIC,eAAY;CAAC;CAAY;CAAS;CAAU;CAAW;CAAa;CAAS;CAAS;AAAM;AAChG,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;;;;;;;;AAYtM,IAAW,UAAuB,0BAAY,OAAO,QAAQ;CAC3D,IAAI,WAAW,MAAM,UACnB,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,UAAU,MAAM,SAChB,YAAY,MAAM,WAClB,QAAQ,MAAM,OACd,QAAQ,MAAM,OACd,OAAO,MAAM,MACb,SAASD,4BAAyB,OAAOF,YAAS;CACpD,IAAI,UAAU,WAAW;EACvB;EACA;EACA,GAAG;EACH,GAAG;CACL;CACA,IAAI,aAAa,KAAK,oBAAoB,SAAS;CACnD,OAAoB,sBAAM,cAAc,OAAOC,YAAS,CAAC,GAAG,uBAAuB,MAAM,GAAG;EAC1F,WAAW;EACJ;EACC;EACD;EACP,SAAS,GAAG,OAAO,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,QAAQ,OAAO,GAAG,CAAC,CAAC,OAAO,QAAQ,MAAM;EACrG;CACP,CAAC,GAAgB,sBAAM,cAAc,SAAS,MAAM,KAAK,GAAgB,sBAAM,cAAc,QAAQ,MAAM,IAAI,GAAG,QAAQ;AAC5H,CAAC;;;ACxCD,IAAIG,eAAY,CAAC,YAAY,WAAW;AACxC,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;;;;;;;;;AAYtM,IAAW,QAAqB,sBAAM,YAAY,OAAO,QAAQ;CAC/D,IAAI,WAAW,MAAM,UACnB,YAAY,MAAM,WAClB,SAASD,4BAAyB,OAAOF,YAAS;CACpD,IAAI,aAAa,KAAK,kBAAkB,SAAS;CACjD,OAAoB,sBAAM,cAAc,KAAKC,YAAS,EACpD,WAAW,WACb,GAAG,uBAAuB,MAAM,GAAG,EAC5B,IACP,CAAC,GAAG,QAAQ;AACd,CAAC;;;;;;;;;;;;;;;;ACXD,SAAS,iBAAiB,KAAK;CAC9B,OAAO,QAAQ;AAChB;;;;ACdA,MAAMG,oBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BxB,SAAS,UAAU,KAAK;CACvB,QAAQ,OAAO,KAAf;EACC,KAAK;EACL,KAAK,UAAU,OAAO;EACtB,KAAK;GACJ,IAAI,QAAQ,MAAM,IAAI,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,GAAG,OAAO;GACnE,OAAOA,kBAAgB,KAAK,GAAG;EAChC,SAAS,OAAO;CACjB;AACD;;;;;;;;;;AC7BA,SAAS,MAAM,OAAO;CACrB,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU,OAAO;CACnE,IAAI,OAAO,GAAG,OAAO,UAAU,GAAG,EAAE,GAAG,OAAO;CAC9C,OAAO,OAAO,KAAK;AACpB;;;;;;;;;;;;;;;;;;;ACKA,SAAS,SAAS,OAAO;CACxB,IAAI,SAAS,MAAM,OAAO;CAC1B,OAAO,aAAa,KAAK;AAC1B;AACA,SAAS,aAAa,OAAO;CAC5B,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,KAAK,GAAG;CACjE,MAAM,SAAS,OAAO,KAAK;CAC3B,IAAI,WAAW,OAAO,OAAO,GAAG,OAAO,KAAK,GAAG,EAAE,GAAG,OAAO;CAC3D,OAAO;AACR;;;;;;;;;;;;;;;;;;;;ACPA,SAAS,OAAO,SAAS;CACxB,IAAI,MAAM,QAAQ,OAAO,GAAG,OAAO,QAAQ,IAAI,KAAK;CACpD,IAAI,OAAO,YAAY,UAAU,OAAO,CAAC,OAAO;CAChD,UAAU,SAAS,OAAO;CAC1B,MAAM,SAAS,CAAC;CAChB,MAAM,SAAS,QAAQ;CACvB,IAAI,WAAW,GAAG,OAAO;CACzB,IAAI,QAAQ;CACZ,IAAI,MAAM;CACV,IAAI,YAAY;CAChB,IAAI,UAAU;CACd,IAAI,kBAAkB;CACtB,MAAM,qBAAqB;CAC3B,IAAI,QAAQ,WAAW,CAAC,MAAM,IAAI,OAAO,KAAK,EAAE;CAChD,OAAO,QAAQ,QAAQ;EACtB,MAAM,OAAO,QAAQ;EACrB,IAAI,WAAW,IAAI,SAAS,QAAQ,QAAQ,IAAI,QAAQ;GACvD;GACA,OAAO,QAAQ;EAChB,OAAO,IAAI,SAAS,WAAW,YAAY;OACtC,OAAO;OACP,IAAI,SAAS,IAAI,SAAS,QAAQ,SAAS,KAAK;GACpD,YAAY;GACZ,kBAAkB;EACnB,OAAO,IAAI,SAAS,KAAK;GACxB,UAAU;GACV,IAAI,CAAC,mBAAmB,IAAI,SAAS,GAAG,KAAK,CAAC,mBAAmB,KAAK,GAAG,GAAG;IAC3E,MAAM,WAAW,IAAI,MAAM,GAAG;IAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,IAAI,SAAS,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE;GAC1F,OAAO,OAAO,KAAK,GAAG;GACtB,MAAM;EACP,OAAO,OAAO;OACT,IAAI,SAAS,KAAK;GACtB,UAAU;GACV,kBAAkB;GAClB,IAAI,KAAK;IACR,OAAO,KAAK,GAAG;IACf,MAAM;GACP;EACD,OAAO,IAAI,SAAS,KAAK;GACxB,IAAI,KAAK;IACR,OAAO,KAAK,GAAG;IACf,MAAM;GACP;GACA,MAAM,OAAO,QAAQ,QAAQ;GAC7B,IAAI,SAAS,KAAK,KAAK,SAAS,KAAK,OAAO,KAAK,EAAE;EACpD,OAAO,OAAO;EACd;CACD;CACA,IAAI,KAAK,OAAO,KAAK,GAAG;CACxB,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;AC/CA,SAASC,MAAI,QAAQ,MAAM,cAAc;CACxC,IAAI,UAAU,MAAM,OAAO;CAC3B,QAAQ,OAAO,MAAf;EACC,KAAK,UAAU;GACd,IAAI,iBAAiB,IAAI,GAAG,OAAO;GACnC,MAAM,SAAS,OAAO;GACtB,IAAI,WAAW,KAAK,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,OAAO,QAAQ,IAAI,GAAG,OAAOA,MAAI,QAAQ,OAAO,IAAI,GAAG,YAAY;QACpH,OAAO;GACZ,OAAO;EACR;EACA,KAAK;EACL,KAAK,UAAU;GACd,IAAI,OAAO,SAAS,UAAU,OAAO,MAAM,IAAI;GAC/C,MAAM,SAAS,OAAO;GACtB,IAAI,WAAW,KAAK,GAAG,OAAO;GAC9B,OAAO;EACR;EACA,SAAS;GACR,IAAI,MAAM,QAAQ,IAAI,GAAG,OAAO,YAAY,QAAQ,MAAM,YAAY;GACtE,IAAI,OAAO,GAAG,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO;QACtC,OAAO,OAAO,IAAI;GACvB,IAAI,iBAAiB,IAAI,GAAG,OAAO;GACnC,MAAM,SAAS,OAAO;GACtB,IAAI,WAAW,KAAK,GAAG,OAAO;GAC9B,OAAO;EACR;CACD;AACD;AACA,SAAS,YAAY,QAAQ,MAAM,cAAc;CAChD,IAAI,KAAK,WAAW,GAAG,OAAO;CAC9B,IAAI,UAAU;CACd,KAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;EACjD,IAAI,WAAW,MAAM,OAAO;EAC5B,IAAI,iBAAiB,KAAK,MAAM,GAAG,OAAO;EAC1C,UAAU,QAAQ,KAAK;CACxB;CACA,IAAI,YAAY,KAAK,GAAG,OAAO;CAC/B,OAAO;AACR;;;AC7DA,IAAI,wBAAwB;AAC5B,SAAgB,MAAM,KAAK;CAEzB,IAAI,SAAS,OADQ,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CAEzF,IAAI,UAAU,KAAK,MAAM,MAAM,MAAM,IAAI;CACzC,IAAI,OAAO,GAAG,SAAS,EAAE,GACvB,OAAO;CAET,OAAO;AACT;;;;;;AAOA,SAAgB,qBAAqB,SAAS;CAC5C,KAAK,IAAI,OAAO,UAAU,QAAQ,SAAS,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO,MAAM,QACpG,OAAO,OAAO,KAAK,UAAU;CAE/B,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;EAC3C,IAAI,QAAQ,OAAO,IAAI;EACvB,IAAI,OAAO,UAAU,UACnB,OAAO,SAAS,QAAQ;EAE1B,IAAI,UAAU,KAAA,GACZ,OAAO,SAAS,MAAM,KAAK,IAAI;EAEjC,OAAO,SAAS;CAClB,GAAG,EAAE;AACP;;;AC7BA,IAAW,YAAW,UAAS;CAC7B,IAAI,UAAU,GACZ,OAAO;CAET,IAAI,QAAQ,GACV,OAAO;CAET,OAAO;AACT;AACA,IAAW,SAAQ,UAAS;CAE1B,OAAO,OAAO,SAAS,YAAY,SAAS,CAAC;AAC/C;;;;;;;;AASA,IAAW,aAAY,UAAS,OAAO,UAAU,YAAY,MAAM,SAAS,KAAK,MAAM,QAAQ,GAAG,MAAM,MAAM,SAAS;AACvH,IAAW,YAAW,WAAU,OAAO,UAAU,YAAY,iBAAiB,WAAW,CAAC,MAAM,KAAK;AACrG,IAAW,cAAa,UAAS,SAAS,KAAK,KAAK,OAAO,UAAU;AACrE,IAAI,YAAY;AAChB,IAAW,YAAW,WAAU;CAC9B,IAAI,KAAK,EAAE;CACX,OAAO,GAAG,OAAO,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;AAC1C;;;;;;;;;;;;;;;;AAiBA,IAAW,kBAAkB,SAAS,gBAAgB,SAAS,YAAY;CACzE,IAAI,eAAe,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACvF,IAAI,WAAW,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACnF,IAAI,CAAC,SAAS,OAAO,KAAK,OAAO,YAAY,UAC3C,OAAO;CAET,IAAI;CACJ,IAAI,UAAU,OAAO,GAAG;EACtB,IAAI,cAAc,MAChB,OAAO;EAET,IAAI,QAAQ,QAAQ,QAAQ,GAAG;EAC/B,QAAQ,aAAa,WAAW,QAAQ,MAAM,GAAG,KAAK,CAAC,IAAI;CAC7D,OACE,QAAQ,CAAC;CAEX,IAAI,MAAM,KAAK,GACb,QAAQ;CAEV,IAAI,YAAY,cAAc,QAAQ,QAAQ,YAC5C,QAAQ;CAEV,OAAO;AACT;AACA,IAAW,gBAAe,QAAO;CAC/B,IAAI,CAAC,MAAM,QAAQ,GAAG,GACpB,OAAO;CAET,IAAI,MAAM,IAAI;CACd,IAAI,QAAQ,CAAC;CACb,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KACvB,IAAI,CAAC,MAAM,OAAO,IAAI,EAAE,IACtB,MAAM,OAAO,IAAI,EAAE,KAAK;MAExB,OAAO;CAGX,OAAO;AACT;;;;;;;;;;;;;;;;;;AAoBA,SAAgB,YAAY,OAAO,KAAK,sBAAsB;CAC5D,IAAI,SAAS,KAAK,KAAK,SAAS,GAAG,GACjC,OAAO,MAAM,QAAQ,wBAAwB,MAAM,MAAM;CAE3D,OAAO;AACT;AACA,SAAgB,iBAAiB,KAAK,cAAc,gBAAgB;CAClE,IAAI,CAAC,OAAO,CAAC,IAAI,QACf;CAEF,OAAO,IAAI,MAAK,UAAS,UAAU,OAAO,iBAAiB,aAAa,aAAa,KAAK,IAAIC,MAAI,OAAO,YAAY,OAAO,cAAc;AAC5I;;;;;;AAwCA,IAAW,aAAY,UAAS;CAC9B,OAAO,UAAU,QAAQ,OAAO,UAAU;AAC5C;;;;;;AAOA,IAAW,cAAa,UAAS;CAC/B,IAAI,UAAU,KAAK,GACjB,OAAO;CAET,OAAO,GAAG,OAAO,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC,CAAC;AACvE;;;;;;AAOA,SAAgB,SAAS,OAAO;CAC9B,OAAO,SAAS;AAClB;;;;;AAMA,SAAgBC,SAAO,CAAC;;;ACzLxB,SAAgB,4BAA4B,KAAK;CAC/C,IAAI,CAAC,KACH;CAEF,OAAO;EACL,GAAG,IAAI;EACP,GAAG,IAAI;EACP,YAAY,gBAAgB,MAAM,IAAI,aAAa,IAAI;EACvD,YAAY,gBAAgB,MAAM,IAAI,aAAa,IAAI;EACvD,OAAO,IAAI;EACX,QAAQ,IAAI;CACd;AACF;;;ACZA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;;;;;;;;;;;;AAoBvT,IAAW,wBAAuB,YAAW;CAC3C,IAAI,UAAU,QAAQ,SACpB,WAAW,QAAQ,UACnB,kBAAkB,QAAQ,QAC1B,SAAS,oBAAoB,KAAK,IAAI,IAAI,iBAC1C,2BAA2B,QAAQ,eACnC,QAAQ,QAAQ;CAClB,IAAI,wBAAwB,4BAA4B,OAAO,GAC7D,IAAI,sBAAsB,GAC1B,IAAI,sBAAsB,GAC1B,SAAS,sBAAsB,QAC/B,aAAa,sBAAsB,YACnC,aAAa,sBAAsB;CAGrC,IAAI,SAAS;CAEb,IAAI,SAAS,KAAK,aAAa,cAAc;CAE7C,IAAI,WAAW,SAAS,UAAU;CAElC,IAAI,kBAAkB,aAAa,cAAc;CAEjD,IAAI,UAAU,SAAS,aAAa;CAIpC,IAAI,eAAe,UAAU,IAAI,IAAI;CACrC,IAAI,iBAAiB,eAAe;CACpC,IAAI,cAAc,eAAe,IAAI,QAAQ;CAC7C,IAAI,gBAAgB,eAAe,IAAI,UAAU;CAIjD,IAAI,iBAAiB,cAAc,IAAI,IAAI;CAC3C,IAAI,mBAAmB,iBAAiB;CACxC,IAAI,gBAAgB,iBAAiB,IAAI,QAAQ;CACjD,IAAI,kBAAkB,iBAAiB,IAAI,UAAU;CAIrD,IAAI,gBAAgB;CACpB,IAAI,aAAa,OAAO;EACtB,IAAI,SAAS;GACX,GAAG,SAAS,aAAa;GACzB,GAAG,IAAI;GACP,kBAAkB;GAClB,gBAAgB;EAClB;EACA,IAAI,SAAS,eAAe;GAC1B,OAAO,SAAS,KAAK,IAAI,IAAI,cAAc,GAAG,CAAC;GAC/C,OAAO,QAAQ;EACjB;EACA,OAAO;CACT;CACA,IAAI,aAAa,UAAU;EACzB,IAAI,UAAU;GACZ,GAAG,SAAS,aAAa;GACzB,GAAG,IAAI,SAAS;GAChB,kBAAkB;GAClB,gBAAgB;EAClB;EACA,IAAI,SAAS,eAAe;GAC1B,QAAQ,SAAS,KAAK,IAAI,cAAc,IAAI,cAAc,UAAU,IAAI,SAAS,CAAC;GAClF,QAAQ,QAAQ;EAClB;EACA,OAAO;CACT;CACA,IAAI,aAAa,QAAQ;EACvB,IAAI,WAAW;GACb,GAAG,UAAU;GACb,GAAG,IAAI,SAAS;GAChB,kBAAkB;GAClB,gBAAgB;EAClB;EACA,IAAI,SAAS,eAAe;GAC1B,SAAS,QAAQ,KAAK,IAAI,SAAS,IAAI,cAAc,GAAG,CAAC;GACzD,SAAS,SAAS;EACpB;EACA,OAAO;CACT;CACA,IAAI,aAAa,SAAS;EACxB,IAAI,WAAW;GACb,GAAG,UAAU,iBAAiB;GAC9B,GAAG,IAAI,SAAS;GAChB,kBAAkB;GAClB,gBAAgB;EAClB;EACA,IAAI,SAAS,eAAe;GAC1B,SAAS,QAAQ,KAAK,IAAI,cAAc,IAAI,cAAc,QAAQ,SAAS,GAAG,CAAC;GAC/E,SAAS,SAAS;EACpB;EACA,OAAO;CACT;CACA,IAAI,YAAY,SAAS,gBAAgB;EACvC,OAAO;EACP;CACF,IAAI,CAAC;CACL,IAAI,aAAa,cACf,OAAOH,iBAAc;EACnB,GAAG,UAAU;EACb,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,eACf,OAAOA,iBAAc;EACnB,GAAG,UAAU,iBAAiB;EAC9B,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,aACf,OAAOA,iBAAc;EACnB,GAAG,SAAS,aAAa;EACzB,GAAG,IAAI;EACP,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,gBACf,OAAOA,iBAAc;EACnB,GAAG,SAAS,aAAa;EACzB,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,iBACf,OAAOA,iBAAc;EACnB,GAAG,SAAS;EACZ,GAAG,IAAI;EACP,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,kBACf,OAAOA,iBAAc;EACnB,GAAG,SAAS,aAAa;EACzB,GAAG,IAAI;EACP,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,oBACf,OAAOA,iBAAc;EACnB,GAAG,SAAS;EACZ,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,aAAa,qBACf,OAAOA,iBAAc;EACnB,GAAG,SAAS,aAAa;EACzB,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,IAAI,CAAC,CAAC,YAAY,OAAO,aAAa,aAAa,SAAS,SAAS,CAAC,KAAK,UAAU,SAAS,CAAC,OAAO,SAAS,SAAS,CAAC,KAAK,UAAU,SAAS,CAAC,IAIhJ,OAAOA,iBAAc;EACnB,GAAG,IAAI,gBAAgB,SAAS,GAAG,cAAc;EACjD,GAAG,IAAI,gBAAgB,SAAS,GAAG,MAAM;EACzC,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;CAEd,OAAOA,iBAAc;EACnB,GAAG;EACH,GAAG,IAAI,SAAS;EAChB,kBAAkB;EAClB,gBAAgB;CAClB,GAAG,SAAS;AACd;AACA,IAAI,oBAAoB;CAAC;CAAO;CAAQ;CAAS;AAAQ;AACzD,SAAgB,kBAAkB,UAAU;CAC1C,IAAI,YAAY,MACd,OAAO;CAET,IAAI,OAAO,aAAa,UACtB,OAAO;CAET,OAAO,kBAAkB,SAAS,QAAQ;AAC5C;;;ACpNA,IAAW,sBAAmC,4BAAc,IAAI;;;ACDhE,SAAA,mBAAwB,GAAG;CACzB,OAAO,SAAS,WAAW;EACzB,OAAO;CACT;AACF;;;ACJA,MAAM,KAAK,KAAK;AACZ,MAAA,MAAM,IAAI;AACV,MAAA,UAAU;AACV,MAAA,aAAa,MAAM;AAEvB,SAAS,OAAO,SAAS;CACvB,KAAK,KAAK,QAAQ;CAClB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAI,GAAG,EAAE,GAC3C,KAAK,KAAK,UAAU,KAAK,QAAQ;AAErC;AAEA,SAAS,YAAY,QAAQ;CAC3B,IAAI,IAAI,KAAK,MAAM,MAAM;CACzB,IAAI,EAAE,KAAK,IAAI,MAAM,IAAI,MAAM,mBAAmB,QAAQ;CAC1D,IAAI,IAAI,IAAI,OAAO;CACnB,MAAM,IAAI,MAAM;CAChB,OAAO,SAAS,SAAS;EACvB,KAAK,KAAK,QAAQ;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAI,GAAG,EAAE,GAC3C,KAAK,KAAK,KAAK,MAAM,UAAU,KAAK,CAAC,IAAI,IAAI,QAAQ;CAEzD;AACF;AAEA,IAAa,OAAb,MAAkB;CAChB,YAAY,QAAQ;EAClB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAAM;EACtB,KAAK,IAAI;EACT,KAAK,UAAU,UAAU,OAAO,SAAS,YAAY,MAAM;CAC7D;CACA,OAAO,GAAG,GAAG;EACX,KAAK,OAAO,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC;CACrE;CACA,YAAY;EACV,IAAI,KAAK,QAAQ,MAAM;GACrB,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK;GACrC,KAAK,OAAO;EACd;CACF;CACA,OAAO,GAAG,GAAG;EACX,KAAK,OAAO,IAAI,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CAC/C;CACA,iBAAiB,IAAI,IAAI,GAAG,GAAG;EAC7B,KAAK,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CAC7D;CACA,cAAc,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG;EAClC,KAAK,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CAC3E;CACA,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG;EACvB,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;EAG7C,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,oBAAoB,GAAG;EAElD,IAAI,KAAK,KAAK,KACV,KAAK,KAAK,KACV,MAAM,KAAK,IACX,MAAM,KAAK,IACX,MAAM,KAAK,IACX,MAAM,KAAK,IACX,QAAQ,MAAM,MAAM,MAAM;EAG9B,IAAI,KAAK,QAAQ,MACf,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,MAAM;OAIzC,IAAI,EAAE,QAAQ;OAKd,IAAI,EAAE,KAAK,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GACxD,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,MAAM;OAIzC;GACH,IAAI,MAAM,KAAK,IACX,MAAM,KAAK,IACX,QAAQ,MAAM,MAAM,MAAM,KAC1B,QAAQ,MAAM,MAAM,MAAM,KAC1B,MAAM,KAAK,KAAK,KAAK,GACrB,MAAM,KAAK,KAAK,KAAK,GACrB,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,QAAQ,QAAQ,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,GAChF,MAAM,IAAI,KACV,MAAM,IAAI;GAGd,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,SACtB,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;GAG/C,KAAK,OAAO,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,KAAK,MAAM;EAC/G;CACF;CACA,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK;EACxB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;EAGhC,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,oBAAoB,GAAG;EAElD,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,GACpB,KAAK,IAAI,KAAK,IAAI,EAAE,GACpB,KAAK,IAAI,IACT,KAAK,IAAI,IACT,KAAK,IAAI,KACT,KAAK,MAAM,KAAK,KAAK,KAAK;EAG9B,IAAI,KAAK,QAAQ,MACf,KAAK,OAAO,IAAI,GAAG,GAAG;OAInB,IAAI,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI,SACtE,KAAK,OAAO,IAAI,GAAG,GAAG;EAIxB,IAAI,CAAC,GAAG;EAGR,IAAI,KAAK,GAAG,KAAK,KAAK,MAAM;EAG5B,IAAI,KAAK,YACP,KAAK,OAAO,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,KAAK,MAAM,GAAG,GAAG,KAAK,MAAM;OAIrG,IAAI,KAAK,SACZ,KAAK,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,GAAG,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;CAEtH;CACA,KAAK,GAAG,GAAG,GAAG,GAAG;EACf,KAAK,OAAO,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,KAAK,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;CAC7F;CACA,WAAW;EACT,OAAO,KAAK;CACd;AACF;AAEA,SAAgB,OAAO;CACrB,OAAO,IAAI,KAAG;AAChB;AAGA,KAAK,YAAY,KAAK;;;ACrJtB,SAAgB,SAAS,OAAO;CAC9B,IAAI,SAAS;CAEb,MAAM,SAAS,SAAS,GAAG;EACzB,IAAI,CAAC,UAAU,QAAQ,OAAO;EAC9B,IAAI,KAAK,MACP,SAAS;OACJ;GACL,MAAM,IAAI,KAAK,MAAM,CAAC;GACtB,IAAI,EAAE,KAAK,IAAI,MAAM,IAAI,WAAW,mBAAmB,GAAG;GAC1D,SAAS;EACX;EACA,OAAO;CACT;CAEA,aAAa,IAAI,KAAK,MAAM;AAC9B;AClBmB,MAAM,UAAU;AAEnC,SAAA,cAAwB,GAAG;CACzB,OAAO,OAAO,MAAM,YAAY,YAAY,IACxC,IACA,MAAM,KAAK,CAAC;AAClB;;;ACNA,SAAS,OAAO,SAAS;CACvB,KAAK,WAAW;AAClB;AAEA,OAAO,YAAY;CACjB,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,OAAO,GAAG,CAAC;IAAG;GAC/F,KAAK,GAAG,KAAK,SAAS;GACtB,SAAS,KAAK,SAAS,OAAO,GAAG,CAAC;EACpC;CACF;AACF;AAEA,SAAA,eAAwB,SAAS;CAC/B,OAAO,IAAI,OAAO,OAAO;AAC3B;;;AC9BA,SAAgB,EAAE,GAAG;CACnB,OAAO,EAAE;AACX;AAEA,SAAgB,EAAE,GAAG;CACnB,OAAO,EAAE;AACX;;;ACAA,SAAA,aAAwB,KAAG,KAAG;CAC5B,IAAI,UAAUI,mBAAS,IAAI,GACvB,UAAU,MACV,QAAQC,gBACR,SAAS,MACT,OAAO,SAAS,IAAI;CAExB,MAAI,OAAOC,QAAM,aAAaA,MAAKA,QAAM,KAAA,IAAaC,IAASH,mBAASE,GAAC;CACzE,MAAI,OAAOE,QAAM,aAAaA,MAAKA,QAAM,KAAA,IAAaC,IAASL,mBAASI,GAAC;CAEzE,SAAS,KAAK,MAAM;EAClB,IAAI,GACA,KAAK,OAAOE,cAAM,IAAI,EAAA,CAAG,QACzB,GACA,WAAW,OACX;EAEJ,IAAI,WAAW,MAAM,SAAS,MAAM,SAAS,KAAK,CAAC;EAEnD,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG;GACvB,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG,IAAI,OAAO,UAAU;IAC1D,IAAI,WAAW,CAAC,UAAU,OAAO,UAAU;SACtC,OAAO,QAAQ;GACtB;GACA,IAAI,UAAU,OAAO,MAAM,CAACJ,IAAE,GAAG,GAAG,IAAI,GAAG,CAACE,IAAE,GAAG,GAAG,IAAI,CAAC;EAC3D;EAEA,IAAI,QAAQ,OAAO,SAAS,MAAM,SAAS,MAAM;CACnD;CAEA,KAAK,IAAI,SAAS,GAAG;EACnB,OAAO,UAAU,UAAU,MAAI,OAAO,MAAM,aAAa,IAAIJ,mBAAS,CAAC,CAAC,GAAG,QAAQE;CACrF;CAEA,KAAK,IAAI,SAAS,GAAG;EACnB,OAAO,UAAU,UAAU,MAAI,OAAO,MAAM,aAAa,IAAIF,mBAAS,CAAC,CAAC,GAAG,QAAQI;CACrF;CAEA,KAAK,UAAU,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,UAAU,OAAO,MAAM,aAAa,IAAIJ,mBAAS,CAAC,CAAC,CAAC,GAAG,QAAQ;CAC5F;CAEA,KAAK,QAAQ,SAAS,GAAG;EACvB,OAAO,UAAU,UAAU,QAAQ,GAAG,WAAW,SAAS,SAAS,MAAM,OAAO,IAAI,QAAQ;CAC9F;CAEA,KAAK,UAAU,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,KAAK,OAAO,UAAU,SAAS,OAAO,SAAS,MAAM,UAAU,CAAC,GAAG,QAAQ;CACxG;CAEA,OAAO;AACT;;;AClDA,SAAA,aAAwB,IAAI,IAAI,IAAI;CAClC,IAAI,KAAK,MACL,UAAUO,mBAAS,IAAI,GACvB,UAAU,MACV,QAAQC,gBACR,SAAS,MACT,OAAO,SAAS,IAAI;CAExB,KAAK,OAAO,OAAO,aAAa,KAAM,OAAO,KAAA,IAAaC,IAASF,mBAAS,CAAC,EAAE;CAC/E,KAAK,OAAO,OAAO,aAAa,KAAM,OAAO,KAAA,IAAaA,mBAAS,CAAC,IAAIA,mBAAS,CAAC,EAAE;CACpF,KAAK,OAAO,OAAO,aAAa,KAAM,OAAO,KAAA,IAAaG,IAASH,mBAAS,CAAC,EAAE;CAE/E,SAAS,KAAK,MAAM;EAClB,IAAI,GACA,GACA,GACA,KAAK,OAAOI,cAAM,IAAI,EAAA,CAAG,QACzB,GACA,WAAW,OACX,QACA,MAAM,IAAI,MAAM,CAAC,GACjB,MAAM,IAAI,MAAM,CAAC;EAErB,IAAI,WAAW,MAAM,SAAS,MAAM,SAAS,KAAK,CAAC;EAEnD,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG;GACvB,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG,IAAI,OAAO,UAAU;IAC1D,IAAI,WAAW,CAAC,UAAU;KACxB,IAAI;KACJ,OAAO,UAAU;KACjB,OAAO,UAAU;IACnB,OAAO;KACL,OAAO,QAAQ;KACf,OAAO,UAAU;KACjB,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,GACxB,OAAO,MAAM,IAAI,IAAI,IAAI,EAAE;KAE7B,OAAO,QAAQ;KACf,OAAO,QAAQ;IACjB;GACF;GACA,IAAI,UAAU;IACZ,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI;IACjD,OAAO,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE;GAC3E;EACF;EAEA,IAAI,QAAQ,OAAO,SAAS,MAAM,SAAS,MAAM;CACnD;CAEA,SAAS,WAAW;EAClB,OAAOC,aAAK,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,OAAO;CAC7D;CAEA,KAAK,IAAI,SAAS,GAAG;EACnB,OAAO,UAAU,UAAU,KAAK,OAAO,MAAM,aAAa,IAAIL,mBAAS,CAAC,CAAC,GAAG,KAAK,MAAM,QAAQ;CACjG;CAEA,KAAK,KAAK,SAAS,GAAG;EACpB,OAAO,UAAU,UAAU,KAAK,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,QAAQ;CACtF;CAEA,KAAK,KAAK,SAAS,GAAG;EACpB,OAAO,UAAU,UAAU,KAAK,KAAK,OAAO,OAAO,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,QAAQ;CACzG;CAEA,KAAK,IAAI,SAAS,GAAG;EACnB,OAAO,UAAU,UAAU,KAAK,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,KAAK,MAAM,QAAQ;CACjG;CAEA,KAAK,KAAK,SAAS,GAAG;EACpB,OAAO,UAAU,UAAU,KAAK,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,QAAQ;CACtF;CAEA,KAAK,KAAK,SAAS,GAAG;EACpB,OAAO,UAAU,UAAU,KAAK,KAAK,OAAO,OAAO,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,QAAQ;CACzG;CAEA,KAAK,SACL,KAAK,SAAS,WAAW;EACvB,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;CAC9B;CAEA,KAAK,SAAS,WAAW;EACvB,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;CAC9B;CAEA,KAAK,SAAS,WAAW;EACvB,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;CAC9B;CAEA,KAAK,UAAU,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,UAAU,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,CAAC,GAAG,QAAQ;CAC5F;CAEA,KAAK,QAAQ,SAAS,GAAG;EACvB,OAAO,UAAU,UAAU,QAAQ,GAAG,WAAW,SAAS,SAAS,MAAM,OAAO,IAAI,QAAQ;CAC9F;CAEA,KAAK,UAAU,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,KAAK,OAAO,UAAU,SAAS,OAAO,SAAS,MAAM,UAAU,CAAC,GAAG,QAAQ;CACxG;CAEA,OAAO;AACT;;;AC7GA,IAAM,OAAN,MAAW;CACT,YAAY,SAAS,GAAG;EACtB,KAAK,WAAW;EAChB,KAAK,KAAK;CACZ;CACA,YAAY;EACV,KAAK,QAAQ;CACf;CACA,UAAU;EACR,KAAK,QAAQ;CACf;CACA,YAAY;EACV,KAAK,SAAS;CAChB;CACA,UAAU;EACR,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,MAAM,GAAG,GAAG;EACV,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IACH,KAAK,SAAS;IACd,IAAI,KAAK,OAAO,KAAK,SAAS,OAAO,GAAG,CAAC;SACpC,KAAK,SAAS,OAAO,GAAG,CAAC;IAC9B;GAEF,KAAK,GAAG,KAAK,SAAS;GACtB,SACE,IAAI,KAAK,IAAI,KAAK,SAAS,cAAc,KAAK,OAAO,KAAK,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,CAAC;QAC9F,KAAK,SAAS,cAAc,KAAK,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC;EAG/F;EACA,KAAK,MAAM,GAAG,KAAK,MAAM;CAC3B;AACF;AA0BA,SAAgB,MAAM,SAAS;CAC7B,OAAO,IAAI,KAAK,SAAS,IAAI;AAC/B;AAEA,SAAgB,MAAM,SAAS;CAC7B,OAAO,IAAI,KAAK,SAAS,KAAK;AAChC;;;ACtEA,SAAA,eAA0B,CAAC;;;ACA3B,SAAgBM,QAAM,MAAM,GAAG,GAAG;CAChC,KAAK,SAAS,eACX,IAAI,KAAK,MAAM,KAAK,OAAO,IAC3B,IAAI,KAAK,MAAM,KAAK,OAAO,IAC3B,KAAK,MAAM,IAAI,KAAK,OAAO,IAC3B,KAAK,MAAM,IAAI,KAAK,OAAO,IAC3B,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,IAC/B,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,CAClC;AACF;AAEA,SAAgB,MAAM,SAAS;CAC7B,KAAK,WAAW;AAClB;AAEA,MAAM,YAAY;CAChB,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAAM;EACtB,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,QAAQ,KAAK,QAAb;GACE,KAAK,GAAG,QAAM,MAAM,KAAK,KAAK,KAAK,GAAG;GACtC,KAAK,GAAG,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;EACjD;EACA,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,OAAO,GAAG,CAAC;IAAG;GAC/F,KAAK;IAAG,KAAK,SAAS;IAAG;GACzB,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,SAAS,QAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC;GAC1G,SAAS,QAAM,MAAM,GAAG,CAAC;EAC3B;EACA,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;EAChC,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;CAClC;AACF;AAEA,SAAA,gBAAwB,SAAS;CAC/B,OAAO,IAAI,MAAM,OAAO;AAC1B;;;AC/CA,SAAS,YAAY,SAAS;CAC5B,KAAK,WAAW;AAClB;AAEA,YAAY,YAAY;CACtB,WAAWC;CACX,SAASA;CACT,WAAW,WAAW;EACpB,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MACjD,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;EACvD,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,QAAQ,KAAK,QAAb;GACE,KAAK;IACH,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;IACvC,KAAK,SAAS,UAAU;IACxB;GAEF,KAAK;IACH,KAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC;IACjF,KAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC;IACjF,KAAK,SAAS,UAAU;IACxB;GAEF,KAAK;IACH,KAAK,MAAM,KAAK,KAAK,KAAK,GAAG;IAC7B,KAAK,MAAM,KAAK,KAAK,KAAK,GAAG;IAC7B,KAAK,MAAM,KAAK,KAAK,KAAK,GAAG;EAGjC;CACF;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,MAAM,GAAG,KAAK,MAAM;IAAG;GACrD,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,MAAM,GAAG,KAAK,MAAM;IAAG;GACrD,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,MAAM,GAAG,KAAK,MAAM;IAAG,KAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,CAAC;IAAG;GACjJ,SAAS,QAAM,MAAM,GAAG,CAAC;EAC3B;EACA,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;EAChC,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;CAClC;AACF;AAEA,SAAA,sBAAwB,SAAS;CAC/B,OAAO,IAAI,YAAY,OAAO;AAChC;;;ACjDA,SAAS,UAAU,SAAS;CAC1B,KAAK,WAAW;AAClB;AAEA,UAAU,YAAY;CACpB,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAAM;EACtB,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG;GACzB,KAAK;IAAG,KAAK,SAAS;IAAG;GACzB,KAAK;IAAG,KAAK,SAAS;IAAG,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK;IAAG,KAAK,QAAQ,KAAK,SAAS,OAAO,IAAI,EAAE,IAAI,KAAK,SAAS,OAAO,IAAI,EAAE;IAAG;GACvL,KAAK,GAAG,KAAK,SAAS;GACtB,SAAS,QAAM,MAAM,GAAG,CAAC;EAC3B;EACA,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;EAChC,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;CAClC;AACF;AAEA,SAAA,kBAAwB,SAAS;CAC/B,OAAO,IAAI,UAAU,OAAO;AAC9B;;;ACpCA,SAAS,aAAa,SAAS;CAC7B,KAAK,WAAW;AAClB;AAEA,aAAa,YAAY;CACvB,WAAWC;CACX,SAASA;CACT,WAAW,WAAW;EACpB,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,IAAI,KAAK,QAAQ,KAAK,SAAS,UAAU;CAC3C;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,IAAI,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC;OACrC,KAAK,SAAS,GAAG,KAAK,SAAS,OAAO,GAAG,CAAC;CACjD;AACF;AAEA,SAAA,qBAAwB,SAAS;CAC/B,OAAO,IAAI,aAAa,OAAO;AACjC;;;ACxBA,SAAS,KAAK,GAAG;CACf,OAAO,IAAI,IAAI,KAAK;AACtB;AAMA,SAAS,OAAO,MAAM,IAAI,IAAI;CAC5B,IAAI,KAAK,KAAK,MAAM,KAAK,KACrB,KAAK,KAAK,KAAK,KACf,MAAM,KAAK,MAAM,KAAK,QAAQ,MAAM,KAAK,KAAK,KAC9C,MAAM,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,KACxC,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK;CACpC,QAAQ,KAAK,EAAE,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAM,KAAK,IAAI,CAAC,CAAC,KAAK;AAC5F;AAGA,SAAS,OAAO,MAAM,GAAG;CACvB,IAAI,IAAI,KAAK,MAAM,KAAK;CACxB,OAAO,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI;AACvD;AAKA,SAASC,QAAM,MAAM,IAAI,IAAI;CAC3B,IAAI,KAAK,KAAK,KACV,KAAK,KAAK,KACV,KAAK,KAAK,KACV,KAAK,KAAK,KACV,MAAM,KAAK,MAAM;CACrB,KAAK,SAAS,cAAc,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE;AAClF;AAEA,SAAS,UAAU,SAAS;CAC1B,KAAK,WAAW;AAClB;AAEA,UAAU,YAAY;CACpB,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM;EACX,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;IAAG;GAClD,KAAK,GAAG,QAAM,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK,GAAG,CAAC;EACtD;EACA,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,KAAK;EAET,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,IAAI,MAAM,KAAK,OAAO,MAAM,KAAK,KAAK;EACtC,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,OAAO,GAAG,CAAC;IAAG;GAC/F,KAAK;IAAG,KAAK,SAAS;IAAG;GACzB,KAAK;IAAG,KAAK,SAAS;IAAG,QAAM,MAAM,OAAO,MAAM,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;IAAG;GACjF,SAAS,QAAM,MAAM,KAAK,KAAK,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC;EACxD;EAEA,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;EAChC,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;EAChC,KAAK,MAAM;CACb;AACF;AAEA,SAAS,UAAU,SAAS;CAC1B,KAAK,WAAW,IAAI,eAAe,OAAO;AAC5C;AAEA,CAAC,UAAU,YAAY,OAAO,OAAO,UAAU,SAAS,EAAA,CAAG,QAAQ,SAAS,GAAG,GAAG;CAChF,UAAU,UAAU,MAAM,KAAK,MAAM,GAAG,CAAC;AAC3C;AAEA,SAAS,eAAe,SAAS;CAC/B,KAAK,WAAW;AAClB;AAEA,eAAe,YAAY;CACzB,QAAQ,SAAS,GAAG,GAAG;EAAE,KAAK,SAAS,OAAO,GAAG,CAAC;CAAG;CACrD,WAAW,WAAW;EAAE,KAAK,SAAS,UAAU;CAAG;CACnD,QAAQ,SAAS,GAAG,GAAG;EAAE,KAAK,SAAS,OAAO,GAAG,CAAC;CAAG;CACrD,eAAe,SAAS,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG;EAAE,KAAK,SAAS,cAAc,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC;CAAG;AACrG;AAEA,SAAgB,UAAU,SAAS;CACjC,OAAO,IAAI,UAAU,OAAO;AAC9B;AAEA,SAAgB,UAAU,SAAS;CACjC,OAAO,IAAI,UAAU,OAAO;AAC9B;;;ACvGA,SAAS,QAAQ,SAAS;CACxB,KAAK,WAAW;AAClB;AAEA,QAAQ,YAAY;CAClB,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,KAAK,CAAC;EACX,KAAK,KAAK,CAAC;CACb;CACA,SAAS,WAAW;EAClB,IAAI,IAAI,KAAK,IACT,IAAI,KAAK,IACT,IAAI,EAAE;EAEV,IAAI,GAAG;GACL,KAAK,QAAQ,KAAK,SAAS,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,SAAS,OAAO,EAAE,IAAI,EAAE,EAAE;GAC/E,IAAI,MAAM,GACR,KAAK,SAAS,OAAO,EAAE,IAAI,EAAE,EAAE;QAC1B;IACL,IAAI,KAAK,cAAc,CAAC,GACpB,KAAK,cAAc,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,IACvC,KAAK,SAAS,cAAc,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG;GAExF;EACF;EAEA,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,MAAM,GAAI,KAAK,SAAS,UAAU;EACzE,KAAK,QAAQ,IAAI,KAAK;EACtB,KAAK,KAAK,KAAK,KAAK;CACtB;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,KAAK,GAAG,KAAK,CAAC,CAAC;EACf,KAAK,GAAG,KAAK,CAAC,CAAC;CACjB;AACF;AAGA,SAAS,cAAc,GAAG;CACxB,IAAI,GACA,IAAI,EAAE,SAAS,GACf,GACA,IAAI,IAAI,MAAM,CAAC,GACf,IAAI,IAAI,MAAM,CAAC,GACf,IAAI,IAAI,MAAM,CAAC;CACnB,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;CACxC,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,IAAI;CAC5E,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE;CACxD,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI;CAC1E,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI;CAC5B,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE;CAC1D,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM;CAC/B,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE,IAAI;CACxD,OAAO,CAAC,GAAG,CAAC;AACd;AAEA,SAAA,gBAAwB,SAAS;CAC/B,OAAO,IAAI,QAAQ,OAAO;AAC5B;;;AChEA,SAAS,KAAK,SAAS,GAAG;CACxB,KAAK,WAAW;CAChB,KAAK,KAAK;AACZ;AAEA,KAAK,YAAY;CACf,WAAW,WAAW;EACpB,KAAK,QAAQ;CACf;CACA,SAAS,WAAW;EAClB,KAAK,QAAQ;CACf;CACA,WAAW,WAAW;EACpB,KAAK,KAAK,KAAK,KAAK;EACpB,KAAK,SAAS;CAChB;CACA,SAAS,WAAW;EAClB,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,WAAW,GAAG,KAAK,SAAS,OAAO,KAAK,IAAI,KAAK,EAAE;EAC1F,IAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,GAAI,KAAK,SAAS,UAAU;EACnF,IAAI,KAAK,SAAS,GAAG,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAK;CACpE;CACA,OAAO,SAAS,GAAG,GAAG;EACpB,IAAI,CAAC,GAAG,IAAI,CAAC;EACb,QAAQ,KAAK,QAAb;GACE,KAAK;IAAG,KAAK,SAAS;IAAG,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,CAAC,IAAI,KAAK,SAAS,OAAO,GAAG,CAAC;IAAG;GAC/F,KAAK,GAAG,KAAK,SAAS;GACtB,SACE,IAAI,KAAK,MAAM,GAAG;IAChB,KAAK,SAAS,OAAO,KAAK,IAAI,CAAC;IAC/B,KAAK,SAAS,OAAO,GAAG,CAAC;GAC3B,OAAO;IACL,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK;IAC5C,KAAK,SAAS,OAAO,IAAI,KAAK,EAAE;IAChC,KAAK,SAAS,OAAO,IAAI,CAAC;GAC5B;EAGJ;EACA,KAAK,KAAK,GAAG,KAAK,KAAK;CACzB;AACF;AAEA,SAAA,aAAwB,SAAS;CAC/B,OAAO,IAAI,KAAK,SAAS,EAAG;AAC9B;AAEA,SAAgB,WAAW,SAAS;CAClC,OAAO,IAAI,KAAK,SAAS,CAAC;AAC5B;AAEA,SAAgB,UAAU,SAAS;CACjC,OAAO,IAAI,KAAK,SAAS,CAAC;AAC5B;;;ACpDA,SAAA,eAAwB,QAAQ,OAAO;CACrC,IAAI,GAAG,IAAI,OAAO,UAAU,IAAI;CAChC,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,OAAO,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,IAAI,GAAG,EAAE,GAAG;EAC1E,KAAK,IAAI,KAAK,OAAO,MAAM;EAC3B,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GACnB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;CAE9D;AACF;;;ACRA,SAAA,aAAwB,QAAQ;CAC9B,IAAI,IAAI,OAAO,QAAQ,IAAI,IAAI,MAAM,CAAC;CACtC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK;CACxB,OAAO;AACT;;;ACCA,SAAS,WAAW,GAAG,KAAK;CAC1B,OAAO,EAAE;AACX;AAEA,SAAS,YAAY,KAAK;CACxB,MAAM,SAAS,CAAC;CAChB,OAAO,MAAM;CACb,OAAO;AACT;AAEA,SAAA,gBAA0B;CACxB,IAAI,OAAOC,mBAAS,CAAC,CAAC,GAClB,QAAQC,cACR,SAASC,gBACT,QAAQ;CAEZ,SAAS,MAAM,MAAM;EACnB,IAAI,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,SAAS,GAAG,WAAW,GACxD,GAAG,IAAI,GAAG,QAAQ,IAAI,IACtB;EAEJ,KAAK,MAAM,KAAK,MACd,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GACxB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,EAAA,CAAG,OAAO;EAI3D,KAAK,IAAI,GAAG,KAAKC,cAAM,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAC1C,GAAG,GAAG,GAAG,CAAC,QAAQ;EAGpB,OAAO,IAAI,EAAE;EACb,OAAO;CACT;CAEA,MAAM,OAAO,SAAS,GAAG;EACvB,OAAO,UAAU,UAAU,OAAO,OAAO,MAAM,aAAa,IAAIH,mBAAS,MAAM,KAAK,CAAC,CAAC,GAAG,SAAS;CACpG;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,OAAO,MAAM,aAAa,IAAIA,mBAAS,CAAC,CAAC,GAAG,SAAS;CAC1F;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,KAAK,OAAOC,eAAY,OAAO,MAAM,aAAa,IAAID,mBAAS,MAAM,KAAK,CAAC,CAAC,GAAG,SAAS;CAC7H;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,SAAS,KAAK,OAAOE,iBAAa,GAAG,SAAS;CAC3E;CAEA,OAAO;AACT;;;ACvDA,SAAA,eAAwB,QAAQ,OAAO;CACrC,IAAI,GAAG,IAAI,OAAO,UAAU,IAAI;CAChC,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,GAAG;EACzD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM;EACpD,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM;CACpD;CACA,eAAK,QAAQ,KAAK;AACpB;;;ACPA,SAAA,mBAAwB,QAAQ,OAAO;CACrC,IAAI,GAAG,IAAI,OAAO,UAAU,IAAI;CAChC,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,IAAI,GAAG,EAAE,GAAG;EACnE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM;EAC3D,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;CAC9B;CACA,eAAK,QAAQ,KAAK;AACpB;;;ACPA,SAAA,eAAwB,QAAQ,OAAO;CACrC,IAAI,GAAG,IAAI,OAAO,UAAU,MAAM,GAAG,KAAK,KAAK,OAAO,MAAM,IAAA,CAAK,UAAU,IAAI;CAC/E,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG;EAC3C,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG;GAC1C,IAAI,KAAK,OAAO,MAAM,KAClB,OAAO,GAAG,EAAE,CAAC,MAAM,GAEnB,MAAM,QADC,GAAG,IAAI,EAAE,CAAC,MAAM,MACF;GACzB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;IAC1B,IAAI,KAAK,OAAO,MAAM,KAClB,OAAO,GAAG,EAAE,CAAC,MAAM,GACnB,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM;IAC3B,MAAM,OAAO;GACf;GACA,MAAM,MAAM,MAAM,KAAK;EACzB;EACA,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK;EAC/B,IAAI,IAAI,KAAK,KAAK;CACpB;CACA,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK;CAC/B,eAAK,QAAQ,KAAK;AACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgDA,IAAW,qBAAoB,MAAK;CAClC,OAAO,YAAY,KAAK,gBAAgB,KAAK,cAAc;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,IAAW,sBAAsB,OAAO,eAAe;CACrD,IAAI,CAAC,SAAS,OAAO,UAAU,cAAc,OAAO,UAAU,WAC5D,OAAO;CAET,IAAI,aAAa;CACjB,IAAiB,6BAAe,KAAK,GACnC,aAAa,MAAM;CAErB,IAAI,OAAO,eAAe,YAAY,OAAO,eAAe,YAC1D,OAAO;CAET,IAAI,MAAM,CAAC;CACX,OAAO,KAAK,UAAU,CAAC,CAAC,SAAQ,QAAO;EACrC,IAAI,WAAW,GAAG,KAAK,OAAO,WAAW,SAAS,YAChD,IAAI,OAAO,gBAAe,MAAK,WAAW,IAAI,CAAC,YAAY,CAAC;CAEhE,CAAC;CACD,OAAO;AACT;AACA,IAAI,0BAA0B,iBAAiB,MAAM,WAAU,MAAK;CAClE,gBAAgB,MAAM,OAAO,CAAC;CAC9B,OAAO;AACT;AACA,IAAW,sBAAsB,OAAO,MAAM,UAAU;CACtD,IAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,UAAU,YAClE,OAAO;CAET,IAAI,MAAM;CACV,OAAO,KAAK,KAAK,CAAC,CAAC,SAAQ,QAAO;EAChC,IAAI,OAAO,MAAM;EACjB,IAAI,WAAW,GAAG,KAAK,OAAO,SAAS,YAAY;GACjD,IAAI,CAAC,KAAK,MAAM,CAAC;GACjB,IAAI,OAAO,uBAAuB,MAAM,MAAM,KAAK;EACrD;CACF,CAAC;CACD,OAAO;AACT;;;ACrMA,SAASE,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;;;;;;;;;;;;;AAgBvT,SAAgB,oBAAoB,WAAW,cAAc;CAK3D,IAAI,gBAAgBH,iBAAc,CAAC,GAAG,SAAS;CAO/C,IAAI,KAAK;CAqBT,OAXW,OAAO,KAAK,YACD,CAAC,CAAC,QAAQ,KAAK,QAAQ;EAC3C,IAAI,IAAI,SAAS,KAAA,KAAa,GAAG,SAAS,KAAA,GACxC,IAAI,OAAO,GAAG;EAEhB,OAAO;CACT,GAAG,aAKe;AACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA,SAASI,SAAO,KAAK,QAAQ;CAC5B,MAAM,sBAAsB,IAAI,IAAI;CACpC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;EACpC,MAAM,OAAO,IAAI;EACjB,MAAM,MAAM,OAAO,MAAM,GAAG,GAAG;EAC/B,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI;CACrC;CACA,OAAO,MAAM,KAAK,IAAI,OAAO,CAAC;AAC/B;;;;;;;;;;;;;;;;;;;;;AClBA,SAAS,IAAI,MAAM,GAAG;CACrB,OAAO,SAAS,GAAG,MAAM;EACxB,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC;CACzC;AACD;;;;;;;;;;;;;;;;;;;;;;ACHA,SAASC,WAAS,GAAG;CACpB,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;ACAA,SAAS,SAAS,OAAO;CACxB,OAAO,OAAO,cAAc,KAAK,KAAK,SAAS;AAChD;;;;;;;;;;;;;;;;;ACRA,SAAS,YAAY,OAAO;CAC3B,OAAO,SAAS,QAAQ,OAAO,UAAU,cAAc,SAAS,MAAM,MAAM;AAC7E;;;;;;;;;;;;;;;;;;;;;ACEA,SAAS,SAAS,MAAM;CACvB,OAAO,SAAS,QAAQ;EACvB,OAAOC,MAAI,QAAQ,IAAI;CACxB;AACD;;;;;;;;;;;;;;;;;;;;;;;;ACFA,SAAS,YAAY,OAAO;CAC3B,OAAO,SAAS,QAAQ,OAAO,UAAU,YAAY,OAAO,UAAU;AACvE;;;;;;;;;;;;;;;;;;ACRA,SAAS,aAAa,GAAG;CACxB,OAAO,YAAY,OAAO,CAAC,KAAK,EAAE,aAAa;AAChD;;;ACjBA,SAAS,WAAW,QAAQ;CAC3B,OAAO,OAAO,sBAAsB,MAAM,CAAC,CAAC,QAAQ,WAAW,OAAO,UAAU,qBAAqB,KAAK,QAAQ,MAAM,CAAC;AAC1H;;;;;;;;;;ACKA,SAAS,OAAO,OAAO;CACtB,IAAI,SAAS,MAAM,OAAO,UAAU,KAAK,IAAI,uBAAuB;CACpE,OAAO,OAAO,UAAU,SAAS,KAAK,KAAK;AAC5C;;;ACVA,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,SAAS;AACf,MAAM,SAAS;AACf,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,gBAAgB;AACtB,MAAM,uBAAuB;AAC7B,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;;;ACzBxB,MAAM,cAAc,OAAO,eAAe,YAAY,cAAc,OAAO,WAAW,YAAY,UAAU,OAAO,SAAS,YAAY,QAAQ,OAAO,WAAW,YAAY,WAAW,WAAW;CACnM,OAAO;AACR,EAAA,CAAG;;;;;;;;;;;;;;;;;;;;;ACiBH,SAAS,SAAS,GAAG;CACpB,OAAO,OAAO,YAAY,WAAW,eAAe,YAAY,OAAO,SAAS,CAAC;AAClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC2BA,SAASC,gBAAc,KAAK,YAAY;CACvC,OAAO,kBAAkB,KAAK,KAAK,GAAG,qBAAqB,IAAI,IAAI,GAAG,UAAU;AACjF;AACA,SAAS,kBAAkB,cAAc,YAAY,eAAe,wBAAwB,IAAI,IAAI,GAAG,aAAa,KAAK,GAAG;CAC3H,MAAM,SAAS,aAAa,cAAc,YAAY,eAAe,KAAK;CAC1E,IAAI,WAAW,KAAK,GAAG,OAAO;CAC9B,IAAI,YAAY,YAAY,GAAG,OAAO;CACtC,IAAI,MAAM,IAAI,YAAY,GAAG,OAAO,MAAM,IAAI,YAAY;CAC1D,IAAI,MAAM,QAAQ,YAAY,GAAG;EAChC,MAAM,SAAS,IAAI,MAAM,aAAa,MAAM;EAC5C,MAAM,IAAI,cAAc,MAAM;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,OAAO,KAAK,kBAAkB,aAAa,IAAI,GAAG,eAAe,OAAO,UAAU;EAChI,IAAI,OAAO,OAAO,cAAc,OAAO,GAAG,OAAO,QAAQ,aAAa;EACtE,IAAI,OAAO,OAAO,cAAc,OAAO,GAAG,OAAO,QAAQ,aAAa;EACtE,OAAO;CACR;CACA,IAAI,wBAAwB,MAAM,OAAO,IAAI,KAAK,aAAa,QAAQ,CAAC;CACxE,IAAI,wBAAwB,QAAQ;EACnC,MAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,aAAa,KAAK;EACjE,OAAO,YAAY,aAAa;EAChC,OAAO;CACR;CACA,IAAI,wBAAwB,KAAK;EAChC,MAAM,yBAAyB,IAAI,IAAI;EACvC,MAAM,IAAI,cAAc,MAAM;EAC9B,KAAK,MAAM,CAAC,KAAK,UAAU,cAAc,OAAO,IAAI,KAAK,kBAAkB,OAAO,KAAK,eAAe,OAAO,UAAU,CAAC;EACxH,OAAO;CACR;CACA,IAAI,wBAAwB,KAAK;EAChC,MAAM,yBAAyB,IAAI,IAAI;EACvC,MAAM,IAAI,cAAc,MAAM;EAC9B,KAAK,MAAM,SAAS,cAAc,OAAO,IAAI,kBAAkB,OAAO,KAAK,GAAG,eAAe,OAAO,UAAU,CAAC;EAC/G,OAAO;CACR;CACA,IAAI,SAAS,YAAY,GAAG,OAAO,aAAa,SAAS;CACzD,IAAI,aAAa,YAAY,GAAG;EAC/B,MAAM,SAAS,KAAK,OAAO,eAAe,YAAY,EAAA,CAAG,YAAY,aAAa,MAAM;EACxF,MAAM,IAAI,cAAc,MAAM;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,OAAO,KAAK,kBAAkB,aAAa,IAAI,GAAG,eAAe,OAAO,UAAU;EAChI,OAAO;CACR;CACA,IAAI,wBAAwB,eAAe,OAAO,sBAAsB,eAAe,wBAAwB,mBAAmB,OAAO,aAAa,MAAM,CAAC;CAC7J,IAAI,wBAAwB,UAAU;EACrC,MAAM,SAAS,IAAI,SAAS,aAAa,OAAO,MAAM,CAAC,GAAG,aAAa,YAAY,aAAa,UAAU;EAC1G,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,OAAO,SAAS,eAAe,wBAAwB,MAAM;EAChE,MAAM,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,aAAa,MAAM,EAAE,MAAM,aAAa,KAAK,CAAC;EACtF,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,OAAO,SAAS,eAAe,wBAAwB,MAAM;EAChE,MAAM,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,EAAE,MAAM,aAAa,KAAK,CAAC;EACnE,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,wBAAwB,OAAO;EAClC,MAAM,SAAS,gBAAgB,YAAY;EAC3C,MAAM,IAAI,cAAc,MAAM;EAC9B,OAAO,UAAU,aAAa;EAC9B,OAAO,OAAO,aAAa;EAC3B,OAAO,QAAQ,aAAa;EAC5B,OAAO,QAAQ,aAAa;EAC5B,OAAO,cAAc,aAAa;EAClC,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,wBAAwB,SAAS;EACpC,MAAM,SAAS,IAAI,QAAQ,aAAa,QAAQ,CAAC;EACjD,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,wBAAwB,QAAQ;EACnC,MAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,CAAC;EAChD,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,wBAAwB,QAAQ;EACnC,MAAM,SAAS,IAAI,OAAO,aAAa,QAAQ,CAAC;EAChD,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,IAAI,OAAO,iBAAiB,YAAY,kBAAkB,YAAY,GAAG;EACxE,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,YAAY,CAAC;EAChE,MAAM,IAAI,cAAc,MAAM;EAC9B,eAAe,QAAQ,cAAc,eAAe,OAAO,UAAU;EACrE,OAAO;CACR;CACA,OAAO;AACR;AACA,SAAS,eAAe,QAAQ,QAAQ,gBAAgB,QAAQ,OAAO,YAAY;CAClF,MAAM,OAAO,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,WAAW,MAAM,CAAC;CAC3D,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACrC,MAAM,MAAM,KAAK;EACjB,MAAM,aAAa,OAAO,yBAAyB,QAAQ,GAAG;EAC9D,IAAI,cAAc,QAAQ,WAAW,UAAU,OAAO,OAAO,kBAAkB,OAAO,MAAM,KAAK,eAAe,OAAO,UAAU;CAClI;AACD;AACA,SAAS,kBAAkB,QAAQ;CAClC,QAAQ,OAAO,MAAM,GAArB;EACC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,gBAAgB,OAAO;EAC5B,SAAS,OAAO;CACjB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpIA,SAASC,YAAU,KAAK;CACvB,OAAO,kBAAkB,KAAK,KAAK,GAAG,qBAAqB,IAAI,IAAI,GAAG,KAAK,CAAC;AAC7E;;;;;;;;;;;;;;;;ACpCA,SAAS,GAAG,OAAO,OAAO;CACzB,OAAO,UAAU,SAAS,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AACpE;;;;;;;;;;;;;;;;;;;;;;;;;;ACQA,SAAS,SAAS,OAAO;CACxB,OAAO,UAAU,SAAS,OAAO,UAAU,YAAY,OAAO,UAAU;AACzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkDA,SAAS,YAAY,QAAQ,QAAQ,SAAS;CAC7C,IAAI,OAAO,YAAY,YAAY,OAAO,YAAY,QAAQ,cAAc,KAAK,CAAC;CAClF,OAAO,oBAAoB,QAAQ,QAAQ,SAAS,UAAU,UAAU,UAAU,KAAK,QAAQ,QAAQ,OAAO;EAC7G,MAAM,UAAU,QAAQ,UAAU,UAAU,KAAK,QAAQ,QAAQ,KAAK;EACtE,IAAI,YAAY,KAAK,GAAG,OAAO,QAAQ,OAAO;EAC9C,OAAO,oBAAoB,UAAU,UAAU,WAAW,OAAO,KAAK;CACvE,mBAAmB,IAAI,IAAI,GAAG,IAAI;AACnC;AACA,SAAS,oBAAoB,QAAQ,QAAQ,SAAS,OAAO,SAAS,OAAO;CAC5E,IAAI,WAAW,QAAQ,OAAO;CAC9B,QAAQ,OAAO,QAAf;EACC,KAAK,UAAU,OAAO,cAAc,QAAQ,QAAQ,SAAS,OAAO,MAAM;EAC1E,KAAK;GACJ,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC,SAAS,GAAG,OAAO,oBAAoB,QAAQ,EAAE,GAAG,OAAO,GAAG,SAAS,OAAO,MAAM;GAC5G,OAAO,GAAG,QAAQ,MAAM;EACzB;GACC,IAAI,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,QAAQ,MAAM;GAC/C,IAAI,QAAQ;IACX,IAAI,OAAO,WAAW,UAAU,OAAO,WAAW;IAClD,OAAO;GACR;GACA,OAAO,GAAG,QAAQ,MAAM;CAC1B;AACD;AACA,SAAS,cAAc,QAAQ,QAAQ,SAAS,OAAO,SAAS,OAAO;CACtE,IAAI,UAAU,MAAM,OAAO;CAC3B,IAAI,MAAM,QAAQ,MAAM,GAAG,OAAO,aAAa,QAAQ,QAAQ,SAAS,KAAK;CAC7E,IAAI,kBAAkB,KAAK,OAAO,WAAW,QAAQ,QAAQ,SAAS,KAAK;CAC3E,IAAI,kBAAkB,KAAK,OAAO,WAAW,QAAQ,QAAQ,SAAS,KAAK;CAC3E,MAAM,OAAO,OAAO,KAAK,MAAM;CAC/B,IAAI,UAAU,MAAM,OAAO,UAAU,KAAK,WAAW;CACrD,IAAI,QACC;MAAA,YAAY,MAAM,GAAG,SAAS,OAAO,MAAM;CAAA,OACzC;EACN,MAAM,MAAM,OAAO,MAAM;EACzB,IAAI,QAAQ,qBAAqB,QAAQ,sBAAsB,OAAO;CACvE;CACA,IAAI,KAAK,WAAW,GAAG,OAAO;CAC9B,IAAI,OAAO,IAAI,MAAM,GAAG,OAAO,MAAM,IAAI,MAAM,MAAM;CACrD,OAAO,IAAI,QAAQ,MAAM;CACzB,IAAI;EACH,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACrC,MAAM,MAAM,KAAK;GACjB,IAAI,EAAE,OAAO,SAAS,OAAO;GAC7B,IAAI,OAAO,SAAS,KAAK,KAAK,OAAO,SAAS,KAAK,GAAG,OAAO;GAC7D,IAAI,OAAO,SAAS,QAAQ,OAAO,SAAS,MAAM,OAAO;GACzD,IAAI,CAAC,QAAQ,OAAO,MAAM,OAAO,MAAM,KAAK,QAAQ,QAAQ,KAAK,GAAG,OAAO;EAC5E;EACA,OAAO;CACR,UAAU;EACT,OAAO,OAAO,MAAM;CACrB;AACD;AACA,SAAS,WAAW,QAAQ,QAAQ,SAAS,OAAO;CACnD,IAAI,OAAO,SAAS,GAAG,OAAO;CAC9B,IAAI,EAAE,kBAAkB,MAAM,OAAO;CACrC,KAAK,MAAM,CAAC,KAAK,gBAAgB,OAAO,QAAQ,GAAG,IAAI,QAAQ,OAAO,IAAI,GAAG,GAAG,aAAa,KAAK,QAAQ,QAAQ,KAAK,MAAM,OAAO,OAAO;CAC3I,OAAO;AACR;AACA,SAAS,aAAa,QAAQ,QAAQ,SAAS,OAAO;CACrD,IAAI,OAAO,WAAW,GAAG,OAAO;CAChC,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG,OAAO;CACnC,MAAM,+BAA+B,IAAI,IAAI;CAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;EACvC,MAAM,aAAa,OAAO;EAC1B,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACvC,IAAI,aAAa,IAAI,CAAC,GAAG;GACzB,MAAM,aAAa,OAAO;GAC1B,IAAI,UAAU;GACd,IAAI,QAAQ,YAAY,YAAY,GAAG,QAAQ,QAAQ,KAAK,GAAG,UAAU;GACzE,IAAI,SAAS;IACZ,aAAa,IAAI,CAAC;IAClB,QAAQ;IACR;GACD;EACD;EACA,IAAI,CAAC,OAAO,OAAO;CACpB;CACA,OAAO;AACR;AACA,SAAS,WAAW,QAAQ,QAAQ,SAAS,OAAO;CACnD,IAAI,OAAO,SAAS,GAAG,OAAO;CAC9B,IAAI,EAAE,kBAAkB,MAAM,OAAO;CACrC,OAAO,aAAa,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,KAAK;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnIA,SAAS,QAAQ,QAAQ,QAAQ;CAChC,OAAO,YAAY,QAAQ,cAAc,KAAK,CAAC;AAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA,SAAS,QAAQ,QAAQ;CACxB,SAASC,YAAU,MAAM;CACzB,QAAQ,WAAW;EAClB,OAAO,QAAQ,QAAQ,MAAM;CAC9B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOA,SAAS,cAAc,KAAK,YAAY;CACvC,OAAO,gBAAgB,MAAM,OAAO,KAAK,QAAQ,UAAU;EAC1D,MAAM,SAAS,aAAa,OAAO,KAAK,QAAQ,KAAK;EACrD,IAAI,WAAW,KAAK,GAAG,OAAO;EAC9B,IAAI,OAAO,QAAQ,UAAU;EAC7B,IAAI,OAAO,GAAG,MAAM,qBAAqB,OAAO,IAAI,gBAAgB,YAAY;GAC/E,MAAM,SAAS,CAAC;GAChB,MAAM,IAAI,KAAK,MAAM;GACrB,eAAe,QAAQ,KAAK,QAAQ,KAAK;GACzC,OAAO;EACR;EACA,QAAQ,OAAO,UAAU,SAAS,KAAK,GAAG,GAA1C;GACC,KAAK;GACL,KAAK;GACL,KAAK,YAAY;IAChB,MAAM,SAAS,IAAI,IAAI,YAAY,KAAK,QAAQ,CAAC;IACjD,eAAe,QAAQ,GAAG;IAC1B,OAAO;GACR;GACA,KAAK,cAAc;IAClB,MAAM,SAAS,CAAC;IAChB,eAAe,QAAQ,GAAG;IAC1B,OAAO,SAAS,IAAI;IACpB,OAAO,OAAO,YAAY,IAAI,OAAO;IACrC,OAAO;GACR;GACA,SAAS;EACV;CACD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA,SAAS,UAAU,KAAK;CACvB,OAAO,cAAc,GAAG;AACzB;;;ACjDA,MAAM,sBAAsB;AAC5B,SAAS,QAAQ,OAAO,SAAS,OAAO,kBAAkB;CACzD,QAAQ,OAAO,OAAf;EACC,KAAK,UAAU,OAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,QAAQ;EACvE,KAAK,UAAU,OAAO;EACtB,KAAK,UAAU,OAAO,oBAAoB,KAAK,KAAK;CACrD;AACD;;;;;;;;;;;;;;;;;;;;;;;ACcA,SAAS,YAAY,OAAO;CAC3B,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,KAAK,MAAM;AACzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUA,SAASC,MAAI,QAAQ,MAAM;CAC1B,IAAI;CACJ,IAAI,MAAM,QAAQ,IAAI,GAAG,eAAe;MACnC,IAAI,OAAO,SAAS,YAAY,UAAU,IAAI,KAAK,EAAE,QAAQ,OAAO,MAAM,IAAI,eAAe,OAAO,IAAI;MACxG,eAAe,CAAC,IAAI;CACzB,IAAI,aAAa,WAAW,GAAG,OAAO;CACtC,IAAI,UAAU;CACd,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;EAC7C,MAAM,MAAM,aAAa;EACzB,IAAI,WAAW,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG,GAC7C;OAAA,GAAG,MAAM,QAAQ,OAAO,KAAK,YAAY,OAAO,MAAM,QAAQ,GAAG,KAAK,MAAM,QAAQ,SAAS,OAAO;EAAA;EAEzG,UAAU,QAAQ;CACnB;CACA,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBA,SAAS,gBAAgB,UAAU,QAAQ;CAC1C,QAAQ,OAAO,UAAf;EACC,KAAK;GACJ,IAAI,OAAO,GAAG,UAAU,QAAQ,GAAG,EAAE,GAAG,WAAW;GACnD;EACD,KAAK,UACJ,WAAW,MAAM,QAAQ;CAE3B;CACA,SAAS,UAAU,MAAM;CACzB,OAAO,SAAS,QAAQ;EACvB,MAAM,SAASC,MAAI,QAAQ,QAAQ;EACnC,IAAI,WAAW,KAAK,GAAG,OAAOC,MAAI,QAAQ,QAAQ;EAClD,IAAI,WAAW,KAAK,GAAG,OAAO,WAAW,KAAK;EAC9C,OAAO,QAAQ,QAAQ,MAAM;CAC9B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZA,SAAS,SAAS,OAAO;CACxB,IAAI,SAAS,MAAM,OAAOC;CAC1B,QAAQ,OAAO,OAAf;EACC,KAAK,YAAY,OAAO;EACxB,KAAK;GACJ,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAAG,OAAO,gBAAgB,MAAM,IAAI,MAAM,EAAE;GACzF,OAAO,QAAQ,KAAK;EACrB,SAAS,OAAO,SAAS,KAAK;CAC/B;AACD;;;;;;;;;;ACpCA,SAAS,cAAc,OAAO;CAC7B,OAAO,UAAU,IAAI,IAAI;AAC1B;;;ACHA,SAAS,OAAO,OAAO,aAAaC,YAAU;CAC7C,IAAI,CAAC,YAAY,KAAK,GAAG,OAAO,CAAC;CACjC,OAAO,SAAS,MAAM,KAAK,KAAK,GAAG,IAAI,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa;AACnF;;;;;;;;;;ACAA,SAAgB,eAAe,SAAS,QAAQ,eAAe;CAC7D,IAAI,WAAW,MACb,OAAO,OAAO,SAAS,aAAa;CAEtC,IAAI,OAAO,WAAW,YACpB,OAAO,OAAO,SAAS,MAAM;CAE/B,OAAO;AACT;;;;;;;;;;;;;CCTa,IAAI,IAAA,UAAU,OAAO;CAAE,SAAS,EAAE,GAAE,GAAE;EAAC,OAAO,MAAI,MAAI,MAAI,KAAG,IAAE,MAAI,IAAE,MAAI,MAAI,KAAG,MAAI;CAAC;CAAC,IAAI,IAAE,eAAa,OAAO,OAAO,KAAG,OAAO,KAAG;CAAE,IAAA,IAAE,EAAE;CAAS,IAAA,IAAE,EAAE;CAAU,IAAA,IAAE,EAAE;CAAgB,IAAA,IAAE,EAAE;CAAc,SAAS,EAAE,GAAE,GAAE;EAAC,IAAI,IAAE,EAAE,GAAE,IAAE,EAAE,EAAC,MAAK;GAAC,OAAM;GAAE,aAAY;EAAC,EAAC,CAAC,GAAE,IAAE,EAAE,EAAE,CAAC,MAAK,IAAE,EAAE;EAAG,EAAE,WAAU;GAAC,EAAE,QAAM;GAAE,EAAE,cAAY;GAAE,EAAE,CAAC,KAAG,EAAE,EAAC,MAAK,EAAC,CAAC;EAAC,GAAE;GAAC;GAAE;GAAE;EAAC,CAAC;EAAE,EAAE,WAAU;GAAC,EAAE,CAAC,KAAG,EAAE,EAAC,MAAK,EAAC,CAAC;GAAE,OAAO,EAAE,WAAU;IAAC,EAAE,CAAC,KAAG,EAAE,EAAC,MAAK,EAAC,CAAC;GAAC,CAAC;EAAC,GAAE,CAAC,CAAC,CAAC;EAAE,EAAE,CAAC;EAAE,OAAO;CAAC;CAClc,SAAS,EAAE,GAAE;EAAC,IAAI,IAAE,EAAE;EAAY,IAAE,EAAE;EAAM,IAAG;GAAC,IAAI,IAAE,EAAE;GAAE,OAAM,CAAC,EAAE,GAAE,CAAC;EAAC,SAAO,GAAE;GAAC,OAAM,CAAC;EAAC;CAAC;CAAC,SAAS,EAAE,GAAE,GAAE;EAAC,OAAO,EAAE;CAAC;CAAC,IAAI,IAAE,gBAAc,OAAO,UAAQ,gBAAc,OAAO,OAAO,YAAU,gBAAc,OAAO,OAAO,SAAS,gBAAc,IAAE;CAAE,QAAQ,uBAAqB,KAAK,MAAI,EAAE,uBAAqB,EAAE,uBAAqB;;;;;CCPxU,OAAO,UAAA,oDAAA;;;;;;;;;;;;;;CCMI,IAAI,IAAA,UAAU,OAAO;CAAE,IAAA,IAAA,aAAA;CAA0C,SAAS,EAAE,GAAE,GAAE;EAAC,OAAO,MAAI,MAAI,MAAI,KAAG,IAAE,MAAI,IAAE,MAAI,MAAI,KAAG,MAAI;CAAC;CAAC,IAAI,IAAE,eAAa,OAAO,OAAO,KAAG,OAAO,KAAG;CAAE,IAAA,IAAE,EAAE;CAAqB,IAAA,IAAE,EAAE;CAAO,IAAA,IAAE,EAAE;CAAU,IAAA,IAAE,EAAE;CAAQ,IAAA,IAAE,EAAE;CAC/P,QAAQ,mCAAiC,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE;EAAC,IAAI,IAAE,EAAE,IAAI;EAAE,IAAG,SAAO,EAAE,SAAQ;GAAC,IAAI,IAAE;IAAC,UAAS,CAAC;IAAE,OAAM;GAAI;GAAE,EAAE,UAAQ;EAAC,OAAM,IAAE,EAAE;EAAQ,IAAE,EAAE,WAAU;GAAC,SAAS,EAAE,GAAE;IAAC,IAAG,CAAC,GAAE;KAAC,IAAE,CAAC;KAAE,IAAE;KAAE,IAAE,EAAE,CAAC;KAAE,IAAG,KAAK,MAAI,KAAG,EAAE,UAAS;MAAC,IAAI,IAAE,EAAE;MAAM,IAAG,EAAE,GAAE,CAAC,GAAE,OAAO,IAAE;KAAC;KAAC,OAAO,IAAE;IAAC;IAAC,IAAE;IAAE,IAAG,EAAE,GAAE,CAAC,GAAE,OAAO;IAAE,IAAI,IAAE,EAAE,CAAC;IAAE,IAAG,KAAK,MAAI,KAAG,EAAE,GAAE,CAAC,GAAE,OAAO;IAAE,IAAE;IAAE,OAAO,IAAE;GAAC;GAAC,IAAI,IAAE,CAAC,GAAE,GAAE,GAAE,IAAE,KAAK,MAAI,IAAE,OAAK;GAAE,OAAM,CAAC,WAAU;IAAC,OAAO,EAAE,EAAE,CAAC;GAAC,GAAE,SAAO,IAAE,KAAK,IAAE,WAAU;IAAC,OAAO,EAAE,EAAE,CAAC;GAAC,CAAC;EAAC,GAAE;GAAC;GAAE;GAAE;GAAE;EAAC,CAAC;EAAE,IAAI,IAAE,EAAE,GAAE,EAAE,IAAG,EAAE,EAAE;EACrf,EAAE,WAAU;GAAC,EAAE,WAAS,CAAC;GAAE,EAAE,QAAM;EAAC,GAAE,CAAC,CAAC,CAAC;EAAE,EAAE,CAAC;EAAE,OAAO;CAAC;;;;;CCRtD,OAAO,UAAA,qCAAA;;;;;;;;;;ACaT,IAAW,uBAAoC,4BAAc,IAAI;;;;ACbjE,IAAI,gBAAe,MAAK;AACxB,IAAW,uBAAuB;CAChC,IAAI,UAAU,WAAW,oBAAoB;CAC7C,IAAI,SACF,OAAO,QAAQ,MAAM;CAEvB,OAAO;AACT;AACA,IAAIC,eAAa,CAAC;AAClB,IAAI,yBAAyBA;AAC7B,IAAI,eAAe,GAAG,MAAM,MAAM;;;;;;;;;;;;;;;;;AAkBlC,SAAgB,eAAe,UAAU;CACvC,IAAI,UAAU,WAAW,oBAAoB;CAC7C,IAAI,uBAAuB,cAAc;EACvC,IAAI,CAAC,SACH,OAAOA;EAET,QAAO,UAAS;GACd,IAAI,SAAS,MACX;GAEF,OAAO,SAAS,KAAK;EACvB;CACF,GAAG,CAAC,SAAS,QAAQ,CAAC;CACtB,QAAA,GAAOC,uBAAAA,iCAAAA,CAAiC,UAAU,QAAQ,aAAa,eAAe,kBAAkB,UAAU,QAAQ,MAAM,WAAWD,QAAM,UAAU,QAAQ,MAAM,WAAWA,QAAM,sBAAsB,WAAW;AAC7N;;;ACiBA,SAAS,iBAAiB,MAAM,eAAe,yCAAyC,OAAO,QAAQ;CACrG,IAAI,OAAO,SAAS,YAClB,MAAM,IAAI,UAAU,YAAY;AAEpC;AAMA,SAAS,yBAAyB,OAAO,eAAe,8EAA8E;CACpI,IAAI,CAAC,MAAM,OAAO,SAAS,OAAO,SAAS,UAAU,GAAG;EACtD,MAAM,YAAY,MAAM,KACrB,SAAS,OAAO,SAAS,aAAa,YAAY,KAAK,QAAQ,UAAU,MAAM,OAAO,IACzF,CAAC,CAAC,KAAK,IAAI;EACX,MAAM,IAAI,UAAU,GAAG,aAAa,GAAG,UAAU,EAAE;CACrD;AACF;AACA,IAAI,iBAAiB,SAAS;CAC5B,OAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAC3C;AACA,SAAS,gBAAgB,oBAAoB;CAC3C,MAAM,eAAe,MAAM,QAAQ,mBAAmB,EAAE,IAAI,mBAAmB,KAAK;CACpF,yBACE,cACA,gGACF;CACA,OAAO;AACT;AACA,SAAS,4BAA4B,cAAc,mBAAmB;CACpE,MAAM,uBAAuB,CAAC;CAC9B,MAAM,EAAE,WAAW;CACnB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAC1B,qBAAqB,KAAK,aAAa,EAAE,CAAC,MAAM,MAAM,iBAAiB,CAAC;CAE1E,OAAO;AACT;AAsaA,IAAI,YAAY,MAAM;CACpB,YAAY,OAAO;EACjB,KAAK,QAAQ;CACf;CACA,QAAQ;EACN,OAAO,KAAK;CACd;AACF;AACA,IAAI,mBAAmB,OAAO,YAAY,cAAc,YAAY;AACpE,IAAI,MAAsB,2BAAW;AACrC,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,SAAS,kBAAkB;CACzB,OAAO;EACL,GAAG;EACH,GAAG,KAAK;EACR,GAAG;EACH,GAAG;CACL;AACF;AACA,SAAS,WAAW,GAAG;CACrB,IAAI,aAAa,KACf,OAAO,EAAE,MAAM;CAEjB,OAAO;AACT;AACA,SAAS,eAAe,MAAM,UAAU,CAAC,GAAG;CAC1C,IAAI,SAAS,gBAAgB;CAC7B,MAAM,EAAE,wBAAwB;CAChC,IAAI;CACJ,IAAI,eAAe;CACnB,SAAS,WAAW;EAClB,IAAI,YAAY;EAChB,MAAM,EAAE,WAAW;EACnB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,KAAK;GACtC,MAAM,MAAM,UAAU;GACtB,IAAI,OAAO,QAAQ,cAAc,OAAO,QAAQ,YAAY,QAAQ,MAAM;IACxE,IAAI,cAAc,UAAU;IAC5B,IAAI,gBAAgB,MAClB,UAAU,IAAI,8BAA8B,IAAI,QAAQ;IAE1D,MAAM,aAAa,YAAY,IAAI,GAAG;IACtC,IAAI,eAAe,KAAK,GAAG;KACzB,YAAY,gBAAgB;KAC5B,YAAY,IAAI,KAAK,SAAS;IAChC,OACE,YAAY;GAEhB,OAAO;IACL,IAAI,iBAAiB,UAAU;IAC/B,IAAI,mBAAmB,MACrB,UAAU,IAAI,iCAAiC,IAAI,IAAI;IAEzD,MAAM,gBAAgB,eAAe,IAAI,GAAG;IAC5C,IAAI,kBAAkB,KAAK,GAAG;KAC5B,YAAY,gBAAgB;KAC5B,eAAe,IAAI,KAAK,SAAS;IACnC,OACE,YAAY;GAEhB;EACF;EACA,MAAM,iBAAiB;EACvB,IAAI;EACJ,IAAI,UAAU,MAAM,YAClB,SAAS,UAAU;OACd;GACL,SAAS,KAAK,MAAM,MAAM,SAAS;GACnC;GACA,IAAI,qBAAqB;IACvB,MAAM,kBAAkB,WAAW,UAAU;IAC7C,IAAI,mBAAmB,QAAQ,oBAAoB,iBAAiB,MAAM,GAAG;KAC3E,SAAS;KACT,iBAAiB,KAAK;IACxB;IAEA,aADqB,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,WAAW,6BAC5C,IAAI,IAAI,MAAM,IAAI;GAChE;EACF;EACA,eAAe,IAAI;EACnB,eAAe,IAAI;EACnB,OAAO;CACT;CACA,SAAS,mBAAmB;EAC1B,SAAS,gBAAgB;EACzB,SAAS,kBAAkB;CAC7B;CACA,SAAS,qBAAqB;CAC9B,SAAS,0BAA0B;EACjC,eAAe;CACjB;CACA,OAAO;AACT;AAGA,SAAS,sBAAsB,kBAAkB,GAAG,wBAAwB;CAC1E,MAAM,+BAA+B,OAAO,qBAAqB,aAAa;EAC5E,SAAS;EACT,gBAAgB;CAClB,IAAI;CACJ,MAAM,mBAAmB,GAAG,uBAAuB;EACjD,IAAI,iBAAiB;EACrB,IAAI,2BAA2B;EAC/B,IAAI;EACJ,IAAI,wBAAwB,CAAC;EAC7B,IAAI,aAAa,mBAAmB,IAAI;EACxC,IAAI,OAAO,eAAe,UAAU;GAClC,wBAAwB;GACxB,aAAa,mBAAmB,IAAI;EACtC;EACA,iBACE,YACA,8EAA8E,OAAO,WAAW,EAClG;EAKA,MAAM,EACJ,SACA,iBAAiB,CAAC,GAClB,cAAc,gBACd,qBAAqB,CAAC,MACpB;GARF,GAAG;GACH,GAAG;EAOa;EAClB,MAAM,sBAAsB,cAAc,cAAc;EACxD,MAAM,0BAA0B,cAAc,kBAAkB;EAChE,MAAM,eAAe,gBAAgB,kBAAkB;EACvD,MAAM,qBAAqB,QAAQ,SAAS,uBAAuB;GACjE;GACA,OAAO,WAAW,MAChB,MACA,SACF;EACF,GAAG,GAAG,mBAAmB;EAEzB,MAAM,WAAW,YAAY,SAAS,sBAAsB;GAC1D;GACA,MAAM,uBAAuB,4BAC3B,cACA,SACF;GACA,aAAa,mBAAmB,MAAM,MAAM,oBAAoB;GAwBhE,OAAO;EACT,GAAG,GAAG,uBAAuB;EAC7B,OAAO,OAAO,OAAO,UAAU;GAC7B;GACA;GACA;GACA,gCAAgC;GAChC,qCAAqC;IACnC,2BAA2B;GAC7B;GACA,kBAAkB;GAClB,sBAAsB;GACtB,2BAA2B;IACzB,iBAAiB;GACnB;GACA;GACA;EACF,CAAC;CACH;CACA,OAAO,OAAO,iBAAiB,EAC7B,iBAAiB,gBACnB,CAAC;CACD,OAAO;AACT;AACA,IAAI,iBAAiC,sCAAsB,cAAc;;;;;;;;;;;;;;;;;;;ACprBzE,SAAS,QAAQ,KAAK,QAAQ,GAAG;CAChC,MAAM,SAAS,CAAC;CAChB,MAAM,eAAe,KAAK,MAAM,KAAK;CACrC,MAAM,aAAa,KAAK,iBAAiB;EACxC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACpC,MAAM,OAAO,IAAI;GACjB,IAAI,MAAM,QAAQ,IAAI,KAAK,eAAe,cAAc,UAAU,MAAM,eAAe,CAAC;QACnF,OAAO,KAAK,IAAI;EACtB;CACD;CACA,UAAU,KAAK,CAAC;CAChB,OAAO;AACR;;;ACxBA,SAAS,eAAe,OAAO,OAAO,QAAQ;CAC7C,IAAI,CAAC,SAAS,MAAM,GAAG,OAAO;CAC9B,IAAI,OAAO,UAAU,YAAY,YAAY,MAAM,KAAK,QAAQ,KAAK,KAAK,QAAQ,OAAO,UAAU,OAAO,UAAU,YAAY,SAAS,QAAQ,OAAO,GAAG,OAAO,QAAQ,KAAK;CAC/K,OAAO;AACR;;;ACRA,SAAS,YAAY,GAAG;CACvB,IAAI,OAAO,MAAM,UAAU,OAAO;CAClC,IAAI,MAAM,MAAM,OAAO;CACvB,IAAI,MAAM,KAAK,GAAG,OAAO;CACzB,IAAI,MAAM,GAAG,OAAO;CACpB,OAAO;AACR;AACA,MAAM,iBAAiB,GAAG,GAAG,UAAU;CACtC,IAAI,MAAM,GAAG;EACZ,MAAM,YAAY,YAAY,CAAC;EAC/B,MAAM,YAAY,YAAY,CAAC;EAC/B,IAAI,cAAc,aAAa,cAAc,GAAG;GAC/C,IAAI,IAAI,GAAG,OAAO,UAAU,SAAS,IAAI;GACzC,IAAI,IAAI,GAAG,OAAO,UAAU,SAAS,KAAK;EAC3C;EACA,OAAO,UAAU,SAAS,YAAY,YAAY,YAAY;CAC/D;CACA,OAAO;AACR;;;;;;;;;;;;;;;;;ACJA,SAAS,SAAS,OAAO;CACxB,OAAO,OAAO,UAAU,YAAY,iBAAiB;AACtD;;;;ACdA,MAAM,kBAAkB;;AAExB,MAAM,mBAAmB;;;;;;;;;;;;;;AAczB,SAAS,MAAM,OAAO,QAAQ;CAC7B,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO;CACjC,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,SAAS,QAAQ,SAAS,KAAK,GAAG,OAAO;CACxG,OAAO,OAAO,UAAU,aAAa,iBAAiB,KAAK,KAAK,KAAK,CAAC,gBAAgB,KAAK,KAAK,MAAM,UAAU,QAAQ,OAAO,OAAO,QAAQ,KAAK;AACpJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACaA,SAAS,QAAQ,YAAY,UAAU,QAAQ,OAAO;CACrD,IAAI,cAAc,MAAM,OAAO,CAAC;CAChC,SAAS,QAAQ,KAAK,IAAI;CAC1B,IAAI,CAAC,MAAM,QAAQ,UAAU,GAAG,aAAa,YAAY,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI,OAAO,OAAO,UAAU;CACxH,IAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG,WAAW,YAAY,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ;CAC9E,IAAI,SAAS,WAAW,GAAG,WAAW,CAAC,IAAI;CAC3C,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG,SAAS,UAAU,OAAO,CAAC,IAAI,CAAC,MAAM;CAClE,SAAS,OAAO,KAAK,UAAU,OAAO,KAAK,CAAC;CAC5C,MAAM,wBAAwB,QAAQ,SAAS;EAC9C,IAAI,SAAS;EACb,IAAI,QAAQ;EACZ,OAAO,QAAQ,KAAK,UAAU,UAAU,MAAM,EAAE,OAAO,SAAS,OAAO,KAAK;EAC5E,OAAO,QAAQ,KAAK,UAAU,KAAK,SAAS,SAAS,KAAK;CAC3D;CACA,MAAM,uBAAuB,WAAW,WAAW;EAClD,IAAI,aAAa,MAAM,OAAO;EAC9B,IAAI,UAAU,MAAM;EACpB,IAAI,OAAO,cAAc,YAAY,SAAS,WAAW;GACxD,IAAI,OAAO,OAAO,QAAQ,UAAU,GAAG,GAAG,OAAO,OAAO,UAAU;GAClE,OAAO,qBAAqB,QAAQ,UAAU,IAAI;EACnD;EACA,IAAI,OAAO,cAAc,YAAY,OAAO,UAAU,MAAM;EAC5D,IAAI,MAAM,QAAQ,SAAS,GAAG,OAAO,qBAAqB,QAAQ,SAAS;EAC3E,OAAO,OAAO;CACf;CACA,MAAM,mBAAmB,SAAS,KAAK,cAAc;EACpD,IAAI,MAAM,QAAQ,SAAS,KAAK,UAAU,WAAW,GAAG,YAAY,UAAU;EAC9E,IAAI,aAAa,QAAQ,OAAO,cAAc,cAAc,MAAM,QAAQ,SAAS,KAAK,MAAM,SAAS,GAAG,OAAO;EACjH,OAAO;GACN,KAAK;GACL,MAAM,OAAO,SAAS;EACvB;CACD,CAAC;CACD,OAAO,WAAW,KAAK,UAAU;EAChC,UAAU;EACV,UAAU,iBAAiB,KAAK,cAAc,oBAAoB,WAAW,IAAI,CAAC;CACnF,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM;EAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GACjD,MAAM,iBAAiB,cAAc,EAAE,SAAS,IAAI,EAAE,SAAS,IAAI,OAAO,EAAE;GAC5E,IAAI,mBAAmB,GAAG,OAAO;EAClC;EACA,OAAO;CACR,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,QAAQ;AAC/B;;;AC3EA,SAASE,SAAO,YAAY,GAAG,UAAU;CACxC,MAAM,SAAS,SAAS;CACxB,IAAI,SAAS,KAAK,eAAe,YAAY,SAAS,IAAI,SAAS,EAAE,GAAG,WAAW,CAAC;MAC/E,IAAI,SAAS,KAAK,eAAe,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE;CACrG,OAAO,QAAQ,YAAY,QAAQ,QAAQ,GAAG,CAAC,KAAK,CAAC;AACtD;;;ACPA,IAAW,wBAAuB,UAAS,MAAM,OAAO;AACxD,IAAW,oBAAmB,UAAS,MAAM,OAAO;AACpD,IAAI,iCAAgC,UAAS,MAAM,OAAO;AACzB,eAAe,CAAC,+BAA+B,oBAAoB,IAAI,UAAU,SAAS;CACzH,IAAI,aAAa,KAAK;CACtB,IAAI,OAAO,SAAS,KAAK,CAAC;CAC1B,OAAO,aAAaC,SAAO,MAAM,UAAU,IAAI;AACjD,CAAC;;;ACTD,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAE9D,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;AAyBV,SAAS,qBAAqB,GAAG,GAAG;CAClC,OAAO,KAAK,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI;AAClJ;;;;;;;AAQA,SAAS,kBAAkB,MAAM;CAC/B,IAAI,OAAO,KAAK,sBAAsB;CACtC,OAAO;EACL,QAAQ,KAAK;EACb,MAAM,KAAK;EACX,KAAK,KAAK;EACV,OAAO,KAAK;CACd;AACF;;;;;;;;;;;AAYA,SAAgB,mBAAmB;CACjC,IAAI,oBAAoB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC;CAC7F,IAME,aAAaD,kBANC,SAAS;EACrB,QAAQ;EACR,MAAM;EACN,KAAK;EACL,OAAO;CACT,CACoC,GAAG,CAAC,GACxC,kBAAkB,WAAW,IAC7B,qBAAqB,WAAW;CAClC,IAAI,cAAc,OAAO,IAAI;CAC7B,IAAI,qBAAqB,OAAO,eAAe;CAC/C,mBAAmB,UAAU;CAC7B,IAAI,oBAAoB,aAAY,SAAQ;EAE1C,IAAI,YAAY,WAAW,MAAM;GAC/B,YAAY,QAAQ,WAAW;GAC/B,YAAY,UAAU;EACxB;EACA,IAAI,QAAQ,MAAM;GAEhB,IAAI,MAAM,kBAAkB,IAAI;GAChC,IAAI,qBAAqB,KAAK,mBAAmB,OAAO,GACtD,mBAAmB,GAAG;GAIxB,IAAI,OAAO,mBAAmB,aAAa;IACzC,IAAI,WAAW,IAAI,qBAAqB;KACtC,IAAI,SAAS,kBAAkB,IAAI;KACnC,IAAI,qBAAqB,QAAQ,mBAAmB,OAAO,GACzD,mBAAmB,MAAM;IAE7B,CAAC;IACD,SAAS,QAAQ,IAAI;IACrB,YAAY,UAAU;GACxB;EACF;CACF,GAEA,CAAC,GAAG,iBAAiB,CAAC;CAGtB,gBAAgB;EACd,aAAa;GACX,IAAI;GACJ,CAAC,uBAAuB,YAAY,aAAa,QAAQ,yBAAyB,KAAK,KAAK,qBAAqB,WAAW;EAC9H;CACF,GAAG,CAAC,CAAC;CACL,OAAO,CAAC,iBAAiB,iBAAiB;AAC5C;;;AChHA,SAASM,yBAAuB,MAAM;CACpC,OAAO,yBAAyB,KAAK,2CAA2C,KAAK;AACvF;AAIA,IAAI,4BAA4B,uBADU,OAAO,WAAW,cAAc,OAAO,cAAc,eAAA,CACpD;AAG3C,IAAI,qBAAqB,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG;AAMnF,IAAI,sBAAsB;CAJxB,MAAM,eAA+B,6BAAa;CAClD,SAAS,kBAAkC,6BAAa;CACxD,4BAA4B,+BAA+B,aAAa;AAEtC;AAGpC,SAASC,gBAAc,KAAK;CAC1B,IAAI,OAAO,QAAQ,YAAY,QAAQ,MACrC,OAAO;CACT,IAAI,QAAQ;CACZ,OAAO,OAAO,eAAe,KAAK,MAAM,MACtC,QAAQ,OAAO,eAAe,KAAK;CAErC,OAAO,OAAO,eAAe,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,MAAM;AAChF;AAwDA,SAAS,YAAY,SAAS,gBAAgB,UAAU;CACtD,IAAI,OAAO,YAAY,YACrB,MAAM,IAAI,MAA8CD,yBAAuB,CAAC,CAAyF;CAE3K,IAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,cAAc,OAAO,aAAa,cAAc,OAAO,UAAU,OAAO,YACtI,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAsQ;CAExV,IAAI,OAAO,mBAAmB,cAAc,OAAO,aAAa,aAAa;EAC3E,WAAW;EACX,iBAAiB,KAAK;CACxB;CACA,IAAI,OAAO,aAAa,aAAa;EACnC,IAAI,OAAO,aAAa,YACtB,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAsF;EAExK,OAAO,SAAS,WAAW,CAAC,CAAC,SAAS,cAAc;CACtD;CACA,IAAI,iBAAiB;CACrB,IAAI,eAAe;CACnB,IAAI,mCAAmC,IAAI,IAAI;CAC/C,IAAI,gBAAgB;CACpB,IAAI,oBAAoB;CACxB,IAAI,gBAAgB;CACpB,SAAS,+BAA+B;EACtC,IAAI,kBAAkB,kBAAkB;GACtC,gCAAgC,IAAI,IAAI;GACxC,iBAAiB,SAAS,UAAU,QAAQ;IAC1C,cAAc,IAAI,KAAK,QAAQ;GACjC,CAAC;EACH;CACF;CACA,SAAS,WAAW;EAClB,IAAI,eACF,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAA0M;EAE5R,OAAO;CACT;CACA,SAAS,UAAU,UAAU;EAC3B,IAAI,OAAO,aAAa,YACtB,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAsF;EAExK,IAAI,eACF,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAqT;EAEvY,IAAI,eAAe;EACnB,6BAA6B;EAC7B,MAAM,aAAa;EACnB,cAAc,IAAI,YAAY,QAAQ;EACtC,OAAO,SAAS,cAAc;GAC5B,IAAI,CAAC,cACH;GAEF,IAAI,eACF,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAA0J;GAE5O,eAAe;GACf,6BAA6B;GAC7B,cAAc,OAAO,UAAU;GAC/B,mBAAmB;EACrB;CACF;CACA,SAAS,SAAS,QAAQ;EACxB,IAAI,CAACC,gBAAc,MAAM,GACvB,MAAM,IAAI,MAA8CD,yBAAuB,CAAC,CAA+Z;EAEjf,IAAI,OAAO,OAAO,SAAS,aACzB,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAgH;EAElM,IAAI,OAAO,OAAO,SAAS,UACzB,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAAgJ;EAEnO,IAAI,eACF,MAAM,IAAI,MAA8CA,yBAAuB,CAAC,CAAwC;EAE1H,IAAI;GACF,gBAAgB;GAChB,eAAe,eAAe,cAAc,MAAM;EACpD,UAAU;GACR,gBAAgB;EAClB;EAEA,CADkB,mBAAmB,cAAA,CAC3B,SAAS,aAAa;GAC9B,SAAS;EACX,CAAC;EACD,OAAO;CACT;CACA,SAAS,eAAe,aAAa;EACnC,IAAI,OAAO,gBAAgB,YACzB,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAA2F;EAE9K,iBAAiB;EACjB,SAAS,EACP,MAAM,oBAAoB,QAC5B,CAAC;CACH;CACA,SAAS,aAAa;EACpB,MAAM,iBAAiB;EACvB,OAAO;;;;;;;;;GASL,UAAU,UAAU;IAClB,IAAI,OAAO,aAAa,YAAY,aAAa,MAC/C,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAAqF;IAExK,SAAS,eAAe;KACtB,MAAM,qBAAqB;KAC3B,IAAI,mBAAmB,MACrB,mBAAmB,KAAK,SAAS,CAAC;IAEtC;IACA,aAAa;IAEb,OAAO,EACL,aAFkB,eAAe,YAEvB,EACZ;GACF;GACA,CAAC,6BAA6B;IAC5B,OAAO;GACT;EACF;CACF;CACA,SAAS,EACP,MAAM,oBAAoB,KAC5B,CAAC;CAQD,OAAO;EANL;EACA;EACA;EACA;GACC,4BAA4B;CAEpB;AACb;AAoCA,SAAS,mBAAmB,UAAU;CACpC,OAAO,KAAK,QAAQ,CAAC,CAAC,SAAS,QAAQ;EACrC,MAAM,UAAU,SAAS;EAIzB,IAAI,OAHiB,QAAQ,KAAK,GAAG,EACnC,MAAM,oBAAoB,KAC5B,CACsB,MAAM,aAC1B,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAAmT;EAEtY,IAAI,OAAO,QAAQ,KAAK,GAAG,EACzB,MAAM,oBAAoB,qBAAqB,EACjD,CAAC,MAAM,aACL,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAAwb;CAE7gB,CAAC;AACH;AACA,SAAS,gBAAgB,UAAU;CACjC,MAAM,cAAc,OAAO,KAAK,QAAQ;CACxC,MAAM,gBAAgB,CAAC;CACvB,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;EAC3C,MAAM,MAAM,YAAY;EAMxB,IAAI,OAAO,SAAS,SAAS,YAC3B,cAAc,OAAO,SAAS;CAElC;CACA,MAAM,mBAAmB,OAAO,KAAK,aAAa;CAKlD,IAAI;CACJ,IAAI;EACF,mBAAmB,aAAa;CAClC,SAAS,GAAG;EACV,sBAAsB;CACxB;CACA,OAAO,SAAS,YAAY,QAAQ,CAAC,GAAG,QAAQ;EAC9C,IAAI,qBACF,MAAM;EAQR,IAAI,aAAa;EACjB,MAAM,YAAY,CAAC;EACnB,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GAChD,MAAM,MAAM,iBAAiB;GAC7B,MAAM,UAAU,cAAc;GAC9B,MAAM,sBAAsB,MAAM;GAClC,MAAM,kBAAkB,QAAQ,qBAAqB,MAAM;GAC3D,IAAI,OAAO,oBAAoB,aAAa;IACvB,UAAU,OAAO;IACpC,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAAsT;GACzY;GACA,UAAU,OAAO;GACjB,aAAa,cAAc,oBAAoB;EACjD;EACA,aAAa,cAAc,iBAAiB,WAAW,OAAO,KAAK,KAAK,CAAC,CAAC;EAC1E,OAAO,aAAa,YAAY;CAClC;AACF;AA0BA,SAAS,QAAQ,GAAG,OAAO;CACzB,IAAI,MAAM,WAAW,GACnB,QAAQ,QAAQ;CAElB,IAAI,MAAM,WAAW,GACnB,OAAO,MAAM;CAEf,OAAO,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1D;AAGA,SAAS,gBAAgB,GAAG,aAAa;CACvC,QAAQ,kBAAkB,SAAS,mBAAmB;EACpD,MAAM,QAAQ,aAAa,SAAS,cAAc;EAClD,IAAI,iBAAiB;GACnB,MAAM,IAAI,MAA8CA,yBAAuB,EAAE,CAA4H;EAC/M;EACA,MAAM,gBAAgB;GACpB,UAAU,MAAM;GAChB,WAAW,QAAQ,GAAG,SAAS,SAAS,QAAQ,GAAG,IAAI;EACzD;EAEA,WAAW,QAAQ,GADL,YAAY,KAAK,eAAe,WAAW,aAAa,CAC5C,CAAC,CAAC,CAAC,MAAM,QAAQ;EAC3C,OAAO;GACL,GAAG;GACH;EACF;CACF;AACF;AAGA,SAAS,SAAS,QAAQ;CACxB,OAAOC,gBAAc,MAAM,KAAK,UAAU,UAAU,OAAO,OAAO,SAAS;AAC7E;;;AC/XA,IAAI,UAAU,OAAO,IAAI,eAAe;AACxC,IAAI,YAAY,OAAO,IAAI,iBAAiB;AAC5C,IAAI,cAAc,OAAO,IAAI,aAAa;AAkC1C,SAAS,IAAI,OAAO,GAAG,MAAM;CAM3B,MAAM,IAAI,MACR,8BAA8B,MAAM,wCACtC;AACF;AAGA,IAAI,IAAI;AACR,IAAI,iBAAiB,EAAE;AACvB,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,WAAW,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;AAC5C,SAAS,YAAY,OAAO;CAC1B,IAAI,CAAC,OACH,OAAO;CACT,OAAOC,gBAAc,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,MAAM,YAAY,GAAG,cAAc,MAAM,KAAK,KAAK,MAAM,KAAK;AACzI;AACA,IAAI,mBAAmB,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS;AAC1D,IAAI,oCAAoC,IAAI,QAAQ;AACpD,SAASA,gBAAc,OAAO;CAC5B,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,GAC9B,OAAO;CACT,MAAM,QAAQ,eAAe,KAAK;CAClC,IAAI,UAAU,QAAQ,UAAU,EAAE,YAChC,OAAO;CACT,MAAM,OAAO,EAAE,eAAe,KAAK,OAAO,WAAW,KAAK,MAAM;CAChE,IAAI,SAAS,QACX,OAAO;CACT,IAAI,CAAC,WAAW,IAAI,GAClB,OAAO;CACT,IAAI,aAAa,kBAAkB,IAAI,IAAI;CAC3C,IAAI,eAAe,KAAK,GAAG;EACzB,aAAa,SAAS,SAAS,KAAK,IAAI;EACxC,kBAAkB,IAAI,MAAM,UAAU;CACxC;CACA,OAAO,eAAe;AACxB;AAMA,SAAS,KAAK,KAAK,MAAM,SAAS,MAAM;CACtC,IAAI,YAAY,GAAG,MAAM,GAEvB,CADa,SAAS,QAAQ,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG,EAAA,CAClD,SAAS,QAAQ;EACpB,KAAK,KAAK,IAAI,MAAM,GAAG;CACzB,CAAC;MAED,IAAI,SAAS,OAAO,UAAU,KAAK,OAAO,OAAO,GAAG,CAAC;AAEzD;AACA,SAAS,YAAY,OAAO;CAC1B,MAAM,QAAQ,MAAM;CACpB,OAAO,QAAQ,MAAM,QAAQ,QAAQ,KAAK,IAAI,IAAgB,MAAM,KAAK,IAAI,IAAc,MAAM,KAAK,IAAI,IAAc;AAC1H;AACA,IAAI,OAAO,OAAO,MAAM,OAAO,YAAY,KAAK,MAAM,SAAS,IAAc,MAAM,IAAI,IAAI,IAAI,EAAE,UAAU,CAAC,eAAe,KAAK,OAAO,IAAI;AAC3I,IAAI,OAAO,OAAO,MAAM,OAAO,YAAY,KAAK,MAE9C,SAAS,IAAc,MAAM,IAAI,IAAI,IAAI,MAAM;AAEjD,IAAI,OAAO,OAAO,gBAAgB,OAAO,OAAO,YAAY,KAAK,MAAM;CACrE,IAAI,SAAS,GACX,MAAM,IAAI,gBAAgB,KAAK;MAC5B,IAAI,SAAS,GAChB,MAAM,IAAI,KAAK;MAEf,MAAM,kBAAkB;AAC5B;AACA,SAASC,KAAG,GAAG,GAAG;CAChB,IAAI,MAAM,GACR,OAAO,MAAM,KAAK,IAAI,MAAM,IAAI;MAEhC,OAAO,MAAM,KAAK,MAAM;AAE5B;AACA,IAAI,UAAU,MAAM;AACpB,IAAI,SAAS,WAAW,kBAAkB;AAC1C,IAAI,SAAS,WAAW,kBAAkB;AAC1C,IAAI,eAAe,WAAW,OAAO,WAAW;AAChD,IAAI,cAAc,WAAW,OAAO,WAAW;AAC/C,IAAIC,eAAa,WAAW,OAAO,WAAW;AAC9C,SAAS,aAAa,OAAO;CAC3B,MAAM,IAAI,CAAC;CACX,OAAO,OAAO,UAAU,CAAC,KAAK,OAAO,CAAC,MAAM;AAC9C;AAMA,IAAI,UAAU,UAAU,MAAM,SAAS,MAAM;AAK7C,IAAI,iBAAiB,UAAU,MAAM,YAAY,MAAM,QAAQ,MAAM;AACrE,SAAS,YAAY,MAAM,QAAQ;CACjC,IAAI,MAAM,IAAI,GACZ,OAAO,IAAI,IAAI,IAAI;CAErB,IAAI,MAAM,IAAI,GACZ,OAAO,IAAI,IAAI,IAAI;CAErB,IAAI,QAAQ,IAAI,GACd,OAAO,MAAM,UAAU,CAAC,MAAM,KAAK,IAAI;CACzC,MAAM,UAAUF,gBAAc,IAAI;CAClC,IAAI,WAAW,QAAQ,WAAW,gBAAgB,CAAC,SAAS;EAC1D,MAAM,cAAc,EAAE,0BAA0B,IAAI;EACpD,OAAO,YAAY;EACnB,IAAI,OAAO,QAAQ,QAAQ,WAAW;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,MAAM,KAAK;GACjB,MAAM,OAAO,YAAY;GACzB,IAAI,KAAK,cAAc,OAAO;IAC5B,KAAK,YAAY;IACjB,KAAK,gBAAgB;GACvB;GACA,IAAI,KAAK,OAAO,KAAK,KACnB,YAAY,OAAO;KAChB,eAAe;KACf,WAAW;KAEX,aAAa,KAAK;KAClB,QAAQ,KAAK;GAChB;EACJ;EACA,OAAO,EAAE,OAAO,eAAe,IAAI,GAAG,WAAW;CACnD,OAAO;EACL,MAAM,QAAQ,eAAe,IAAI;EACjC,IAAI,UAAU,QAAQ,SACpB,OAAO,EAAE,GAAG,KAAK;EAEnB,MAAM,MAAM,EAAE,OAAO,KAAK;EAC1B,OAAO,EAAE,OAAO,KAAK,IAAI;CAC3B;AACF;AACA,SAAS,OAAO,KAAK,OAAO,OAAO;CACjC,IAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG,GACnD,OAAO;CACT,IAAI,YAAY,GAAG,IAAI,GACrB,EAAE,iBAAiB,KAAK;EACtB,KAAK;EACL,KAAK;EACL,OAAO;EACP,QAAQ;CACV,CAAC;CAEH,EAAE,OAAO,GAAG;CACZ,IAAI,MACF,KACE,MACC,MAAM,UAAU;EACf,OAAO,OAAO,IAAI;CACpB,GACA,KACF;CACF,OAAO;AACT;AACA,SAAS,8BAA8B;CACrC,IAAI,CAAC;AACP;AACA,IAAI,2BAA2B,GAC5B,QAAQ,4BACX;AACA,SAAS,SAAS,KAAK;CACrB,IAAI,QAAQ,QAAQ,CAAC,YAAY,GAAG,GAClC,OAAO;CACT,OAAO,EAAE,SAAS,GAAG;AACvB;AAGA,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,qBAAqB;AACzB,IAAI,UAAU,CAAC;AACf,SAAS,UAAU,WAAW;CAC5B,MAAM,SAAS,QAAQ;CACvB,IAAI,CAAC,QACH,IAAI,GAAG,SAAS;CAElB,OAAO;AACT;AACA,IAAI,kBAAkB,cAAc,CAAC,CAAC,QAAQ;AAO9C,IAAI;AACJ,IAAI,wBAAwB;AAC5B,IAAI,eAAe,SAAS,YAAY;CACtC,SAAS,CAAC;CACV;CACA;CAGA,gBAAgB;CAChB,oBAAoB;CACpB,6BAA6B,IAAI,IAAI;CACrC,sCAAsC,IAAI,IAAI;CAC9C,eAAe,eAAe,YAAY,IAAI,UAAU,YAAY,IAAI,KAAK;CAC7E,qBAAqB,eAAe,kBAAkB,IAAI,UAAU,kBAAkB,IAAI,KAAK;AACjG;AACA,SAAS,kBAAkB,OAAO,eAAe;CAC/C,IAAI,eAAe;EACjB,MAAM,eAAe,UAAU,aAAa;EAC5C,MAAM,WAAW,CAAC;EAClB,MAAM,kBAAkB,CAAC;EACzB,MAAM,iBAAiB;CACzB;AACF;AACA,SAAS,YAAY,OAAO;CAC1B,WAAW,KAAK;CAChB,MAAM,QAAQ,QAAQ,WAAW;CACjC,MAAM,UAAU;AAClB;AACA,SAAS,WAAW,OAAO;CACzB,IAAI,UAAU,cACZ,eAAe,MAAM;AAEzB;AACA,IAAI,cAAc,WAAW,eAAe,YAAY,cAAc,MAAM;AAC5E,SAAS,YAAY,OAAO;CAC1B,MAAM,QAAQ,MAAM;CACpB,IAAI,MAAM,UAAU,KAAkB,MAAM,UAAU,GACpD,MAAM,QAAQ;MAEd,MAAM,WAAW;AACrB;AAGA,SAAS,cAAc,QAAQ,OAAO;CACpC,MAAM,qBAAqB,MAAM,QAAQ;CACzC,MAAM,YAAY,MAAM,QAAQ;CAEhC,IADmB,WAAW,KAAK,KAAK,WAAW,WACnC;EACd,IAAI,UAAU,YAAY,CAAC,WAAW;GACpC,YAAY,KAAK;GACjB,IAAI,CAAC;EACP;EACA,IAAI,YAAY,MAAM,GACpB,SAAS,SAAS,OAAO,MAAM;EAEjC,MAAM,EAAE,iBAAiB;EACzB,IAAI,cACF,aAAa,4BACX,UAAU,YAAY,CAAC,OACvB,QACA,KACF;CAEJ,OACE,SAAS,SAAS,OAAO,SAAS;CAEpC,YAAY,OAAO,QAAQ,IAAI;CAC/B,YAAY,KAAK;CACjB,IAAI,MAAM,UACR,MAAM,eAAe,MAAM,UAAU,MAAM,eAAe;CAE5D,OAAO,WAAW,UAAU,SAAS,KAAK;AAC5C;AACA,SAAS,SAAS,WAAW,OAAO;CAClC,IAAI,SAAS,KAAK,GAChB,OAAO;CACT,MAAM,QAAQ,MAAM;CACpB,IAAI,CAAC,OAEH,OADmB,YAAY,OAAO,UAAU,aAAa,SAC7C;CAElB,IAAI,CAAC,YAAY,OAAO,SAAS,GAC/B,OAAO;CAET,IAAI,CAAC,MAAM,WACT,OAAO,MAAM;CAEf,IAAI,CAAC,MAAM,YAAY;EACrB,MAAM,EAAE,eAAe;EACvB,IAAI,YACF,OAAO,WAAW,SAAS,GAEzB,WAD4B,IACrB,CAAC,CAAC,SAAS;EAGtB,2BAA2B,OAAO,SAAS;CAC7C;CACA,OAAO,MAAM;AACf;AACA,SAAS,YAAY,OAAO,OAAO,OAAO,OAAO;CAC/C,IAAI,CAAC,MAAM,WAAW,MAAM,OAAO,eAAe,MAAM,gBACtD,OAAO,OAAO,IAAI;AAEtB;AACA,SAAS,mBAAmB,OAAO;CACjC,MAAM,aAAa;CACnB,MAAM,OAAO;AACf;AACA,IAAI,eAAe,OAAO,cAAc,MAAM,WAAW;AACzD,IAAI,yBAAyB,CAAC;AAC9B,SAAS,oBAAoB,QAAQ,YAAY,gBAAgB,aAAa;CAC5E,MAAM,aAAa,OAAO,MAAM;CAChC,MAAM,aAAa,OAAO;CAC1B,IAAI,gBAAgB,KAAK,GACF;MAAA,IAAI,YAAY,aAAa,UACnC,MAAM,YAAY;GAC/B,IAAI,YAAY,aAAa,gBAAgB,UAAU;GACvD;EACF;;CAEF,IAAI,CAAC,OAAO,iBAAiB;EAC3B,MAAM,iBAAiB,OAAO,kCAAkC,IAAI,IAAI;EACxE,KAAK,aAAa,KAAK,UAAU;GAC/B,IAAI,QAAQ,KAAK,GAAG;IAClB,MAAM,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC;IAC3C,KAAK,KAAK,GAAG;IACb,eAAe,IAAI,OAAO,IAAI;GAChC;EACF,CAAC;CACH;CACA,MAAM,YAAY,OAAO,gBAAgB,IAAI,UAAU,KAAK;CAC5D,KAAK,MAAM,YAAY,WACrB,IAAI,YAAY,UAAU,gBAAgB,UAAU;AAExD;AACA,SAAS,kCAAkC,QAAQ,OAAO,KAAK;CAC7D,OAAO,WAAW,KAAK,SAAS,aAAa,WAAW;EACtD,MAAM,QAAQ;EACd,IAAI,CAAC,SAAS,CAAC,YAAY,OAAO,SAAS,GACzC;EAEF,UAAU,eAAe,eAAe,KAAK;EAC7C,MAAM,iBAAiB,cAAc,KAAK;EAC1C,oBAAoB,QAAQ,MAAM,UAAU,OAAO,gBAAgB,GAAG;EACtE,2BAA2B,OAAO,SAAS;CAC7C,CAAC;AACH;AACA,SAAS,2BAA2B,OAAO,WAAW;CAEpD,IADuB,MAAM,aAAa,CAAC,MAAM,eAAe,MAAM,UAAU,KAAe,MAAM,UAAU,KAAiB,MAAM,0BAA0B,MAAM,WAAW,QAAQ,KAAK,IAC1K;EAClB,MAAM,EAAE,iBAAiB;EACzB,IAAI,cAAc;GAChB,MAAM,WAAW,aAAa,QAAQ,KAAK;GAC3C,IAAI,UACF,aAAa,iBAAiB,OAAO,UAAU,SAAS;EAE5D;EACA,mBAAmB,KAAK;CAC1B;AACF;AACA,SAAS,qBAAqB,QAAQ,KAAK,OAAO;CAChD,MAAM,EAAE,WAAW;CACnB,IAAI,QAAQ,KAAK,GAAG;EAClB,MAAM,QAAQ,MAAM;EACpB,IAAI,YAAY,OAAO,MAAM,GAC3B,MAAM,WAAW,KAAK,SAAS,wBAAwB;GACrD,YAAY,MAAM;GAElB,oBAAoB,QAAQ,OADL,cAAc,KACW,GAAG,GAAG;EACxD,CAAC;CAEL,OAAO,IAAI,YAAY,KAAK,GAC1B,OAAO,WAAW,KAAK,SAAS,qBAAqB;EACnD,MAAM,aAAa,OAAO,MAAM;EAChC,IAAI,OAAO,UAAU,GACf;OAAA,WAAW,IAAI,KAAK,GACtB,YAAY,OAAO,OAAO,aAAa,MAAM;EAAA,OAG/C,IAAI,IAAI,YAAY,KAAK,OAAO,KAAK,MAAM,OACrC;OAAA,OAAO,QAAQ,SAAS,MAAM,OAAO,UAAU,IAAI,GAAG,KAAK,WAAW,QAAQ,OAAO,OACvF,YACE,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK,GACnC,OAAO,aACP,MACF;EAAA;CAIR,CAAC;AAEL;AACA,SAAS,YAAY,QAAQ,YAAY,WAAW;CAClD,IAAI,CAAC,UAAU,OAAO,eAAe,UAAU,qBAAqB,GAClE,OAAO;CAET,IAAI,QAAQ,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,CAAC,YAAY,MAAM,KAAK,SAAS,MAAM,GACtF,OAAO;CAET,WAAW,IAAI,MAAM;CACrB,KAAK,SAAS,KAAK,UAAU;EAC3B,IAAI,QAAQ,KAAK,GAAG;GAClB,MAAM,QAAQ,MAAM;GACpB,IAAI,YAAY,OAAO,SAAS,GAAG;IAEjC,IAAI,QAAQ,KADS,cAAc,KACP,GAAG,OAAO,KAAK;IAC3C,mBAAmB,KAAK;GAC1B;EACF,OAAO,IAAI,YAAY,KAAK,GAC1B,YAAY,OAAO,YAAY,SAAS;CAE5C,CAAC;CACD,OAAO;AACT;AAGA,SAAS,iBAAiB,MAAM,QAAQ;CACtC,MAAM,cAAc,QAAQ,IAAI;CAChC,MAAM,QAAQ;EACZ,OAAO,cAAc,IAAgB;EAErC,QAAQ,SAAS,OAAO,SAAS,gBAAgB;EAEjD,WAAW;EAEX,YAAY;EAGZ,WAAW,KAAK;EAEhB,SAAS;EAET,OAAO;EAEP,QAAQ;EAGR,OAAO;EAEP,SAAS;EACT,WAAW;EAEX,YAAY,KAAK;CACnB;CACA,IAAI,SAAS;CACb,IAAI,QAAQ;CACZ,IAAI,aAAa;EACf,SAAS,CAAC,KAAK;EACf,QAAQ;CACV;CACA,MAAM,EAAE,QAAQ,UAAU,MAAM,UAAU,QAAQ,KAAK;CACvD,MAAM,SAAS;CACf,MAAM,UAAU;CAChB,OAAO,CAAC,OAAO,KAAK;AACtB;AACA,IAAI,cAAc;CAChB,IAAI,OAAO,MAAM;EACf,IAAI,SAAS,aACX,OAAO;EACT,IAAI,cAAc,MAAM,OAAO;EAC/B,MAAM,wBAAwB,MAAM,UAAU,KAAiB,OAAO,SAAS;EAC/E,IAAI,uBACE;OAAA,aAAa,uBAAuB,IAAI,GAC1C,OAAO,YAAY,wBAAwB,OAAO,IAAI;EAAA;EAG1D,MAAM,SAAS,OAAO,KAAK;EAC3B,IAAI,CAAC,IAAI,QAAQ,MAAM,MAAM,KAAK,GAChC,OAAO,kBAAkB,OAAO,QAAQ,IAAI;EAE9C,MAAM,QAAQ,OAAO;EACrB,IAAI,MAAM,cAAc,CAAC,YAAY,KAAK,GACxC,OAAO;EAET,IAAI,yBAAyB,MAAM,mBAAmB,aAAa,sBACjE,MAAM,eACR,KAAK,aAAa,IAAI,GACpB,OAAO;EAET,IAAI,UAAU,KAAK,MAAM,OAAO,IAAI,KAAK,mBAAmB,OAAO,MAAM,KAAK,GAAG;GAC/E,YAAY,KAAK;GACjB,MAAM,WAAW,MAAM,UAAU,IAAgB,CAAC,OAAO;GACzD,MAAM,aAAa,YAAY,MAAM,QAAQ,OAAO,OAAO,QAAQ;GACnE,OAAO,MAAM,MAAM,YAAY;EACjC;EACA,OAAO;CACT;CACA,IAAI,OAAO,MAAM;EACf,OAAO,QAAQ,OAAO,KAAK;CAC7B;CACA,QAAQ,OAAO;EACb,OAAO,QAAQ,QAAQ,OAAO,KAAK,CAAC;CACtC;CACA,IAAI,OAAO,MAAM,OAAO;EACtB,MAAM,OAAO,uBAAuB,OAAO,KAAK,GAAG,IAAI;EACvD,IAAI,MAAM,KAAK;GACb,KAAK,IAAI,KAAK,MAAM,QAAQ,KAAK;GACjC,OAAO;EACT;EACA,IAAI,CAAC,MAAM,WAAW;GACpB,MAAM,WAAW,KAAK,OAAO,KAAK,GAAG,IAAI;GACzC,MAAM,eAAe,WAAW;GAChC,IAAI,gBAAgB,aAAa,UAAU,OAAO;IAChD,MAAM,MAAM,QAAQ;IACpB,MAAM,UAAU,IAAI,MAAM,KAAK;IAC/B,OAAO;GACT;GACA,IAAIC,KAAG,OAAO,QAAQ,MAAM,UAAU,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK,IAChF,OAAO;GACT,YAAY,KAAK;GACjB,YAAY,KAAK;EACnB;EACA,IAAI,MAAM,MAAM,UAAU,UACzB,UAAU,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK,MACvD,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM,MAAM,KAAK,GACnD,OAAO;EACT,MAAM,MAAM,QAAQ;EACpB,MAAM,UAAU,IAAI,MAAM,IAAI;EAC9B,qBAAqB,OAAO,MAAM,KAAK;EACvC,OAAO;CACT;CACA,eAAe,OAAO,MAAM;EAC1B,YAAY,KAAK;EACjB,IAAI,KAAK,MAAM,OAAO,IAAI,MAAM,KAAK,KAAK,QAAQ,MAAM,OAAO;GAC7D,MAAM,UAAU,IAAI,MAAM,KAAK;GAC/B,YAAY,KAAK;EACnB,OACE,MAAM,UAAU,OAAO,IAAI;EAE7B,IAAI,MAAM,OACR,OAAO,MAAM,MAAM;EAErB,OAAO;CACT;CAGA,yBAAyB,OAAO,MAAM;EACpC,MAAM,QAAQ,OAAO,KAAK;EAC1B,MAAM,OAAO,QAAQ,yBAAyB,OAAO,IAAI;EACzD,IAAI,CAAC,MACH,OAAO;EACT,OAAO;IACJ,WAAW;IACX,eAAe,MAAM,UAAU,KAAiB,SAAS;IACzD,aAAa,KAAK;IAClB,QAAQ,MAAM;EACjB;CACF;CACA,iBAAiB;EACf,IAAI,EAAE;CACR;CACA,eAAe,OAAO;EACpB,OAAO,eAAe,MAAM,KAAK;CACnC;CACA,iBAAiB;EACf,IAAI,EAAE;CACR;AACF;AACA,IAAI,aAAa,CAAC;AAClB,KAAK,IAAI,OAAO,aAAa;CAC3B,IAAI,KAAK,YAAY;CACrB,WAAW,OAAO,WAAW;EAC3B,MAAM,OAAO;EACb,KAAK,KAAK,KAAK,EAAE,CAAC;EAClB,OAAO,GAAG,MAAM,MAAM,IAAI;CAC5B;AACF;AACA,WAAW,iBAAiB,SAAS,OAAO,MAAM;CAGhD,OAAO,WAAW,IAAI,KAAK,MAAM,OAAO,MAAM,KAAK,CAAC;AACtD;AACA,WAAW,MAAM,SAAS,OAAO,MAAM,OAAO;CAG5C,OAAO,YAAY,IAAI,KAAK,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,EAAE;AACnE;AACA,SAAS,KAAK,OAAO,MAAM;CACzB,MAAM,QAAQ,MAAM;CAEpB,QADe,QAAQ,OAAO,KAAK,IAAI,MAAA,CACzB;AAChB;AACA,SAAS,mBAAmB,OAAO,MAAM,OAAO;CAC9C,IAAI,MAAM,UAAU,KAAiB,CAAC,MAAM,yBAAyB,MAAM,WAAW,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,MAAM,cAC9H,OAAO;CAET,OAAO,MAAM,UAAU,IAAI,KAAK;AAClC;AACA,SAAS,kBAAkB,OAAO,QAAQ,MAAM;CAC9C,MAAM,OAAO,uBAAuB,QAAQ,IAAI;CAChD,OAAO,OAAO,SAAS,OAAO,KAAK,SAGjC,KAAK,KAAK,KAAK,MAAM,MAAM,IACzB,KAAK;AACX;AACA,SAAS,uBAAuB,QAAQ,MAAM;CAC5C,IAAI,EAAE,QAAQ,SACZ,OAAO,KAAK;CACd,IAAI,QAAQ,eAAe,MAAM;CACjC,OAAO,OAAO;EACZ,MAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;EACxD,IAAI,MACF,OAAO;EACT,QAAQ,eAAe,KAAK;CAC9B;AAEF;AACA,SAAS,YAAY,OAAO;CAC1B,IAAI,CAAC,MAAM,WAAW;EACpB,MAAM,YAAY;EAClB,IAAI,MAAM,SACR,YAAY,MAAM,OAAO;CAE7B;AACF;AACA,SAAS,YAAY,OAAO;CAC1B,IAAI,CAAC,MAAM,OAAO;EAChB,MAAM,4BAA4B,IAAI,IAAI;EAC1C,MAAM,QAAQ,YACZ,MAAM,OACN,MAAM,OAAO,OAAO,qBACtB;CACF;AACF;AAGA,IAAI,SAAS,MAAM;CACjB,YAAY,QAAQ;EAClB,KAAK,cAAc;EACnB,KAAK,wBAAwB;EAC7B,KAAK,sBAAsB;;;;;;;;;;;;;;;;;;;;EAoB3B,KAAK,WAAW,MAAM,QAAQ,kBAAkB;GAC9C,IAAI,WAAW,IAAI,KAAK,CAAC,WAAW,MAAM,GAAG;IAC3C,MAAM,cAAc;IACpB,SAAS;IACT,MAAM,OAAO;IACb,OAAO,SAAS,eAAe,QAAQ,aAAa,GAAG,MAAM;KAC3D,OAAO,KAAK,QAAQ,QAAQ,UAAU,OAAO,KAAK,MAAM,OAAO,GAAG,IAAI,CAAC;IACzE;GACF;GACA,IAAI,CAAC,WAAW,MAAM,GACpB,IAAI,CAAC;GACP,IAAI,kBAAkB,KAAK,KAAK,CAAC,WAAW,aAAa,GACvD,IAAI,CAAC;GACP,IAAI;GACJ,IAAI,YAAY,IAAI,GAAG;IACrB,MAAM,QAAQ,WAAW,IAAI;IAC7B,MAAM,QAAQ,YAAY,OAAO,MAAM,KAAK,CAAC;IAC7C,IAAI,WAAW;IACf,IAAI;KACF,SAAS,OAAO,KAAK;KACrB,WAAW;IACb,UAAU;KACR,IAAI,UACF,YAAY,KAAK;UAEjB,WAAW,KAAK;IACpB;IACA,kBAAkB,OAAO,aAAa;IACtC,OAAO,cAAc,QAAQ,KAAK;GACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;IACtC,SAAS,OAAO,IAAI;IACpB,IAAI,WAAW,KAAK,GAClB,SAAS;IACX,IAAI,WAAW,SACb,SAAS,KAAK;IAChB,IAAI,KAAK,aACP,OAAO,QAAQ,IAAI;IACrB,IAAI,eAAe;KACjB,MAAM,IAAI,CAAC;KACX,MAAM,KAAK,CAAC;KACZ,UAAU,aAAa,CAAC,CAAC,4BAA4B,MAAM,QAAQ;MACjE,UAAU;MACV,iBAAiB;KACnB,CAAC;KACD,cAAc,GAAG,EAAE;IACrB;IACA,OAAO;GACT,OACE,IAAI,GAAG,IAAI;EACf;EACA,KAAK,sBAAsB,MAAM,WAAW;GAC1C,IAAI,WAAW,IAAI,GACjB,QAAQ,OAAO,GAAG,SAAS,KAAK,mBAAmB,QAAQ,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC;GAE3F,IAAI,SAAS;GAKb,OAAO;IAJQ,KAAK,QAAQ,MAAM,SAAS,GAAG,OAAO;KACnD,UAAU;KACV,iBAAiB;IACnB,CACa;IAAG;IAAS;GAAc;EACzC;EACA,IAAIC,YAAU,QAAQ,UAAU,GAC9B,KAAK,cAAc,OAAO,UAAU;EACtC,IAAIA,YAAU,QAAQ,oBAAoB,GACxC,KAAK,wBAAwB,OAAO,oBAAoB;EAC1D,IAAIA,YAAU,QAAQ,kBAAkB,GACtC,KAAK,sBAAsB,OAAO,kBAAkB;CACxD;CACA,YAAY,MAAM;EAChB,IAAI,CAAC,YAAY,IAAI,GACnB,IAAI,CAAC;EACP,IAAI,QAAQ,IAAI,GACd,OAAO,QAAQ,IAAI;EACrB,MAAM,QAAQ,WAAW,IAAI;EAC7B,MAAM,QAAQ,YAAY,OAAO,MAAM,KAAK,CAAC;EAC7C,MAAM,YAAY,CAAC,YAAY;EAC/B,WAAW,KAAK;EAChB,OAAO;CACT;CACA,YAAY,OAAO,eAAe;EAChC,MAAM,QAAQ,SAAS,MAAM;EAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,WACnB,IAAI,CAAC;EACP,MAAM,EAAE,QAAQ,UAAU;EAC1B,kBAAkB,OAAO,aAAa;EACtC,OAAO,cAAc,KAAK,GAAG,KAAK;CACpC;;;;;;CAMA,cAAc,OAAO;EACnB,KAAK,cAAc;CACrB;;;;;;CAMA,wBAAwB,OAAO;EAC7B,KAAK,wBAAwB;CAC/B;;;;;;;CAOA,sBAAsB,OAAO;EAC3B,KAAK,sBAAsB;CAC7B;CACA,2BAA2B;EACzB,OAAO,KAAK;CACd;CACA,aAAa,MAAM,SAAS;EAC1B,IAAI;EACJ,KAAK,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;GACxC,MAAM,QAAQ,QAAQ;GACtB,IAAI,MAAM,KAAK,WAAW,KAAK,MAAM,OAAO,WAAW;IACrD,OAAO,MAAM;IACb;GACF;EACF;EACA,IAAI,IAAI,IACN,UAAU,QAAQ,MAAM,IAAI,CAAC;EAE/B,MAAM,mBAAmB,UAAU,aAAa,CAAC,CAAC;EAClD,IAAI,QAAQ,IAAI,GACd,OAAO,iBAAiB,MAAM,OAAO;EAEvC,OAAO,KAAK,QACV,OACC,UAAU,iBAAiB,OAAO,OAAO,CAC5C;CACF;AACF;AACA,SAAS,YAAY,WAAW,OAAO,QAAQ,KAAK;CAClD,MAAM,CAAC,OAAO,SAAS,MAAM,KAAK,IAAI,UAAU,YAAY,CAAC,CAAC,UAAU,OAAO,MAAM,IAAI,MAAM,KAAK,IAAI,UAAU,YAAY,CAAC,CAAC,UAAU,OAAO,MAAM,IAAI,iBAAiB,OAAO,MAAM;CAEzL,CADc,QAAQ,UAAU,gBAAgB,EAAA,CAC1C,QAAQ,KAAK,KAAK;CACxB,MAAM,aAAa,QAAQ,cAAc,CAAC;CAC1C,MAAM,OAAO;CACb,IAAI,UAAU,QAAQ,KAAK,GACzB,kCAAkC,QAAQ,OAAO,GAAG;MAEpD,MAAM,WAAW,KAAK,SAAS,iBAAiB,YAAY;EAC1D,WAAW,eAAe,eAAe,KAAK;EAC9C,MAAM,EAAE,iBAAiB;EACzB,IAAI,MAAM,aAAa,cACrB,aAAa,iBAAiB,OAAO,CAAC,GAAG,UAAU;CAEvD,CAAC;CAEH,OAAO;AACT;AAGA,SAAS,QAAQ,OAAO;CACtB,IAAI,CAAC,QAAQ,KAAK,GAChB,IAAI,IAAI,KAAK;CACf,OAAO,YAAY,KAAK;AAC1B;AACA,SAAS,YAAY,OAAO;CAC1B,IAAI,CAAC,YAAY,KAAK,KAAK,SAAS,KAAK,GACvC,OAAO;CACT,MAAM,QAAQ,MAAM;CACpB,IAAI;CACJ,IAAI,SAAS;CACb,IAAI,OAAO;EACT,IAAI,CAAC,MAAM,WACT,OAAO,MAAM;EACf,MAAM,aAAa;EACnB,OAAO,YAAY,OAAO,MAAM,OAAO,OAAO,qBAAqB;EACnE,SAAS,MAAM,OAAO,OAAO,yBAAyB;CACxD,OACE,OAAO,YAAY,OAAO,IAAI;CAEhC,KACE,OACC,KAAK,eAAe;EACnB,IAAI,MAAM,KAAK,YAAY,UAAU,CAAC;CACxC,GACA,MACF;CACA,IAAI,OACF,MAAM,aAAa;CAErB,OAAO;AACT;AAsTsB,WAAW,UACa;AA0d9C,IAAI,UAAU,IADE,OACF,CAAA,CAAM;AAQpB,IAAI,aAAa,UAAU;;;ACpoD3B,SAAS,sBAAsB,eAAe;CAC5C,MAAM,cAAc,EAAE,UAAU,gBAAgB,UAAU,WAAW;EACnE,IAAI,OAAO,WAAW,YACpB,OAAO,OAAO,UAAU,UAAU,aAAa;EAEjD,OAAO,KAAK,MAAM;CACpB;CACA,OAAO;AACT;AACA,IAAI,QAAQ,sBAAsB;AAClC,IAAI,oBAAoB;;;ACqBxB,IAAI,sBAAsB,OAAO,WAAW,eAAe,OAAO,uCAAuC,OAAO,uCAAuC,WAAW;CAChK,IAAI,UAAU,WAAW,GAAG,OAAO,KAAK;CACxC,IAAI,OAAO,UAAU,OAAO,UAAU,OAAO;CAC7C,OAAO,QAAQ,MAAM,MAAM,SAAS;AACtC;AACuB,OAAO,WAAW,eAAe,OAAO,gCAA+B,OAAO;AAerG,SAAS,aAAa,MAAM,eAAe;CACzC,SAAS,cAAc,GAAG,MAAM;EAC9B,IAAI,eAAe;GACjB,IAAI,WAAW,cAAc,GAAG,IAAI;GACpC,IAAI,CAAC,UACH,MAAM,IAAI,MAA8C,uBAAuB,CAAC,CAA4C;GAE9H,OAAO;IACL;IACA,SAAS,SAAS;IAClB,GAAG,UAAU,YAAY,EACvB,MAAM,SAAS,KACjB;IACA,GAAG,WAAW,YAAY,EACxB,OAAO,SAAS,MAClB;GACF;EACF;EACA,OAAO;GACL;GACA,SAAS,KAAK;EAChB;CACF;CACA,cAAc,iBAAiB,GAAG;CAClC,cAAc,OAAO;CACrB,cAAc,SAAS,WAAW,SAAS,MAAM,KAAK,OAAO,SAAS;CACtE,OAAO;AACT;AAwDA,IAAI,QAAQ,MAAM,eAAe,MAAM;CACrC,YAAY,GAAG,OAAO;EACpB,MAAM,GAAG,KAAK;EACd,OAAO,eAAe,MAAM,OAAO,SAAS;CAC9C;CACA,YAAY,OAAO,WAAW;EAC5B,OAAO;CACT;CACA,OAAO,GAAG,KAAK;EACb,OAAO,MAAM,OAAO,MAAM,MAAM,GAAG;CACrC;CACA,QAAQ,GAAG,KAAK;EACd,IAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,IAAI,EAAE,GAC1C,OAAO,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC;EAE1C,OAAO,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,CAAC;CACvC;AACF;AACA,SAAS,gBAAgB,KAAK;CAC5B,OAAO,YAAY,GAAG,IAAI,QAAQ,WAAW,CAC7C,CAAC,IAAI;AACP;AACA,SAAS,oBAAoB,KAAK,KAAK,SAAS;CAC9C,IAAI,IAAI,IAAI,GAAG,GAAG,OAAO,IAAI,IAAI,GAAG;CACpC,OAAO,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;AAC3C;AAiQA,SAAS,UAAU,GAAG;CACpB,OAAO,OAAO,MAAM;AACtB;AACA,IAAI,kCAAkC,SAAS,qBAAqB,SAAS;CAC3E,MAAM,EACJ,OAAA,UAAQ,MACR,iBAAiB,MACjB,oBAAoB,MACpB,qBAAqB,SACnB,WAAW,CAAC;CAChB,IAAI,kBAAkB,IAAI,MAAM;CAChC,IAAIC,SAAO;EACT,IAAI,UAAUA,OAAK,GACjB,gBAAgB,KAAKC,KAAe;OAEpC,gBAAgB,KAAK,kBAAkBD,QAAM,aAAa,CAAC;CAE/D;CAwBA,OAAO;AACT;AAGA,IAAI,mBAAmB;AACvB,IAAI,4BAA4B,aAAa;CAC3C;CACA,MAAM,GACH,mBAAmB,KACtB;AACF;AACA,IAAI,wBAAwB,YAAY;CACtC,QAAQ,WAAW;EACjB,WAAW,QAAQ,OAAO;CAC5B;AACF;AACA,IAAI,8BAA8B,KAAK,YAAY;CACjD,QAAQ,WAAW;EACjB,IAAI,SAAS;EACb,MAAM,iBAAiB;GACrB,IAAI,QAAQ;GACZ,SAAS;GACT,qBAAqB,KAAK;GAC1B,aAAa,OAAO;GACpB,OAAO;EACT;EACA,MAAM,QAAQ,IAAI,QAAQ;EAC1B,MAAM,UAAU,WAAW,UAAU,OAAO;CAC9C;AACF;AACA,IAAI,qBAAqB,UAAU,EACjC,MAAM,MACR,OAAO,UAAU,GAAG,SAAS;CAC3B,MAAM,QAAQ,KAAK,GAAG,IAAI;CAC1B,IAAI,YAAY;CAChB,IAAI,0BAA0B;CAC9B,IAAI,qBAAqB;CACzB,MAAM,4BAA4B,IAAI,IAAI;CAC1C,MAAM,gBAAgB,QAAQ,SAAS,SAAS,iBAAiB,QAAQ,SAAS,QAEhF,OAAO,WAAW,eAAe,OAAO,wBAAwB,2BAA2B,OAAO,uBAAuB,GAAG,IAAI,qBAAqB,EAAE,IACrJ,QAAQ,SAAS,aAAa,QAAQ,oBAAoB,qBAAqB,QAAQ,OAAO;CAClG,MAAM,wBAAwB;EAC5B,qBAAqB;EACrB,IAAI,yBAAyB;GAC3B,0BAA0B;GAC1B,UAAU,SAAS,MAAM,EAAE,CAAC;EAC9B;CACF;CACA,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO;EAG9B,UAAU,WAAW;GACnB,MAAM,wBAAwB,aAAa,UAAU;GACrD,MAAM,cAAc,MAAM,UAAU,eAAe;GACnD,UAAU,IAAI,SAAS;GACvB,aAAa;IACX,YAAY;IACZ,UAAU,OAAO,SAAS;GAC5B;EACF;EAGA,SAAS,QAAQ;GACf,IAAI;IACF,YAAY,CAAC,QAAQ,OAAO;IAC5B,0BAA0B,CAAC;IAC3B,IAAI,yBACE;SAAA,CAAC,oBAAoB;MACvB,qBAAqB;MACrB,cAAc,eAAe;KAC/B;;IAEF,OAAO,MAAM,SAAS,MAAM;GAC9B,UAAU;IACR,YAAY;GACd;EACF;CACF,CAAC;AACH;AAGA,IAAI,4BAA4B,uBAAuB,SAAS,oBAAoB,SAAS;CAC3F,MAAM,EACJ,YAAY,SACV,WAAW,CAAC;CAChB,IAAI,gBAAgB,IAAI,MAAM,kBAAkB;CAChD,IAAI,WACF,cAAc,KAAK,kBAAkB,OAAO,cAAc,WAAW,YAAY,KAAK,CAAC,CAAC;CAE1F,OAAO;AACT;AAGA,SAAS,eAAe,SAAS;CAC/B,MAAM,uBAAuB,0BAA0B;CACvD,MAAM,EACJ,UAAU,KAAK,GACf,YACA,WAAW,MACX,2BAA2B,MAC3B,iBAAiB,KAAK,GACtB,YAAY,KAAK,MACf,WAAW,CAAC;CAChB,IAAI;CACJ,IAAI,OAAO,YAAY,YACrB,cAAc;MACT,IAAIE,gBAAc,OAAO,GAC9B,cAAc,gBAAgB,OAAO;MAErC,MAAM,IAAI,MAA8C,uBAAuB,CAAC,CAA8H;CAKhN,IAAI;CACJ,IAAI,OAAO,eAAe,YACxB,kBAAkB,WAAW,oBAAoB;MAKjD,kBAAkB,qBAAqB;CAczC,IAAI,eAAe;CACnB,IAAI,UACF,eAAe,oBAAoB;EAEjC,OAAO;EACP,GAAG,OAAO,aAAa,YAAY;CACrC,CAAC;CAGH,MAAM,sBAAsB,yBADD,gBAAgB,GAAG,eACwB,CAAC;CAIvE,IAAI,iBAAiB,OAAO,cAAc,aAAa,UAAU,mBAAmB,IAAI,oBAAoB;CAU5G,MAAM,mBAAmB,aAAa,GAAG,cAAc;CACvD,OAAO,YAAY,aAAa,gBAAgB,gBAAgB;AAClE;AAGA,SAAS,8BAA8B,iBAAiB;CACtD,MAAM,aAAa,CAAC;CACpB,MAAM,iBAAiB,CAAC;CACxB,IAAI;CACJ,MAAM,UAAU;EACd,QAAQ,qBAAqB,SAAS;GASpC,MAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;GACjG,IAAI,CAAC,MACH,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAAkE;GAErJ,IAAI,QAAQ,YACV,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA+F;GAElL,WAAW,QAAQ;GACnB,OAAO;EACT;EACA,cAAc,YAAY,UAAU;GAMlC,IAAI,SAAS,SAAS,WAAW,WAAW,QAAQ,QAAQ,SAAS;GACrE,IAAI,SAAS,UAAU,WAAW,WAAW,SAAS,QAAQ,SAAS;GACvE,IAAI,SAAS,WAAW,WAAW,WAAW,UAAU,QAAQ,SAAS;GACzE,IAAI,SAAS,SAAS,eAAe,KAAK;IACxC,SAAS,WAAW;IACpB,SAAS,SAAS;GACpB,CAAC;GACD,OAAO;EACT;EACA,WAAW,SAAS,SAAS;GAM3B,eAAe,KAAK;IAClB;IACA;GACF,CAAC;GACD,OAAO;EACT;EACA,eAAe,SAAS;GAMtB,qBAAqB;GACrB,OAAO;EACT;CACF;CACA,gBAAgB,OAAO;CACvB,OAAO;EAAC;EAAY;EAAgB;CAAkB;AACxD;AAGA,SAAS,gBAAgB,GAAG;CAC1B,OAAO,OAAO,MAAM;AACtB;AACA,SAAS,cAAc,cAAc,sBAAsB;CAMzD,IAAI,CAAC,YAAY,qBAAqB,2BAA2B,8BAA8B,oBAAoB;CACnH,IAAI;CACJ,IAAI,gBAAgB,YAAY,GAC9B,wBAAwB,gBAAgB,aAAa,CAAC;MACjD;EACL,MAAM,qBAAqB,gBAAgB,YAAY;EACvD,wBAAwB;CAC1B;CACA,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAQ;EAClD,IAAI,eAAe,CAAC,WAAW,OAAO,OAAO,GAAG,oBAAoB,QAAQ,EAC1E,cACI,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,EAC1B,SAAS,eACL,QAAQ,CAAC;EACf,IAAI,aAAa,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,GAC/C,eAAe,CAAC,uBAAuB;EAEzC,OAAO,aAAa,QAAQ,eAAe,gBAAgB;GACzD,IAAI,aAAa;IACf,IAAI,QAAQ,aAAa,GAAG;KAE1B,MAAM,SAAS,YAAYC,eAAO,MAAM;KACxC,IAAI,WAAW,KAAK,GAClB,OAAO;KAET,OAAO;IACT,OAAO,IAAI,CAAC,YAAY,aAAa,GAAG;KACtC,MAAM,SAAS,YAAY,eAAe,MAAM;KAChD,IAAI,WAAW,KAAK,GAAG;MACrB,IAAI,kBAAkB,MACpB,OAAO;MAET,MAAM,MAAM,mEAAmE;KACjF;KACA,OAAO;IACT,OACE,OAAO,QAAQ,gBAAgB,UAAU;KACvC,OAAO,YAAY,OAAO,MAAM;IAClC,CAAC;GAEL;GACA,OAAO;EACT,GAAG,KAAK;CACV;CACA,QAAQ,kBAAkB;CAC1B,OAAO;AACT;AA+EA,IAAI,cAAc;AAClB,IAAI,UAAU,OAAO,OAAO;CAC1B,IAAI,KAAK;CACT,IAAI,IAAI;CACR,OAAO,KACL,MAAM,YAAY,KAAK,OAAO,IAAI,KAAK;CAEzC,OAAO;AACT;AA2MA,IAAI,mBAAmC,uBAAO,IAAI,4BAA4B;AAU9E,SAAS,QAAQ,OAAO,WAAW;CACjC,OAAO,GAAG,MAAM,GAAG;AACrB;AACA,SAAS,iBAAiB,EACxB,aACE,CAAC,GAAG;CACN,MAAM,MAAM,UAAU,aAAa;CACnC,OAAO,SAAS,aAAa,SAAS;EACpC,MAAM,EACJ,MACA,cAAc,SACZ;EACJ,IAAI,CAAC,MACH,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAAiD;EAOpI,MAAM,YAAY,OAAO,QAAQ,aAAa,aAAa,QAAQ,SAAS,qBAAqB,CAAC,IAAI,QAAQ,aAAa,CAAC;EAC5H,MAAM,eAAe,OAAO,KAAK,QAAQ;EACzC,MAAM,UAAU;GACd,yBAAyB,CAAC;GAC1B,yBAAyB,CAAC;GAC1B,gBAAgB,CAAC;GACjB,eAAe,CAAC;EAClB;EACA,MAAM,iBAAiB;GACrB,QAAQ,qBAAqB,UAAU;IACrC,MAAM,OAAO,OAAO,wBAAwB,WAAW,sBAAsB,oBAAoB;IACjG,IAAI,CAAC,MACH,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAAkE;IAErJ,IAAI,QAAQ,QAAQ,yBAClB,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA4F;IAE/K,QAAQ,wBAAwB,QAAQ;IACxC,OAAO;GACT;GACA,WAAW,SAAS,UAAU;IAC5B,QAAQ,cAAc,KAAK;KACzB;KACA,SAAS;IACX,CAAC;IACD,OAAO;GACT;GACA,aAAa,OAAO,eAAe;IACjC,QAAQ,eAAe,SAAS;IAChC,OAAO;GACT;GACA,kBAAkB,OAAO,UAAU;IACjC,QAAQ,wBAAwB,SAAS;IACzC,OAAO;GACT;EACF;EACA,aAAa,SAAS,gBAAgB;GACpC,MAAM,oBAAoB,SAAS;GACnC,MAAM,iBAAiB;IACrB;IACA,MAAM,QAAQ,MAAM,WAAW;IAC/B,gBAAgB,OAAO,QAAQ,aAAa;GAC9C;GACA,IAAI,mCAAmC,iBAAiB,GACtD,iCAAiC,gBAAgB,mBAAmB,gBAAgB,GAAG;QAEvF,8BAA8B,gBAAgB,mBAAmB,cAAc;EAEnF,CAAC;EACD,SAAS,eAAe;GAMtB,MAAM,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,GAAG,qBAAqB,KAAK,KAAK,OAAO,QAAQ,kBAAkB,aAAa,8BAA8B,QAAQ,aAAa,IAAI,CAAC,QAAQ,aAAa;GAC1M,MAAM,oBAAoB;IACxB,GAAG;IACH,GAAG,QAAQ;GACb;GACA,OAAO,cAAc,QAAQ,eAAe,YAAY;IACtD,KAAK,IAAI,OAAO,mBACd,QAAQ,QAAQ,KAAK,kBAAkB,IAAI;IAE7C,KAAK,IAAI,MAAM,QAAQ,eACrB,QAAQ,WAAW,GAAG,SAAS,GAAG,OAAO;IAE3C,KAAK,IAAI,KAAK,gBACZ,QAAQ,WAAW,EAAE,SAAS,EAAE,OAAO;IAEzC,IAAI,oBACF,QAAQ,eAAe,kBAAkB;GAE7C,CAAC;EACH;EACA,MAAM,cAAc,UAAU;EAC9B,MAAM,wCAAwC,IAAI,IAAI;EACtD,MAAM,qCAAqC,IAAI,QAAQ;EACvD,IAAI;EACJ,SAAS,QAAQ,OAAO,QAAQ;GAC9B,IAAI,CAAC,UAAU,WAAW,aAAa;GACvC,OAAO,SAAS,OAAO,MAAM;EAC/B;EACA,SAAS,kBAAkB;GACzB,IAAI,CAAC,UAAU,WAAW,aAAa;GACvC,OAAO,SAAS,gBAAgB;EAClC;EACA,SAAS,kBAAkB,cAAc,WAAW,OAAO;GACzD,SAAS,YAAY,OAAO;IAC1B,IAAI,aAAa,MAAM;IACvB,IAAI,OAAO,eAAe,aACpB;SAAA,UACF,aAAa,oBAAoB,oBAAoB,aAAa,eAAe;IAAA;IAKrF,OAAO;GACT;GACA,SAAS,aAAa,cAAc,YAAY;IAE9C,OAAO,oBADe,oBAAoB,uBAAuB,gCAAgC,IAAI,QAAQ,CACtE,GAAG,mBAAmB;KAC3D,MAAM,MAAM,CAAC;KACb,KAAK,MAAM,CAAC,OAAO,aAAa,OAAO,QAAQ,QAAQ,aAAa,CAAC,CAAC,GACpE,IAAI,SAAS,aAAa,UAAU,mBAAmB,oBAAoB,oBAAoB,aAAa,eAAe,GAAG,QAAQ;KAExI,OAAO;IACT,CAAC;GACH;GACA,OAAO;IACL,aAAa;IACb;IACA,IAAI,YAAY;KACd,OAAO,aAAa,WAAW;IACjC;IACA;GACF;EACF;EACA,MAAM,QAAQ;GACZ;GACA;GACA,SAAS,QAAQ;GACjB,cAAc,QAAQ;GACtB;GACA,GAAG,kBAAkB,WAAW;GAChC,WAAW,YAAY,EACrB,aAAa,SACb,GAAG,WACD,CAAC,GAAG;IACN,MAAM,iBAAiB,WAAW;IAClC,WAAW,OAAO;KAChB,aAAa;KACb;IACF,GAAG,MAAM;IACT,OAAO;KACL,GAAG;KACH,GAAG,kBAAkB,gBAAgB,IAAI;IAC3C;GACF;EACF;EACA,OAAO;CACT;AACF;AACA,SAAS,aAAa,UAAU,aAAa,iBAAiB,UAAU;CACtE,SAAS,QAAQ,WAAW,GAAG,MAAM;EACnC,IAAI,aAAa,YAAY,SAAS;EACtC,IAAI,OAAO,eAAe,aACpB;OAAA,UACF,aAAa,gBAAgB;EAAA;EAKjC,OAAO,SAAS,YAAY,GAAG,IAAI;CACrC;CACA,QAAQ,YAAY;CACpB,OAAO;AACT;AACA,IAAI,cAA8B,iCAAiB;AACnD,SAAS,uBAAuB;CAC9B,SAAS,WAAW,gBAAgB,QAAQ;EAC1C,OAAO;GACL,wBAAwB;GACxB;GACA,GAAG;EACL;CACF;CACA,WAAW,kBAAkB;CAC7B,OAAO;EACL,QAAQ,aAAa;GACnB,OAAO,OAAO,OAAO,EAGnB,CAAC,YAAY,MAAM,GAAG,MAAM;IAC1B,OAAO,YAAY,GAAG,IAAI;GAC5B,EACF,EAAE,YAAY,OAAO,EACnB,wBAAwB,UAC1B,CAAC;EACH;EACA,gBAAgB,SAAS,SAAS;GAChC,OAAO;IACL,wBAAwB;IACxB;IACA;GACF;EACF;EACA;CACF;AACF;AACA,SAAS,8BAA8B,EACrC,MACA,aACA,kBACC,yBAAyB,SAAS;CACnC,IAAI;CACJ,IAAI;CACJ,IAAI,aAAa,yBAAyB;EACxC,IAAI,kBAAkB,CAAC,mCAAmC,uBAAuB,GAC/E,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA+G;EAElM,cAAc,wBAAwB;EACtC,kBAAkB,wBAAwB;CAC5C,OACE,cAAc;CAEhB,QAAQ,QAAQ,MAAM,WAAW,CAAC,CAAC,kBAAkB,aAAa,WAAW,CAAC,CAAC,aAAa,aAAa,kBAAkB,aAAa,MAAM,eAAe,IAAI,aAAa,IAAI,CAAC;AACrL;AACA,SAAS,mCAAmC,mBAAmB;CAC7D,OAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,mCAAmC,mBAAmB;CAC7D,OAAO,kBAAkB,2BAA2B;AACtD;AACA,SAAS,iCAAiC,EACxC,MACA,eACC,mBAAmB,SAAS,KAAK;CAClC,IAAI,CAAC,KACH,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA4L;CAE/Q,MAAM,EACJ,gBACA,WACA,SACA,UACA,SACA,YACE;CACJ,MAAM,QAAQ,IAAI,MAAM,gBAAgB,OAAO;CAC/C,QAAQ,aAAa,aAAa,KAAK;CACvC,IAAI,WACF,QAAQ,QAAQ,MAAM,WAAW,SAAS;CAE5C,IAAI,SACF,QAAQ,QAAQ,MAAM,SAAS,OAAO;CAExC,IAAI,UACF,QAAQ,QAAQ,MAAM,UAAU,QAAQ;CAE1C,IAAI,SACF,QAAQ,WAAW,MAAM,SAAS,OAAO;CAE3C,QAAQ,kBAAkB,aAAa;EACrC,WAAW,aAAaC;EACxB,SAAS,WAAWA;EACpB,UAAU,YAAYA;EACtB,SAAS,WAAWA;CACtB,CAAC;AACH;AACA,SAASA,SAAO,CAChB;AAibA,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,gBAAgB,QAAQ;AAC5B,IAAI,gBAAgB,QAAQ;AAC5B,IAAI,oBAAoB,GAAG,SAAS,GAAG;AACvC,IAAI,oBAAoB,GAAG,SAAS,GAAG;AACvC,IAAI,iBAAiB,MAAM;CACzB,YAAY,MAAM;EAChB,KAAK,OAAO;EACZ,KAAK,UAAU,GAAG,KAAK,GAAG,UAAU,YAAY,KAAK;CACvD;CACA;CACA,OAAO;CACP;AACF;AAGA,IAAI,kBAAkB,MAAM,aAAa;CACvC,IAAI,OAAO,SAAS,YAClB,MAAM,IAAI,UAAkD,uBAAuB,EAAE,CAAmC;AAE5H;AACA,IAAI,cAAc,CAClB;AACA,IAAI,kBAAkB,SAAS,UAAU,UAAU;CACjD,QAAQ,MAAM,OAAO;CACrB,OAAO;AACT;AACA,IAAI,0BAA0B,aAAa,aAAa;CACtD,YAAY,iBAAiB,SAAS,UAAU,EAC9C,MAAM,KACR,CAAC;CACD,aAAa,YAAY,oBAAoB,SAAS,QAAQ;AAChE;AAGA,IAAI,kBAAkB,WAAW;CAC/B,IAAI,OAAO,SACT,MAAM,IAAI,eAAe,OAAO,MAAM;AAE1C;AACA,SAAS,eAAe,QAAQ,SAAS;CACvC,IAAI,UAAU;CACd,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,wBAAwB,OAAO,IAAI,eAAe,OAAO,MAAM,CAAC;EACtE,IAAI,OAAO,SAAS;GAClB,gBAAgB;GAChB;EACF;EACA,UAAU,uBAAuB,QAAQ,eAAe;EACxD,QAAQ,cAAc,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,MAAM;CACvD,CAAC,CAAC,CAAC,cAAc;EACf,UAAU;CACZ,CAAC;AACH;AACA,IAAI,UAAU,OAAO,OAAO,YAAY;CACtC,IAAI;EACF,MAAM,QAAQ,QAAQ;EAEtB,OAAO;GACL,QAAQ;GACR,OAAA,MAHkB,MAAM;EAI1B;CACF,SAAS,OAAO;EACd,OAAO;GACL,QAAQ,iBAAiB,iBAAiB,cAAc;GACxD;EACF;CACF,UAAU;EACR,UAAU;CACZ;AACF;AACA,IAAI,eAAe,WAAW;CAC5B,QAAQ,YAAY;EAClB,OAAO,eAAe,eAAe,QAAQ,OAAO,CAAC,CAAC,MAAM,WAAW;GACrE,eAAe,MAAM;GACrB,OAAO;EACT,CAAC,CAAC;CACJ;AACF;AACA,IAAI,eAAe,WAAW;CAC5B,MAAM,QAAQ,YAAY,MAAM;CAChC,QAAQ,cAAc;EACpB,OAAO,MAAM,IAAI,SAAS,YAAY,WAAW,SAAS,SAAS,CAAC,CAAC;CACvE;AACF;AAGA,IAAI,EACF,WACE;AACJ,IAAI,qBAAqB,CAAC;AAC1B,IAAI,MAAM;AACV,IAAI,cAAc,mBAAmB,2BAA2B;CAC9D,MAAM,mBAAmB,eAAe,uBAAuB,yBAAyB,WAAW,MAAM,kBAAkB,MAAM,CAAC;CAClI,QAAQ,cAAc,SAAS;EAC7B,eAAe,cAAc,cAAc;EAC3C,MAAM,uBAAuB,IAAI,gBAAgB;EACjD,gBAAgB,oBAAoB;EACpC,MAAM,SAAS,QAAQ,YAAY;GACjC,eAAe,iBAAiB;GAChC,eAAe,qBAAqB,MAAM;GAC1C,MAAM,UAAU,MAAM,aAAa;IACjC,OAAO,YAAY,qBAAqB,MAAM;IAC9C,OAAO,YAAY,qBAAqB,MAAM;IAC9C,QAAQ,qBAAqB;GAC/B,CAAC;GACD,eAAe,qBAAqB,MAAM;GAC1C,OAAO;EACT,SAAS,qBAAqB,MAAM,aAAa,CAAC;EAClD,IAAI,MAAM,UACR,uBAAuB,KAAK,OAAO,MAAM,KAAK,CAAC;EAEjD,OAAO;GACL,QAAQ,YAAY,iBAAiB,CAAC,CAAC,MAAM;GAC7C,SAAS;IACP,qBAAqB,MAAM,aAAa;GAC1C;EACF;CACF;AACF;AACA,IAAI,qBAAqB,gBAAgB,WAAW;CAClD,MAAM,OAAO,OAAO,WAAW,YAAY;EACzC,eAAe,MAAM;EACrB,IAAI,oBAAoB,CACxB;EAcA,MAAM,WAAW,CAAC,IAbO,SAAS,SAAS,WAAW;GACpD,IAAI,gBAAgB,eAAe;IACjC;IACA,SAAS,QAAQ,gBAAgB;KAC/B,YAAY,YAAY;KACxB,QAAQ;MAAC;MAAQ,YAAY,SAAS;MAAG,YAAY,iBAAiB;KAAC,CAAC;IAC1E;GACF,CAAC;GACD,oBAAoB;IAClB,cAAc;IACd,OAAO;GACT;EACF,CAC6B,CAAC;EAC9B,IAAI,WAAW,MACb,SAAS,KAAK,IAAI,SAAS,YAAY,WAAW,SAAS,SAAS,IAAI,CAAC,CAAC;EAE5E,IAAI;GACF,MAAM,SAAS,MAAM,eAAe,QAAQ,QAAQ,KAAK,QAAQ,CAAC;GAClE,eAAe,MAAM;GACrB,OAAO;EACT,UAAU;GACR,YAAY;EACd;CACF;CACA,SAAS,WAAW,YAAY,eAAe,KAAK,WAAW,OAAO,CAAC;AACzE;AACA,IAAI,6BAA6B,YAAY;CAC3C,IAAI,EACF,MACA,eACA,SACA,WACA,WACE;CACJ,IAAI,MACF,YAAY,aAAa,IAAI,CAAC,CAAC;MAC1B,IAAI,eAAe;EACxB,OAAO,cAAc;EACrB,YAAY,cAAc;CAC5B,OAAO,IAAI,SACT,YAAY;MACP,IAAI,WAAW,CACtB,OACE,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA6F;CAEhL,eAAe,QAAQ,kBAAkB;CACzC,OAAO;EACL;EACA;EACA;CACF;AACF;AACA,IAAI,sBAAsC,wBAAQ,YAAY;CAC5D,MAAM,EACJ,MACA,WACA,WACE,0BAA0B,OAAO;CAWrC,OAAO;EATL,IAAI,OAAO;EACX;EACA;EACA;EACA,yBAAyB,IAAI,IAAI;EACjC,mBAAmB;GACjB,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAAiC;EACpH;CAES;AACb,GAAG,EACD,iBAAiB,oBACnB,CAAC;AACD,IAAI,qBAAqB,aAAa,YAAY;CAChD,MAAM,EACJ,MACA,QACA,cACE,0BAA0B,OAAO;CACrC,OAAO,MAAM,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU;EAEtD,QAD6B,OAAO,SAAS,WAAW,MAAM,SAAS,OAAO,MAAM,cAAc,cACnE,MAAM,WAAW;CAClD,CAAC;AACH;AACA,IAAI,yBAAyB,UAAU;CACrC,MAAM,QAAQ,SAAS,eAAe;EACpC,WAAW,MAAM,iBAAiB;CACpC,CAAC;AACH;AACA,IAAI,iCAAiC,aAAa,uBAAuB;CACvE,aAAa;EACX,KAAK,MAAM,aAAa,mBAAmB,KAAK,GAC9C,sBAAsB,SAAS;EAEjC,YAAY,MAAM;CACpB;AACF;AACA,IAAI,qBAAqB,cAAc,eAAe,cAAc;CAClE,IAAI;EACF,aAAa,eAAe,SAAS;CACvC,SAAS,mBAAmB;EAC1B,iBAAiB;GACf,MAAM;EACR,GAAG,CAAC;CACN;AACF;AACA,IAAI,cAA8B,uBAAuB,6BAAa,GAAG,IAAI,KAAK,GAAG,EACnF,iBAAiB,YACnB,CAAC;AACD,IAAI,oBAAoC,6BAAa,GAAG,IAAI,WAAW;AACvE,IAAI,iBAAiC,uBAAuB,6BAAa,GAAG,IAAI,QAAQ,GAAG,EACzF,iBAAiB,eACnB,CAAC;AACD,IAAI,uBAAuB,GAAG,SAAS;CACrC,QAAQ,MAAM,GAAG,IAAI,SAAS,GAAG,IAAI;AACvC;AACA,IAAI,4BAA4B,oBAAoB,CAAC,MAAM;CACzD,MAAM,8BAA8B,IAAI,IAAI;CAC5C,MAAM,qCAAqC,IAAI,IAAI;CACnD,MAAM,0BAA0B,UAAU;EACxC,MAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;EAC/C,mBAAmB,IAAI,OAAO,QAAQ,CAAC;CACzC;CACA,MAAM,4BAA4B,UAAU;EAC1C,MAAM,QAAQ,mBAAmB,IAAI,KAAK,KAAK;EAC/C,IAAI,UAAU,GACZ,mBAAmB,OAAO,KAAK;OAE/B,mBAAmB,IAAI,OAAO,QAAQ,CAAC;CAE3C;CACA,MAAM,EACJ,OACA,UAAU,wBACR;CACJ,eAAe,SAAS,SAAS;CACjC,MAAM,eAAe,UAAU;EAC7B,MAAM,oBAAoB,YAAY,OAAO,MAAM,EAAE;EACrD,YAAY,IAAI,MAAM,IAAI,KAAK;EAC/B,QAAQ,kBAAkB;GACxB,MAAM,YAAY;GAClB,IAAI,eAAe,cACjB,sBAAsB,KAAK;EAE/B;CACF;CACA,MAAM,mBAAmB,YAAY;EACnC,MAAM,QAAQ,kBAAkB,aAAa,OAAO,KAAK,oBAAoB,OAAO;EACpF,OAAO,YAAY,KAAK;CAC1B;CACA,OAAO,gBAAgB,EACrB,iBAAiB,eACnB,CAAC;CACD,MAAM,iBAAiB,YAAY;EACjC,MAAM,QAAQ,kBAAkB,aAAa,OAAO;EACpD,IAAI,OAAO;GACT,MAAM,YAAY;GAClB,IAAI,QAAQ,cACV,sBAAsB,KAAK;EAE/B;EACA,OAAO,CAAC,CAAC;CACX;CACA,OAAO,eAAe,EACpB,iBAAiB,cACnB,CAAC;CACD,MAAM,iBAAiB,OAAO,OAAO,QAAQ,KAAK,qBAAqB;EACrE,MAAM,yBAAyB,IAAI,gBAAgB;EACnD,MAAM,OAAO,kBAAkB,gBAAgB,uBAAuB,MAAM;EAC5E,MAAM,mBAAmB,CAAC;EAC1B,IAAI;GACF,MAAM,QAAQ,IAAI,sBAAsB;GACxC,uBAAuB,KAAK;GAC5B,MAAM,QAAQ,QAAQ,MAAM,OAC1B,QAEA,OAAO,CAAC,GAAG,KAAK;IACd;IACA,YAAY,WAAW,YAAY,KAAK,WAAW,OAAO,CAAC,CAAC,KAAK,OAAO;IACxE;IACA,OAAO,YAAY,uBAAuB,MAAM;IAChD,OAAO,YAAY,uBAAuB,MAAM;IAChD;IACA,QAAQ,uBAAuB;IAC/B,MAAM,WAAW,uBAAuB,QAAQ,gBAAgB;IAChE,aAAa,MAAM;IACnB,iBAAiB;KACf,YAAY,IAAI,MAAM,IAAI,KAAK;IACjC;IACA,6BAA6B;KAC3B,MAAM,QAAQ,SAAS,YAAY,GAAG,QAAQ;MAC5C,IAAI,eAAe,wBAAwB;OACzC,WAAW,MAAM,iBAAiB;OAClC,IAAI,OAAO,UAAU;MACvB;KACF,CAAC;IACH;IACA,cAAc;KACZ,uBAAuB,MAAM,iBAAiB;KAC9C,MAAM,QAAQ,OAAO,sBAAsB;IAC7C;IACA,wBAAwB;KACtB,eAAe,uBAAuB,MAAM;IAC9C;GACF,CAAC,CACH,CAAC;EACH,SAAS,eAAe;GACtB,IAAI,EAAE,yBAAyB,iBAC7B,kBAAkB,SAAS,eAAe,EACxC,UAAU,SACZ,CAAC;EAEL,UAAU;GACR,MAAM,QAAQ,IAAI,gBAAgB;GAClC,uBAAuB,MAAM,iBAAiB;GAC9C,yBAAyB,KAAK;GAC9B,MAAM,QAAQ,OAAO,sBAAsB;EAC7C;CACF;CACA,MAAM,0BAA0B,8BAA8B,aAAa,kBAAkB;CAC7F,MAAM,cAAc,SAAS,UAAU,WAAW;EAChD,IAAI,CAAC,SAAS,MAAM,GAClB,OAAO,KAAK,MAAM;EAEpB,IAAI,YAAY,MAAM,MAAM,GAC1B,OAAO,eAAe,OAAO,OAAO;EAEtC,IAAI,kBAAkB,MAAM,MAAM,GAAG;GACnC,wBAAwB;GACxB;EACF;EACA,IAAI,eAAe,MAAM,MAAM,GAC7B,OAAO,cAAc,OAAO,OAAO;EAErC,IAAI,gBAAgB,IAAI,SAAS;EACjC,MAAM,yBAAyB;GAC7B,IAAI,kBAAkB,oBACpB,MAAM,IAAI,MAA8C,uBAAuB,EAAE,CAA+D;GAElJ,OAAO;EACT;EACA,IAAI;EACJ,IAAI;GACF,SAAS,KAAK,MAAM;GACpB,IAAI,YAAY,OAAO,GAAG;IACxB,MAAM,eAAe,IAAI,SAAS;IAClC,MAAM,kBAAkB,MAAM,KAAK,YAAY,OAAO,CAAC;IACvD,KAAK,MAAM,SAAS,iBAAiB;KACnC,IAAI,cAAc;KAClB,IAAI;MACF,cAAc,MAAM,UAAU,QAAQ,cAAc,aAAa;KACnE,SAAS,gBAAgB;MACvB,cAAc;MACd,kBAAkB,SAAS,gBAAgB,EACzC,UAAU,YACZ,CAAC;KACH;KACA,IAAI,CAAC,aACH;KAEF,eAAe,OAAO,QAAQ,KAAK,gBAAgB;IACrD;GACF;EACF,UAAU;GACR,gBAAgB;EAClB;EACA,OAAO;CACT;CACA,OAAO;EACL;EACA;EACA;EACA,gBAAgB;CAClB;AACF;AA6HA,SAAS,uBAAuB,MAAM;CACpC,OAAO,iCAAiC,KAAK,mDAAmD,KAAK;AACvG;;;ACvtEA,IAAI,mBAAmB,YAAY;CACjC,MAAM;CACN,cAAA;EAbA,YAAY;EACZ,OAAO;EACP,QAAQ;EACR,QAAQ;GACN,KAAK;GACL,OAAO;GACP,QAAQ;GACR,MAAM;EACR;EACA,OAAO;CAII;CACX,UAAU;EACR,UAAU,OAAO,QAAQ;GACvB,MAAM,aAAa,OAAO;EAC5B;EACA,aAAa,OAAO,QAAQ;GAC1B,MAAM,QAAQ,OAAO,QAAQ;GAC7B,MAAM,SAAS,OAAO,QAAQ;EAChC;EACA,UAAU,OAAO,QAAQ;GACvB,IAAI,qBAAqB,uBAAuB,uBAAuB;GACvE,MAAM,OAAO,OAAO,sBAAsB,OAAO,QAAQ,SAAS,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB;GACjI,MAAM,OAAO,SAAS,wBAAwB,OAAO,QAAQ,WAAW,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;GAC3I,MAAM,OAAO,UAAU,wBAAwB,OAAO,QAAQ,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;GAC7I,MAAM,OAAO,QAAQ,uBAAuB,OAAO,QAAQ,UAAU,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB;EACxI;EACA,SAAS,OAAO,QAAQ;GACtB,MAAM,QAAQ,OAAO;EACvB;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,iBAAiB;AAC3C,IAAA,YAAY,sBAAsB;AAClC,IAAA,YAAY,sBAAsB;AAClC,IAAA,eAAe,sBAAsB;AACrC,IAAA,WAAW,sBAAsB;AAEnC,IAAW,qBAAqB,iBAAiB;;;AC1CjD,SAAgB,UAAU,KAAK,YAAY,UAAU;CACnD,IAAI,CAAC,MAAM,QAAQ,GAAG,GACpB,OAAO;CAET,IAAI,OAAO,aAAa,aAAa,GACnC,OAAO,IAAI,MAAM,YAAY,WAAW,CAAC;CAE3C,OAAO;AACT;;;ACRA,SAAgB,oBAAoB,GAAG;CACrC,OAAO,OAAO,SAAS,CAAC;AAC1B;AACA,SAAgB,iBAAiB,GAAG;CAClC,OAAO,OAAO,MAAM,YAAY,IAAI,KAAK,OAAO,SAAS,CAAC;AAC5D;;;ACLA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAQvT,SAAgB,kBAAkB,KAAK,SAAS,cAAc;CAC5D,IAAI,UAAU,GAAG,KAAK,UAAU,OAAO,GACrC,OAAO;CAET,IAAI,WAAW,OAAO,GACpB,OAAOC,MAAI,KAAK,SAAS,YAAY;CAEvC,IAAI,OAAO,YAAY,YACrB,OAAO,QAAQ,GAAG;CAEpB,OAAO;AACT;AACA,IAAW,wBAAwB,QAAQ,gBAAgB,eAAe;CACxE,IAAI,kBAAkB,YAAY;EAChC,IAAI,WAAW,WAAW,OACxB,YAAY,WAAW;EACzB,IAAI,QAAQ,eAAe,OACzB,gBAAgB,eAAe,eAC/B,SAAS,eAAe,QACxB,WAAW,eAAe,UAC1B,wBAAwB,eAAe,QACvC,eAAe,0BAA0B,KAAK,IAAI,IAAI;EACxD,IAAI,YAAY,MAAM;GAEpB,IAAI,kBAAkB,QAAQ,GAAG;IAC/B,IAAI,aAAa,SAAS,SAAS,OAAO,GAAG,GAC3C,OAAOJ,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAClD,KAAK,OAAO,OAAO,aAAa,KAAK,aACvC,CAAC;IAEH,IAAI,aAAa,YAAY,SAAS,OAAO,MAAM,GACjD,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAClD,QAAQ,OAAO,UAAU,aAAa,KAAK,aAC7C,CAAC;IAEH,IAAI,aAAa,UAAU,SAAS,OAAO,IAAI,GAC7C,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAClD,MAAM,OAAO,QAAQ,YAAY,KAAK,aACxC,CAAC;IAEH,IAAI,aAAa,WAAW,SAAS,OAAO,KAAK,GAC/C,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAClD,OAAO,OAAO,SAAS,YAAY,KAAK,aAC1C,CAAC;GAEL;GACA,OAAO;EACT;EACA,KAAK,WAAW,cAAc,WAAW,gBAAgB,kBAAkB,aAAa,UAAU,YAAY,SAAS,OAAO,MAAM,GAClI,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GACjD,QAAQ,OAAO,UAAU,YAAY,GACxC,CAAC;EAEH,KAAK,WAAW,gBAAgB,WAAW,cAAc,UAAU,aAAa,kBAAkB,YAAY,SAAS,OAAO,cAAc,GAC1I,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GACjD,gBAAgB,OAAO,kBAAkB,aAAa,GACzD,CAAC;CAEL;CACA,OAAO;AACT;AACA,IAAW,qBAAqB,QAAQ,aAAa,WAAW,gBAAgB,aAAa,WAAW,WAAW,cAAc,aAAa,WAAW,WAAW,aAAa,aAAa,eAAe,WAAW,YAAY,aAAa;;;;;;;;;AAUjP,IAAW,wBAAwB,OAAO,UAAU,UAAU,kBAAkB;CAC9E,IAAI,eACF,OAAO,MAAM,KAAI,UAAS,MAAM,UAAU;CAE5C,IAAI,QAAQ;CACZ,IAAI,SAAS,MAAM,KAAI,UAAS;EAC9B,IAAI,MAAM,eAAe,UACvB,SAAS;EAEX,IAAI,MAAM,eAAe,UACvB,SAAS;EAEX,OAAO,MAAM;CACf,CAAC;CACD,IAAI,CAAC,QACH,OAAO,KAAK,QAAQ;CAEtB,IAAI,CAAC,QACH,OAAO,KAAK,QAAQ;CAEtB,OAAO;AACT;;;;;;;;;AASA,IAAW,kBAAkB,MAAM,QAAQ,UAAU;CACnD,IAAI,CAAC,MACH,OAAO;CAET,IAAI,kBAAkB,KAAK,iBACzB,OAAO,KAAK,MACZ,QAAQ,KAAK,OACb,QAAQ,KAAK,OACb,gBAAgB,KAAK,eACrB,gBAAgB,KAAK,eACrB,oBAAoB,KAAK,mBACzB,YAAY,KAAK,WACjB,QAAQ,KAAK,OACb,YAAY,KAAK,WACjB,WAAW,KAAK;CAClB,IAAI,CAAC,OACH,OAAO;CAET,IAAI,gBAAgB,kBAAkB,eAAe,MAAM,YAAY,MAAM,UAAU,IAAI,IAAI;CAC/F,IAAI,UAAU,UAAU,UAAU,SAAS,cAAc,MAAM,YAAY,MAAM,UAAU,IAAI,gBAAgB;CAC/G,SAAS,aAAa,eAAe,SAAS,MAAM,UAAU,IAAI,SAAS,MAAM,KAAK,MAAM,EAAE,IAAI,IAAI,SAAS;CAG/G,IAAI,WAAW,SAAS,YAgBtB,QAfc,SAAS,aAAa,CAAC,EAAA,CAAG,KAAK,OAAO,UAAU;EAC5D,IAAI,eAAe,kBAAkB,gBAAgB,QAAQ,KAAK,IAAI;EACtE,IAAI,SAAS,MAAM,IAAI,YAAY;EACnC,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GAGL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QACE;CAKd,IAAI,iBAAiB,mBACnB,OAAO,kBAAkB,KAAK,OAAO,UAAU;EAC7C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAEpB,IAAI,MAAM,SAAS,CAAC,SAAS,aAAa,MACxC,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAAK,OAAO,UAAU;EAClD,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAIpB,OAAO,MAAM,OAAO,CAAC,CAAC,KAAK,OAAO,UAAU;EAC1C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GAErB,OAAO,kBAAkB,gBAAgB,SAAS;GAClD;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;AACpB;;;;;;;;AASA,IAAW,oBAAoB,OAAO,WAAW;CAC/C,IAAI,CAAC,UAAU,OAAO,WAAW,KAAK,CAAC,SAAS,OAAO,EAAE,KAAK,CAAC,SAAS,OAAO,EAAE,GAC/E,OAAO;CAET,IAAI,WAAW,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE;CAC5C,IAAI,WAAW,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE;CAC5C,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM,EAAE;CAChC,IAAI,CAAC,SAAS,MAAM,EAAE,KAAK,MAAM,KAAK,UACpC,OAAO,KAAK;CAEd,IAAI,CAAC,SAAS,MAAM,EAAE,KAAK,MAAM,KAAK,UACpC,OAAO,KAAK;CAEd,IAAI,OAAO,KAAK,UACd,OAAO,KAAK;CAEd,IAAI,OAAO,KAAK,UACd,OAAO,KAAK;CAEd,OAAO;AACT;;;;;;;;;AAUA,IAAW,cAAa,WAAU;CAChC,IAAI;CACJ,IAAI,IAAI,OAAO;CACf,IAAI,KAAK,GACP;CAEF,IAAI,KAAK,WAAW,OAAO,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;CACnF,IAAI,KAAK,QAAQ,KAAK,GACpB;CAEF,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;EAC1B,IAAI,WAAW;EACf,IAAI,WAAW;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;GAC1B,IAAI,MAAM,OAAO;GACjB,IAAI,MAAM,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI;GACxD,IAAI,OAAO,MACT;GAEF,IAAI,UAAU,IAAI;GAClB,IAAI,UAAU,IAAI;GAClB,IAAI,QAAQ,MAAM,OAAO,IAAI,UAAU;GACvC,IAAI,SAAS,GAAG;IACd,IAAI,KAAK;IACT,YAAY;IACZ,IAAI,KAAK;GACX,OAAO;IACL,IAAI,KAAK;IACT,YAAY;IACZ,IAAI,KAAK;GACX;EACF;CACF;AACF;;;;;;;;;AAUA,IAAW,kBAAiB,WAAU;CACpC,IAAI;CACJ,IAAI,IAAI,OAAO;CACf,IAAI,KAAK,GACP;CAEF,IAAI,KAAK,YAAY,OAAO,QAAQ,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU;CACtF,IAAI,KAAK,QAAQ,KAAK,GACpB;CAEF,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;EAC1B,IAAI,WAAW;EACf,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;GAC1B,IAAI,MAAM,OAAO;GACjB,IAAI,MAAM,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI;GACxD,IAAI,OAAO,MACT;GAEF,IAAI,QAAQ,MAAM,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI;GACzC,IAAI,SAAS,GAAG;IACd,IAAI,KAAK;IACT,YAAY;IACZ,IAAI,KAAK;GACX,OAAO;IACL,IAAI,KAAK;IACT,IAAI,KAAK;GACX;EACF;CACF;AACF;;;;;;;;;;;;;;;AAiBA,IAAI,mBAAmB;CACrB,MAAM;CAEN,QAAQK;CAER,MAAMC;CAEN,YAAYC;CAEZ,QAAQC;CACR,UAAU;AACZ;AACA,IAAW,kBAAkB,MAAM,UAAU,eAAe;CAC1D,IAAI;CACJ,IAAI,kBAAkB,wBAAwB,iBAAiB,iBAAiB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwBF;CAInJ,IAAI,SAHQG,cAAW,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,QAAQ,OAAO,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAMC,YAAc,CAAC,CAEpH,OAAO,cACS,CAAC,CAAC,IAAI;CAGvB,OAAO,SAAS,QAAQ,gBAAgB;EACtC,OAAO,SAAS,OAAO,eAAe;GACpC,IAAI,QAAQ,kBAAkB,KAAK,aAAa,SAAS,cAAc,CAAC;GACxE,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAK,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,GAAG;IAE1F,MAAM,KAAK,MAAM;IAEjB,MAAM,KAAK,MAAM;GACnB;EACF,CAAC;CACH,CAAC;CACD,OAAO;AACT;;;;;;;;;;AAaA,SAAgB,qBAAqB,eAAe;CAClD,OAAO,iBAAiB,OAAO,KAAA,IAAY,OAAO,aAAa;AACjE;AA2BA,IAAW,0BAAyB,UAAS;CAC3C,IAAI,OAAO,MAAM,MACf,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,QAAQ,MAAM,OACd,QAAQ,MAAM;CAChB,IAAI,KAAK,SAAS,YAChB,OAAO,MAAM,SAAS,MAAM,MAAM,CAAC,aAAa,SAAS;CAG3D,IAAI,QAAQ,kBAAkB,OAAO,KAAK,SAAS,KAAK,MAAM,OAAO,CAAC,CAAC,MAAM;CAC7E,IAAI,UAAU,KAAK,GACjB,OAAO;CAET,IAAI,SAAS,KAAK,MAAM,IAAI,KAAK;CACjC,IAAI,CAAC,SAAS,MAAM,GAClB,OAAO;CAET,OAAO,SAAS,WAAW,IAAI;AACjC;AACA,IAAW,qBAAoB,UAAS;CACtC,IAAI,cAAc,MAAM;CACxB,IAAI,SAAS,YAAY,MAAM,OAAO;CACtC,IAAI,YAAY,SAAS,UAAU;EAEjC,IAAI,WAAW,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE;EAE5C,IAAI,WAAW,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE;EAC5C,IAAI,YAAY,KAAK,YAAY,GAC/B,OAAO;EAET,IAAI,WAAW,GACb,OAAO;EAET,OAAO;CACT;CACA,OAAO,OAAO;AAChB;AACA,IAAI,qBAAoB,SAAQ;CAC9B,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ;CACvC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;AAC9C;AACA,IAAI,oBAAmB,WAAU;CAC/B,OAAO,CAAC,OAAO,OAAO,WAAW,IAAI,OAAO,IAAI,OAAO,OAAO,YAAY,IAAI,OAAO,EAAE;AACzF;AACA,IAAW,0BAA0B,aAAa,YAAY,aAAa;CACzE,IAAI,eAAe,QAAQ,OAAO,KAAK,WAAW,CAAC,CAAC,WAAW,GAC7D;CAEF,OAAO,iBAAiB,OAAO,KAAK,WAAW,CAAC,CAAC,QAAQ,QAAQ,YAAY;EAC3E,IAAI,QAAQ,YAAY;EACxB,IAAI,CAAC,OACH,OAAO;EAGT,IAAI,SADc,MAAM,YACC,QAAQ,KAAK,UAAU;GAE9C,IAAI,IAAI,kBADK,UAAU,OAAO,YAAY,QACX,CAAC;GAChC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,oBAAoB,EAAE,EAAE,GACzD,OAAO;GAET,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;EACxD,GAAG,CAAC,UAAU,SAAS,CAAC;EACxB,OAAO,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;CACxE,GAAG,CAAC,UAAU,SAAS,CAAC,CAAC;AAC3B;AACA,IAAW,gBAAgB;AAC3B,IAAW,gBAAgB;;;;;;;;AAS3B,IAAW,qBAAqB,MAAM,OAAO,UAAU;CACrD,IAAI,QAAQ,KAAK,SAAS,KAAK,MAAM,WAAW;EAC9C,IAAI,YAAY,KAAK,MAAM,UAAU;EACrC,IAAI,CAAC,SAAS,YAAY,GACxB,OAAO;CAEX;CACA,IAAI,QAAQ,SAAS,MAAM,UAAU,GAAG;EACtC,IAAI,eAAeC,SAAO,QAAO,MAAK,EAAE,UAAU;EAIlD,IAAI,OAAO,CAAC;EACZ,IAAI,SAAS;EACb,KAAK,IAAI,IAAI,GAAG,MAAM,aAAa,QAAQ,IAAI,KAAK,KAAK;GACvD,IAAI,iBAAiB;GACrB,IAAI,SAAS,kBAAkB,aAAa,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,eAAe,QAAQ,gBAAgB,aAAa,IAAI,QAAQ,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,eAAe;GAC3P,KAAK,KAAK,GAAG;GACb,SAAS,KAAK,IAAI,KAAK,MAAM;EAC/B;EAQA,IAAI,mBAAmB,SAAS;EAChC,IAAI,WAAW;EACf,KAAK,IAAI,QAAQ,MACf,IAAI,OAAO,kBACT,WAAW,KAAK,IAAI,MAAM,QAAQ;EAGtC,OAAO,aAAa,WAAW,IAAI;CACrC;CACA,OAAO,QAAQ,KAAA,IAAY;AAC7B;AACA,SAAgB,gBAAgB,OAAO;CACrC,IAAI,uBAAuB,MAAM,sBAC/B,UAAU,MAAM,SAChB,UAAU,MAAM,SAChB,QAAQ,MAAM,OACd,OAAO,MAAM;CACf,OAAOX,iBAAcA,iBAAc,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG;EAChE;EACA;EACA;EACA;CACF,CAAC;AACH;AACA,SAAgB,mBAAmB,cAAc,SAAS;CACxD,IAAI,gBAAgB,MAClB,OAAO,OAAO,YAAY;CAE5B,IAAI,OAAO,YAAY,UACrB,OAAO;AAGX;AACA,IAAW,gCAAgC,YAAY,WAAW;CAChE,IAAI,WAAW,cACb,OAAO,WAAW;CAEpB,IAAI,WAAW,YACb,OAAO,WAAW;AAGtB;AACA,IAAW,4BAA4B,UAAU,WAAW;CAC1D,IAAI,WAAW,WACb,OAAO,SAAS;CAElB,OAAO,SAAS;AAClB;;;AC1iBA,IAAW,oBAAmB,UAAS,MAAM,OAAO;AACpD,IAAW,qBAAoB,UAAS,MAAM,OAAO;AACrD,IAAW,wBAAuB,UAAS,MAAM,OAAO;AACxD,IAAW,gBAAe,UAAS,MAAM,OAAO;;;ACFhD,IAAW,iBAAiB,gBAAe,UAAS,MAAM,cAAc,QAAO,aAAY;CACzF,OAAO,OAAO,OAAO,QAAQ;AAC/B,CAAC;AACD,IAAW,iBAAiB,gBAAe,UAAS,MAAM,cAAc,QAAO,aAAY;CACzF,OAAO,OAAO,OAAO,QAAQ;AAC/B,CAAC;;;;;;;;ACCD,IAAW,iCAAiC;;;ACP5C,SAASY,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAOvT,IAAW,qBAAoB,UAAS,MAAM,MAAM;AACpD,SAAgB,qBAAqB,OAAO;CAE1C,OADY,eAAe,KAChB,CAAC,CAAC,QAAQ,QAAQ,UAAU;EACrC,IAAI,MAAM,gBAAgB,UAAU,CAAC,MAAM,UAAU,CAAC,MAAM,MAE1D,OAAO,UADK,OAAO,MAAM,UAAU,WAAW,MAAM,QAAA;EAGtD,OAAO;CACT,GAAG,CAAC;AACN;AACA,SAAgB,sBAAsB,OAAO;CAE3C,OADY,eAAe,KAChB,CAAC,CAAC,QAAQ,QAAQ,UAAU;EACrC,IAAI,MAAM,gBAAgB,WAAW,CAAC,MAAM,UAAU,CAAC,MAAM,MAE3D,OAAO,UADK,OAAO,MAAM,UAAU,WAAW,MAAM,QAAA;EAGtD,OAAO;CACT,GAAG,CAAC;AACN;AACA,SAAgB,oBAAoB,OAAO;CAEzC,OADY,eAAe,KAChB,CAAC,CAAC,QAAQ,QAAQ,UAAU;EACrC,IAAI,MAAM,gBAAgB,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,MAEzD,OAAO,UADM,OAAO,MAAM,WAAW,WAAW,MAAM,SAAA;EAGxD,OAAO;CACT,GAAG,CAAC;AACN;AACA,SAAgB,uBAAuB,OAAO;CAE5C,OADY,eAAe,KAChB,CAAC,CAAC,QAAQ,QAAQ,UAAU;EACrC,IAAI,MAAM,gBAAgB,YAAY,CAAC,MAAM,UAAU,CAAC,MAAM,MAE5D,OAAO,UADM,OAAO,MAAM,WAAW,WAAW,MAAM,SAAA;EAGxD,OAAO;CACT,GAAG,CAAC;AACN;;;;;;;AAQA,IAAW,4BAA4B,eAAe;CAAC;CAAkB;CAAmB;CAAc;CAAmB;CAAsB;CAAuB;CAAqB;CAAwB;CAAsB;AAAgB,IAAI,YAAY,aAAa,QAAQ,aAAa,gBAAgB,iBAAiB,eAAe,kBAAkB,gBAAgB,eAAe;CAC9Y,IAAI,UAAU;EACZ,OAAO,OAAO,QAAQ,KAAK;EAC3B,QAAQ,OAAO,SAAS,KAAK;CAC/B;CAKA,IAAI,SAASH,iBAAcA,iBAAc,CAAC,GAAG;EAH3C,MAAM,OAAO,OAAO,KAAK;EACzB,SAAS,OAAO,UAAU,KAAK;CAEkB,CAAC,GAAG,OAAO;CAC9D,IAAI,cAAc,OAAO;CACzB,OAAO,UAAU;CACjB,SAAS,qBAAqB,QAAQ,gBAAgB,UAAU;CAChE,IAAI,cAAc,aAAa,OAAO,OAAO,OAAO;CACpD,IAAI,eAAe,cAAc,OAAO,MAAM,OAAO;CACrD,OAAOA,iBAAcA,iBAAc,EACjC,YACF,GAAG,MAAM,GAAG,CAAC,GAAG;EAEd,OAAO,KAAK,IAAI,aAAa,CAAC;EAC9B,QAAQ,KAAK,IAAI,cAAc,CAAC;CAClC,CAAC;AACH,CAAC;AACD,IAAW,qBAAqB,eAAe,4BAA2B,YAAW;CACnF,GAAG,OAAO;CACV,GAAG,OAAO;CACV,OAAO,OAAO;CACd,QAAQ,OAAO;AACjB,EAAE;AACF,IAAW,oBAAoB,eAAe,kBAAkB,oBAAoB,OAAO,YAAY;CACrG,GAAG;CACH,GAAG;CACH;CACA;AACF,EAAE;;;AC3FF,IAAI,kBAA+B,4BAAc,IAAI;AACrD,IAAW,sBAAsB,WAAW,eAAe,KAAK;;;ACChE,IAAW,uBAAsB,UAAS,MAAM;AAChD,IAAW,wBAAwB,eAAe;CAAC;CAAqB;CAA2B;AAAY,IAAI,eAAe,QAAQ,YAAY;CACpJ,QAAQ,cAAc;CACtB,GAAG,SAAS,cAAc,CAAC,IAAI,cAAc,IAAI,OAAO;CACxD,GAAG,SAAS,cAAc,CAAC,IAAI,cAAc,IAAI,OAAO,MAAM,OAAO,SAAS,OAAO,gBAAgB,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,WAAW;CACvK,OAAO,SAAS,cAAc,KAAK,IAAI,cAAc,QAAQ,OAAO;AACtE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC2BF,SAASI,WAAS,MAAM,YAAY,EAAE,QAAQ,UAAU,CAAC,GAAG;CAC3D,IAAI,cAAc,KAAK;CACvB,IAAI,cAAc;CAClB,MAAM,UAAU,SAAS,QAAQ,MAAM,SAAS,SAAS;CACzD,MAAM,WAAW,SAAS,QAAQ,MAAM,SAAS,UAAU;CAC3D,MAAM,eAAe;EACpB,IAAI,gBAAgB,MAAM;GACzB,KAAK,MAAM,aAAa,WAAW;GACnC,cAAc,KAAK;GACnB,cAAc;EACf;CACD;CACA,MAAM,mBAAmB;EACxB,IAAI,UAAU,OAAO;EACrB,OAAO;CACR;CACA,IAAI,YAAY;CAChB,MAAM,iBAAiB;EACtB,IAAI,aAAa,MAAM,aAAa,SAAS;EAC7C,YAAY,iBAAiB;GAC5B,YAAY;GACZ,WAAW;EACZ,GAAG,UAAU;CACd;CACA,MAAM,oBAAoB;EACzB,IAAI,cAAc,MAAM;GACvB,aAAa,SAAS;GACtB,YAAY;EACb;CACD;CACA,MAAM,eAAe;EACpB,YAAY;EACZ,cAAc,KAAK;EACnB,cAAc;CACf;CACA,MAAM,cAAc;EACnB,OAAO;CACR;CACA,MAAM,YAAY,SAAS,GAAG,MAAM;EACnC,IAAI,QAAQ,SAAS;EACrB,cAAc;EACd,cAAc;EACd,MAAM,cAAc,aAAa;EACjC,SAAS;EACT,IAAI,WAAW,aAAa,OAAO;CACpC;CACA,UAAU,WAAW;CACrB,UAAU,SAAS;CACnB,UAAU,QAAQ;CAClB,QAAQ,iBAAiB,SAAS,QAAQ,EAAE,MAAM,KAAK,CAAC;CACxD,OAAO;AACR;;;ACtFA,SAAS,SAAS,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG;CACrD,IAAI,OAAO,YAAY,UAAU,UAAU,CAAC;CAC5C,MAAM,EAAE,UAAU,OAAO,WAAW,MAAM,YAAY;CACtD,MAAM,QAAQ,MAAM,CAAC;CACrB,IAAI,SAAS,MAAM,KAAK;CACxB,IAAI,UAAU,MAAM,KAAK;CACzB,IAAI,SAAS,KAAK;CAClB,IAAI,YAAY;CAChB,MAAM,aAAa,WAAW,SAAS,GAAG,MAAM;EAC/C,SAAS,KAAK,MAAM,MAAM,IAAI;EAC9B,YAAY;CACb,GAAG,YAAY,EAAE,MAAM,CAAC;CACxB,MAAM,YAAY,SAAS,GAAG,MAAM;EACnC,IAAI,WAAW,MAAM;GACpB,IAAI,cAAc,MAAM,YAAY,KAAK,IAAI;GAC7C,IAAI,KAAK,IAAI,IAAI,aAAa,SAAS;IACtC,SAAS,KAAK,MAAM,MAAM,IAAI;IAC9B,YAAY,KAAK,IAAI;IACrB,WAAW,OAAO;IAClB,WAAW,SAAS;IACpB,OAAO;GACR;EACD;EACA,WAAW,MAAM,MAAM,IAAI;EAC3B,OAAO;CACR;CACA,MAAM,cAAc;EACnB,WAAW,MAAM;EACjB,OAAO;CACR;CACA,UAAU,SAAS,WAAW;CAC9B,UAAU,QAAQ;CAClB,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA,SAAS,SAAS,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG;CACrD,MAAM,EAAE,UAAU,MAAM,WAAW,SAAS;CAC5C,OAAO,SAAS,MAAM,YAAY;EACjC;EACA,SAAS;EACT;CACD,CAAC;AACF;;;ACrCA,IAAW,OAAO,SAAS,KAAK,WAAW,QAAQ;CACjD,KAAK,IAAI,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO,MAAM,QAClG,KAAK,OAAO,KAAK,UAAU;CAE7B,IAAa,OAAO,YAAY,eAAe,QAAQ,MAAM;EAC3D,IAAI,WAAW,KAAA,GACb,QAAQ,KAAK,6CAA6C;EAE5D,IAAI,CAAC,WAAW;GACd,IAAI,WAAW,KAAA,GACb,QAAQ,KAAK,+HAAoI;QAC5I;IACL,IAAI,WAAW;IACf,QAAQ,KAAK,OAAO,QAAQ,aAAa,KAAK,WAAW,CAAC;GAC5D;EACF;CACF;AACF;;;AClBA,IAAW,kCAAkC;CAC3C,OAAO;CACP,QAAQ;CACR,UAAU;CACV,UAAU;CACV,kBAAkB;EAChB,OAAO;EACP,QAAQ;CACV;AACF;AACA,IAAW,4BAA4B,gBAAgB,iBAAiB,UAAU;CAChF,IAAI,eAAe,MAAM,OACvB,QAAQ,iBAAiB,KAAK,IAAI,gCAAgC,QAAQ,cAC1E,gBAAgB,MAAM,QACtB,SAAS,kBAAkB,KAAK,IAAI,gCAAgC,SAAS,eAC7E,SAAS,MAAM,QACf,YAAY,MAAM;CAMpB,IAAI,kBAAkB,UAAU,KAAK,IAAI,iBAAiB,OAAO,KAAK;CACtE,IAAI,mBAAmB,UAAU,MAAM,IAAI,kBAAkB,OAAO,MAAM;CAC1E,IAAI,UAAU,SAAS,GAAG;EAExB,IAAI,iBAEF,mBAAmB,kBAAkB;OAChC,IAAI,kBAET,kBAAkB,mBAAmB;EAIvC,IAAI,aAAa,oBAAoB,QAAQ,mBAAmB,WAC9D,mBAAmB;CAEvB;CACA,OAAO;EACL;EACA;CACF;AACF;AACA,IAAI,eAAe;CACjB,OAAO;CACP,QAAQ;CACR,UAAU;AACZ;AACA,IAAI,YAAY;CACd,OAAO;CACP,WAAW;AACb;AACA,IAAI,YAAY;CACd,QAAQ;CACR,WAAW;AACb;AACA,IAAI,UAAU,CAAC;;;;;;;;;;;;;;;AAgBf,IAAW,oBAAmB,UAAS;CACrC,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM;CACjB,IAAI,iBAAiB,UAAU,KAAK;CACpC,IAAI,kBAAkB,UAAU,MAAM;CACtC,IAAI,kBAAkB,iBACpB,OAAO;CAET,IAAI,gBACF,OAAO;CAET,IAAI,iBACF,OAAO;CAET,OAAO;AACT;AACA,SAAgB,yBAAyB,MAAM;CAC7C,IAAI,QAAQ,KAAK,OACf,SAAS,KAAK,QACd,SAAS,KAAK;CAChB,IAAI,kBAAkB;CACtB,IAAI,mBAAmB;CACvB,IAAI,oBAAoB,KAAA,KAAa,qBAAqB,KAAA,GAAW;EACnE,kBAAkB,gCAAgC;EAClD,mBAAmB,gCAAgC;CACrD,OAAO,IAAI,oBAAoB,KAAA,GAC7B,kBAAkB,UAAU,SAAS,IAAI,KAAA,IAAY,gCAAgC;MAChF,IAAI,qBAAqB,KAAA,GAC9B,mBAAmB,UAAU,SAAS,IAAI,KAAA,IAAY,gCAAgC;CAExF,OAAO;EACL,OAAO;EACP,QAAQ;CACV;AACF;;;AC5GA,IAAIC,eAAY;CAAC;CAAU;CAAoB;CAAS;CAAU;CAAY;CAAa;CAAa;CAAY;CAAY;CAAM;CAAa;CAAY;AAAO;AACtK,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAC9D,SAASK,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAStM,IAAI,6BAA0C,4BAAc,gCAAgC,gBAAgB;AAC5G,SAAS,iBAAiB,MAAM;CAC9B,OAAO,iBAAiB,KAAK,KAAK,KAAK,iBAAiB,KAAK,MAAM;AACrE;AACA,SAAS,mCAAmC,MAAM;CAChD,IAAI,WAAW,KAAK,UAClB,QAAQ,KAAK,OACb,SAAS,KAAK;CAChB,IAAI,OAAO,eAAe;EACxB;EACA;CACF,IAAI,CAAC,OAAO,MAAM,CAAC;CACnB,IAAI,CAAC,iBAAiB,IAAI,GAMxB,OAAO;CAET,OAAoB,sBAAM,cAAc,2BAA2B,UAAU,EAC3E,OAAO,KACT,GAAG,QAAQ;AACb;AACA,IAAW,sCAAsC,WAAW,0BAA0B;AACtF,IAAI,wBAAqC,0BAAY,OAAO,QAAQ;CAClE,IAAI,SAAS,MAAM,QACjB,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,KAAK,IAAI,gCAAgC,mBAAmB,uBACzG,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,iBAAiB,MAAM,UACvB,WAAW,mBAAmB,KAAK,IAAI,gCAAgC,WAAW,gBAClF,YAAY,MAAM,WAClB,YAAY,MAAM,WAClB,WAAW,MAAM,UACjB,iBAAiB,MAAM,UACvB,WAAW,mBAAmB,KAAK,IAAI,gCAAgC,WAAW,gBAClF,KAAK,MAAM,IACX,YAAY,MAAM,WAClB,WAAW,MAAM,UACjB,cAAc,MAAM,OACpB,QAAQ,gBAAgB,KAAK,IAAI,CAAC,IAAI,aACtC,SAASD,4BAAyB,OAAOb,YAAS;CACpD,IAAI,eAAe,OAAO,IAAI;CAK9B,IAAI,cAAc,OAAO;CACzB,YAAY,UAAU;CACtB,oBAAoB,WAAW,aAAa,OAAO;CACnD,IAIE,aAAaO,kBAJC,SAAS;EACrB,gBAAgB,iBAAiB;EACjC,iBAAiB,iBAAiB;CACpC,CACoC,GAAG,CAAC,GACxC,QAAQ,WAAW,IACnB,WAAW,WAAW;CACxB,IAAI,mBAAmB,aAAa,UAAU,cAAc;EAC1D,UAAS,cAAa;GACpB,IAAI,eAAe,KAAK,MAAM,QAAQ;GACtC,IAAI,gBAAgB,KAAK,MAAM,SAAS;GACxC,IAAI,UAAU,mBAAmB,gBAAgB,UAAU,oBAAoB,eAC7E,OAAO;GAET,OAAO;IACL,gBAAgB;IAChB,iBAAiB;GACnB;EACF,CAAC;CACH,GAAG,CAAC,CAAC;CACL,gBAAgB;EACd,IAAI,aAAa,WAAW,QAAQ,OAAO,mBAAmB,aAC5D,OAAOQ;EAET,IAAI,YAAW,YAAW;GACxB,IAAI;GACJ,IAAI,QAAQ,QAAQ;GACpB,IAAI,SAAS,MACX;GAEF,IAAI,qBAAqB,MAAM,aAC7B,iBAAiB,mBAAmB,OACpC,kBAAkB,mBAAmB;GACvC,iBAAiB,gBAAgB,eAAe;GAChD,CAAC,uBAAuB,YAAY,aAAa,QAAQ,yBAAyB,KAAK,KAAK,qBAAqB,KAAK,aAAa,gBAAgB,eAAe;EACpK;EACA,IAAI,WAAW,GACb,WAAW,SAAS,UAAU,UAAU;GACtC,UAAU;GACV,SAAS;EACX,CAAC;EAEH,IAAI,WAAW,IAAI,eAAe,QAAQ;EAC1C,IAAI,wBAAwB,aAAa,QAAQ,sBAAsB,GACrE,iBAAiB,sBAAsB,OACvC,kBAAkB,sBAAsB;EAC1C,iBAAiB,gBAAgB,eAAe;EAChD,SAAS,QAAQ,aAAa,OAAO;EACrC,aAAa;GACX,SAAS,WAAW;EACtB;CACF,GAAG,CAAC,kBAAkB,QAAQ,CAAC;CAC/B,IAAI,iBAAiB,MAAM,gBACzB,kBAAkB,MAAM;CAC1B,KAAK,CAAC,UAAU,SAAS,GAAG,6CAA6C,MAAM;CAC/E,IAAI,wBAAwB,yBAAyB,gBAAgB,iBAAiB;EAClF;EACA;EACA;EACA;CACF,CAAC,GACD,kBAAkB,sBAAsB,iBACxC,mBAAmB,sBAAsB;CAC3C,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,mBAAmB,QAAQ,kBAAkB,KAAK,oBAAoB,QAAQ,mBAAmB,GAAG,iQAAiQ,iBAAiB,kBAAkB,OAAO,QAAQ,UAAU,WAAW,MAAM;CACpe,OAAoB,sBAAM,cAAc,OAAOd,YAAS;EACtD,IAAI,KAAK,GAAG,OAAO,EAAE,IAAI,KAAA;EACzB,WAAW,KAAK,iCAAiC,SAAS;EAC1D,OAAOE,iBAAcA,iBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;GACjD;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,KAAK;CACP,GAAG,MAAM,GAAgB,sBAAM,cAAc,OAAO,EAClD,OAAO,iBAAiB;EACtB;EACA;CACF,CAAC,EACH,GAAgB,sBAAM,cAAc,oCAAoC;EACtE,OAAO;EACP,QAAQ;CACV,GAAG,QAAQ,CAAC,CAAC;AACf,CAAC;;;;;;;;;;;;AAaD,IAAW,sBAAmC,0BAAY,OAAO,QAAQ;CACvE,IAAI,6BAA6B,8BAA8B;CAC/D,IAAI,iBAAiB,2BAA2B,KAAK,KAAK,iBAAiB,2BAA2B,MAAM,GAK1G,OAAO,MAAM;CAEf,IAAI,wBAAwB,yBAAyB;EACjD,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,QAAQ,MAAM;CAChB,CAAC,GACD,QAAQ,sBAAsB,OAC9B,SAAS,sBAAsB;CAMjC,IAAI,yBAAyB,yBAAyB,KAAA,GAAW,KAAA,GAAW;EACxE;EACA;EACA,QAAQ,MAAM;EACd,WAAW,MAAM;CACnB,CAAC,GACD,kBAAkB,uBAAuB,iBACzC,mBAAmB,uBAAuB;CAC5C,IAAI,SAAS,eAAe,KAAK,SAAS,gBAAgB,GAUxD,OAAoB,sBAAM,cAAc,oCAAoC;EAC1E,OAAO;EACP,QAAQ;CACV,GAAG,MAAM,QAAQ;CAMnB,OAAoB,sBAAM,cAAc,uBAAuBF,YAAS,CAAC,GAAG,OAAO;EAC1E;EACC;EACH;CACP,CAAC,CAAC;AACJ,CAAC;;;ACxND,IAAW,mBAAmB;CAC5B,IAAI;CACJ,IAAI,WAAW,cAAc;CAC7B,IAAI,cAAc,eAAe,kBAAkB;CACnD,IAAI,kBAAkB,eAAe,qBAAqB;CAC1D,IAAI,gBAAgB,kBAAkB,eAAe,mBAAmB,OAAO,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;CAC7I,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,cACpC,OAAO;CAET,OAAO;EACL,OAAO,gBAAgB,QAAQ,aAAa,OAAO,aAAa;EAChE,QAAQ,gBAAgB,SAAS,aAAa,MAAM,aAAa;EACjE,GAAG,aAAa;EAChB,GAAG,aAAa;CAClB;AACF;AACA,IAAI,+CAA+C;CACjD,KAAK;CACL,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACP,QAAQ;CACR,aAAa;AACf;;;;;;;;AAQA,IAAW,0BAA0B;CACnC,IAAI;CACJ,QAAQ,mBAAmB,eAAe,yBAAyB,OAAO,QAAQ,qBAAqB,KAAK,IAAI,mBAAmB;AACrI;;;;;;;;;;;;;;;;;;;;AAqBA,IAAW,sBAAsB;CAC/B,OAAO,eAAe,gBAAgB;AACxC;;;;;;;;;;;;;;;;;;;;AAqBA,IAAW,uBAAuB;CAChC,OAAO,eAAe,iBAAiB;AACzC;AAeA,IAAW,qBAAoB,UAAS,MAAM,OAAO;;;;;;;;;;;;;;;AAgBrD,IAAW,uBAAuB,eAAe,iBAAiB;;;;;;;;;;;AAYlE,IAAW,gCAAgC;CACzC,IAAI,SAAS,eAAe;CAC5B,IAAI,WAAW,gBAAgB,WAAW,YACxC,OAAO;AAGX;AACA,IAAW,0BAAyB,UAAS;CAC3C,IAAI,SAAS,MAAM,OAAO;CAC1B,IAAI,WAAW,aAAa,WAAW,UACrC,OAAO;AAGX;;;;;;;;;;;;AA2BA,IAAW,4BAA4B;CAMrC,OADa,eACD,MAAM,KAAA;AACpB;AACA,IAAW,mBAAkB,UAAS;CACpC,IAAI,WAAW,eAAe;CAQ9B,IAAI,aAAa,cAAc;CAC/B,IAAI,iBAAiB,MAAM,OACzB,kBAAkB,MAAM;CAC1B,IAAI,kCAAkC,8BAA8B;CACpE,IAAI,QAAQ;CACZ,IAAI,SAAS;CACb,IAAI,iCAAiC;EAYnC,QAAQ,gCAAgC,QAAQ,IAAI,gCAAgC,QAAQ;EAC5F,SAAS,gCAAgC,SAAS,IAAI,gCAAgC,SAAS;CACjG;CACA,gBAAgB;EACd,IAAI,CAAC,cAAc,iBAAiB,KAAK,KAAK,iBAAiB,MAAM,GACnE,SAAS,aAAa;GACpB;GACA;EACF,CAAC,CAAC;CAEN,GAAG;EAAC;EAAU;EAAY;EAAO;CAAM,CAAC;CACxC,OAAO;AACT;;;AClMA,IAAI,cAAc,YAAY;CAC5B,MAAM;CACN,cAAA;EAhBA,UAAU;GACR,QAAQ;GACR,OAAO;GACP,eAAe;GACf,YAAY;GACZ,UAAU,KAAA;GACV,QAAQ;EACV;EACA,MAAM;GACJ,OAAO;GACP,QAAQ;EACV;EACA,SAAS,CAAC;CAIC;CACX,UAAU;EACR,cAAc,OAAO,QAAQ;GAC3B,MAAM,KAAK,QAAQ,OAAO,QAAQ;GAClC,MAAM,KAAK,SAAS,OAAO,QAAQ;EACrC;EACA,kBAAkB,OAAO,QAAQ;GAC/B,MAAM,SAAS,QAAQ,OAAO,QAAQ;GACtC,MAAM,SAAS,SAAS,OAAO,QAAQ;GACvC,MAAM,SAAS,gBAAgB,OAAO,QAAQ;GAC9C,MAAM,SAAS,aAAa,OAAO,QAAQ;GAC3C,MAAM,SAAS,WAAW,OAAO,QAAQ;GACzC,MAAM,SAAS,SAAS,OAAO,QAAQ;EACzC;EACA,kBAAkB;GAChB,QAAQ,OAAO,QAAQ;IACrB,MAAM,QAAQ,KAAK,UAAU,OAAO,OAAO,CAAC;GAC9C;GACA,SAAS,mBAAmB;EAC9B;EACA,sBAAsB;GACpB,QAAQ,OAAO,QAAQ;IACrB,IAAI,kBAAkB,OAAO,SAC3B,OAAO,gBAAgB,MACvB,OAAO,gBAAgB;IACzB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,QAAQ,QAAQ,UAAU,IAAI,CAAC;IAC1D,IAAI,QAAQ,IACV,MAAM,QAAQ,SAAS,UAAU,IAAI;GAEzC;GACA,SAAS,mBAAmB;EAC9B;EACA,qBAAqB;GACnB,QAAQ,OAAO,QAAQ;IACrB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,QAAQ,QAAQ,UAAU,OAAO,OAAO,CAAC;IACpE,IAAI,QAAQ,IACV,MAAM,QAAQ,OAAO,OAAO,CAAC;GAEjC;GACA,SAAS,mBAAmB;EAC9B;CACF;AACF,CAAC;AACD,IAAI,uBAAuB,YAAY;AACrB,qBAAqB;AACjB,qBAAqB;AACzC,IAAA,mBAAmB,qBAAqB;AACxC,IAAA,uBAAuB,qBAAqB;AAC5C,IAAA,sBAAsB,qBAAqB;AAE7C,IAAW,gBAAgB,YAAY;;;;;;;;;;;;;CCnEvC,IAAI,QAAA,UAAgB,OAAO;CAKF,MAAM;CACpB,MAAM;CACH,MAAM;CACR,MAAM;CACA,MAAM;;;CCjBtB,OAAO,UAAA,yDAAA;;AC6ST,SAAS,iBAAiB,UAAU;CAClC,SAAS;AACX;AAGA,SAAS,2BAA2B;CAClC,IAAI,QAAQ;CACZ,IAAI,OAAO;CACX,OAAO;EACL,QAAQ;GACN,QAAQ;GACR,OAAO;EACT;EACA,SAAS;GACP,uBAAuB;IACrB,IAAI,WAAW;IACf,OAAO,UAAU;KACf,SAAS,SAAS;KAClB,WAAW,SAAS;IACtB;GACF,CAAC;EACH;EACA,MAAM;GACJ,MAAM,YAAY,CAAC;GACnB,IAAI,WAAW;GACf,OAAO,UAAU;IACf,UAAU,KAAK,QAAQ;IACvB,WAAW,SAAS;GACtB;GACA,OAAO;EACT;EACA,UAAU,UAAU;GAClB,IAAI,eAAe;GACnB,MAAM,WAAW,OAAO;IACtB;IACA,MAAM;IACN,MAAM;GACR;GACA,IAAI,SAAS,MACX,SAAS,KAAK,OAAO;QAErB,QAAQ;GAEV,OAAO,SAAS,cAAc;IAC5B,IAAI,CAAC,gBAAgB,UAAU,MAAM;IACrC,eAAe;IACf,IAAI,SAAS,MACX,SAAS,KAAK,OAAO,SAAS;SAE9B,OAAO,SAAS;IAElB,IAAI,SAAS,MACX,SAAS,KAAK,OAAO,SAAS;SAE9B,QAAQ,SAAS;GAErB;EACF;CACF;AACF;AACA,IAAI,gBAAgB;CAClB,SAAS,CACT;CACA,WAAW,CAAC;AACd;AACA,SAAS,mBAAmB,OAAO,WAAW;CAC5C,IAAI;CACJ,IAAI,YAAY;CAChB,IAAI,sBAAsB;CAC1B,IAAI,iBAAiB;CACrB,SAAS,aAAa,UAAU;EAC9B,aAAa;EACb,MAAM,kBAAkB,UAAU,UAAU,QAAQ;EACpD,IAAI,UAAU;EACd,aAAa;GACX,IAAI,CAAC,SAAS;IACZ,UAAU;IACV,gBAAgB;IAChB,eAAe;GACjB;EACF;CACF;CACA,SAAS,mBAAmB;EAC1B,UAAU,OAAO;CACnB;CACA,SAAS,sBAAsB;EAC7B,IAAI,aAAa,eACf,aAAa,cAAc;CAE/B;CACA,SAAS,eAAe;EACtB,OAAO;CACT;CACA,SAAS,eAAe;EACtB;EACA,IAAI,CAAC,aAAa;GAChB,cAAc,YAAY,UAAU,aAAa,mBAAmB,IAAI,MAAM,UAAU,mBAAmB;GAC3G,YAAY,yBAAyB;EACvC;CACF;CACA,SAAS,iBAAiB;EACxB;EACA,IAAI,eAAe,wBAAwB,GAAG;GAC5C,YAAY;GACZ,cAAc,KAAK;GACnB,UAAU,MAAM;GAChB,YAAY;EACd;CACF;CACA,SAAS,mBAAmB;EAC1B,IAAI,CAAC,gBAAgB;GACnB,iBAAiB;GACjB,aAAa;EACf;CACF;CACA,SAAS,qBAAqB;EAC5B,IAAI,gBAAgB;GAClB,iBAAiB;GACjB,eAAe;EACjB;CACF;CACA,MAAM,eAAe;EACnB;EACA;EACA;EACA;EACA,cAAc;EACd,gBAAgB;EAChB,oBAAoB;CACtB;CACA,OAAO;AACT;AAGA,IAAI,kBAAkB,CAAC,EAAE,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB;AAC7I,IAAI,QAAwB,0BAAU;AACtC,IAAI,+BAA+B,OAAO,cAAc,eAAe,UAAU,YAAY;AAC7F,IAAI,gBAAgC,uCAAuB;AAC3D,IAAI,qCAAqC,SAAS,gBAAgBe,QAAM,kBAAkBA,QAAM;AAChG,IAAI,4BAA4C,6CAA6B;AAG7E,SAAS,GAAG,GAAG,GAAG;CAChB,IAAI,MAAM,GACR,OAAO,MAAM,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI;MAE3C,OAAO,MAAM,KAAK,MAAM;AAE5B;AACA,SAAS,aAAa,MAAM,MAAM;CAChC,IAAI,GAAG,MAAM,IAAI,GAAG,OAAO;CAC3B,IAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MACpF,OAAO;CAET,MAAM,QAAQ,OAAO,KAAK,IAAI;CAC9B,MAAM,QAAQ,OAAO,KAAK,IAAI;CAC9B,IAAI,MAAM,WAAW,MAAM,QAAQ,OAAO;CAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,KAAK,MAAM,GAAG,GAC7F,OAAO;CAGX,OAAO;AACT;AAqFA,IAAI,aAA6B,uBAAO,IAAI,qBAAqB;AACjE,IAAI,KAAK,OAAO,eAAe,cAAc,aAE3C,CAAC;AAEH,SAAS,aAAa;CACpB,IAAI,CAACA,QAAM,eAAe,OAAO,CAAC;CAClC,MAAM,aAAa,GAAG,gCAAgC,IAAI,IAAI;CAC9D,IAAI,cAAc,WAAW,IAAIA,QAAM,aAAa;CACpD,IAAI,CAAC,aAAa;EAChB,cAAcA,QAAM,cAClB,IACF;EAIA,WAAW,IAAIA,QAAM,eAAe,WAAW;CACjD;CACA,OAAO;AACT;AACA,IAAI,oBAAoC,2BAAW;AA8SnD,SAAS,SAAS,eAAe;CAC/B,MAAM,EAAE,UAAU,SAAS,aAAa,UAAU;CAClD,MAAM,eAAeA,QAAM,cAAc;EACvC,MAAM,eAAe,mBAAmB,KAAK;EAO3C,OAAO;GALP;GACA;GACA,gBAAgB,oBAAoB,cAAc,KAAK;EAGjC;CAQ1B,GAAG,CAAC,OAAO,WAAW,CAAC;CACvB,MAAM,gBAAgBA,QAAM,cAAc,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC;CACnE,gCAAgC;EAC9B,MAAM,EAAE,iBAAiB;EACzB,aAAa,gBAAgB,aAAa;EAC1C,aAAa,aAAa;EAC1B,IAAI,kBAAkB,MAAM,SAAS,GACnC,aAAa,iBAAiB;EAEhC,aAAa;GACX,aAAa,eAAe;GAC5B,aAAa,gBAAgB,KAAK;EACpC;CACF,GAAG,CAAC,cAAc,aAAa,CAAC;CAChC,MAAM,UAAU,WAAW;CAC3B,OAAuB,wBAAM,cAAc,QAAQ,UAAU,EAAE,OAAO,aAAa,GAAG,QAAQ;AAChG;AACA,IAAI,mBAAmB;;;AC54BvB,IAAI,wCAAwB,IAAI,IAAI;CAAC;CAAY;CAAY;CAAa;CAAa;CAAe;CAAe;CAAsB;CAAc;CAAU;CAAO;CAAS;CAAQ;CAAU;CAAW;CAAY;CAAS;CAAS;CAAQ;CAEtP;CAAU;AAAiB,CAAC;;;;;;;;;;;;;;AAe5B,SAAS,cAAc,GAAG,GAAG;CAC3B,IAAI,KAAK,QAAQ,KAAK,MAKpB,OAAO;CAET,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAGxC,OAAO,MAAM,KAAK,MAAM,KAAK,MAAM;CAErC,OAAO,MAAM;AACf;;;;;;;;;;;;AAaA,SAAgB,cAAc,WAAW,WAAW;CAElD,KAAK,IAAI,uBAAO,IADE,IAAI,CAAC,GAAG,OAAO,KAAK,SAAS,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CACrD,GAKpB,IAAI,sBAAsB,IAAI,GAAG,GAAG;EAClC,IAAI,UAAU,QAAQ,QAAQ,UAAU,QAAQ,MAK9C;EAEF,IAAI,CAAC,aAAa,UAAU,MAAM,UAAU,IAAI,GAC9C,OAAO;CAKX,OAAO,IAAI,CAAC,cAAc,UAAU,MAAM,UAAU,IAAI,GACtD,OAAO;CAGX,OAAO;AACT;;;;;;ACvEA,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAS9D,SAAS,iBAAiB,OAAO;CAC/B,OAAO,MAAM,QAAQ,KAAK,KAAK,WAAW,MAAM,EAAE,KAAK,WAAW,MAAM,EAAE,IAAI,MAAM,KAAK,KAAK,IAAI;AACpG;;;;AAMA,IAAW,oCAAoC;CAC7C,WAAW;CACX,cAAc;EACZ,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,WAAW;EACT,SAAS;EACT,YAAY;EACZ,eAAe;EACf,OAAO;CACT;CACA,YAAY,CAAC;CACb,oBAAoB;AACtB;AACA,SAAS,iBAAiB,OAAO,YAAY;CAC3C,IAAI,cAAc,MAChB,OAAO;CAGT,OAAOK,SAAO,OAAO,UAAU;AACjC;;;;;;;AAQA,IAAW,yBAAwB,UAAS;CAC1C,IAAI,mBAAmB,MAAM,WAC3B,YAAY,qBAAqB,KAAK,IAAI,kCAAkC,YAAY,kBACxF,eAAe,MAAM,cACrB,YAAY,MAAM,WAClB,oBAAoB,MAAM,YAC1B,aAAa,sBAAsB,KAAK,IAAI,kCAAkC,aAAa,mBAC3F,UAAU,MAAM,SAChB,YAAY,MAAM,WAClB,aAAa,MAAM,YACnB,mBAAmB,MAAM,kBACzB,iBAAiB,MAAM,gBACvB,QAAQ,MAAM,OACd,iBAAiB,MAAM,gBACvB,wBAAwB,MAAM,oBAC9B,qBAAqB,0BAA0B,KAAK,IAAI,kCAAkC,qBAAqB;CACjH,IAAI,sBAAsB;EACxB,IAAI,WAAW,QAAQ,QAAQ;GAC7B,IAAI,YAAY;IACd,SAAS;IACT,QAAQ;GACV;GAEA,IAAI,QADgB,iBAAiB,SAAS,UACtB,CAAC,CAAC,KAAK,OAAO,MAAM;IAC1C,IAAI,CAAC,SAAS,MAAM,SAAS,QAC3B,OAAO;IAET,IAAI,iBAAiB,MAAM,aAAa,aAAa;IACrD,IAAI,QAAQ,MAAM,OAChB,OAAO,MAAM;IACf,IAAI,aAAa;IACjB,IAAI,YAAY;IAChB,IAAI,gBAAgB;KAClB,IAAI,YAAY,eAAe,OAAO,MAAM,OAAO,GAAG,OAAO;KAC7D,IAAI,MAAM,QAAQ,SAAS,GAAG;MAC5B,IAAI,aAAaN,kBAAe,WAAW,CAAC;MAC5C,aAAa,WAAW;MACxB,YAAY,WAAW;KACzB,OAAO,IAAI,aAAa,MACtB,aAAa;UAEb,OAAO;IAEX;IACA,IAAI,iBAAiBJ,iBAAcA,iBAAc,CAAC,GAAG,kCAAkC,SAAS,GAAG,CAAC,GAAG,EACrG,OAAO,MAAM,SAAS,kCAAkC,UAAU,MACpE,GAAG,SAAS;IACZ,OAAoB,sBAAM,cAAc,MAAM;KAC5C,WAAW;KACX,KAAK,gBAAgB,OAAO,CAAC;KAC7B,OAAO;IACT,GAAG,WAAW,SAAS,IAAiB,sBAAM,cAAc,QAAQ,EAClE,WAAW,6BACb,GAAG,SAAS,IAAI,MAAM,WAAW,SAAS,IAAiB,sBAAM,cAAc,QAAQ,EACrF,WAAW,kCACb,GAAG,SAAS,IAAI,MAAmB,sBAAM,cAAc,QAAQ,EAC7D,WAAW,8BACb,GAAG,UAAU,GAAgB,sBAAM,cAAc,QAAQ,EACvD,WAAW,6BACb,GAAG,MAAM,QAAQ,EAAE,CAAC;GACtB,CAAC;GACD,OAAoB,sBAAM,cAAc,MAAM;IAC5C,WAAW;IACX,OAAO;GACT,GAAG,KAAK;EACV;EACA,OAAO;CACT;CACA,IAAI,aAAaA,iBAAcA,iBAAc,CAAC,GAAG,kCAAkC,YAAY,GAAG,YAAY;CAC9G,IAAI,kBAAkBA,iBAAc,EAClC,QAAQ,EACV,GAAG,UAAU;CACb,IAAI,WAAW,CAAC,UAAU,KAAK;CAC/B,IAAI,aAAa,WAAW,QAAQ;CACpC,IAAI,YAAY,KAAK,4BAA4B,gBAAgB;CACjE,IAAI,UAAU,KAAK,0BAA0B,cAAc;CAC3D,IAAI,YAAY,kBAAkB,YAAY,KAAA,KAAa,YAAY,MACrE,aAAa,eAAe,OAAO,OAAO;CAE5C,IAAI,0BAA0B,qBAAqB;EACjD,MAAM;EACN,aAAa;CACf,IAAI,CAAC;CACL,OAAoB,sBAAM,cAAc,OAAOF,YAAS;EACtD,WAAW;EACX,OAAO;CACT,GAAG,uBAAuB,GAAgB,sBAAM,cAAc,KAAK;EACjE,WAAW;EACX,OAAO;CACT,GAAgB,sBAAM,eAAe,UAAU,IAAI,aAAa,GAAG,OAAO,UAAU,CAAC,GAAG,cAAc,CAAC;AACzG;;;ACpJA,IAAI,mBAAmB;AACvB,IAAI,iBAAiB,EACnB,YAAY,SACd;AACA,SAAgB,uBAAuB,MAAM;CAC3C,IAAI,aAAa,KAAK,YACpB,aAAa,KAAK,YAClB,aAAa,KAAK;CACpB,OAAO,KAAK,kBAAkB;GAC3B,GAAG,OAAO,kBAAkB,QAAQ,IAAI,SAAS,UAAU,KAAK,cAAc,SAAS,WAAW,CAAC,KAAK,cAAc,WAAW;GACjI,GAAG,OAAO,kBAAkB,OAAO,IAAI,SAAS,UAAU,KAAK,cAAc,SAAS,WAAW,CAAC,KAAK,aAAa,WAAW;GAC/H,GAAG,OAAO,kBAAkB,SAAS,IAAI,SAAS,UAAU,KAAK,cAAc,SAAS,WAAW,CAAC,KAAK,cAAc,WAAW;GAClI,GAAG,OAAO,kBAAkB,MAAM,IAAI,SAAS,UAAU,KAAK,cAAc,SAAS,WAAW,CAAC,KAAK,aAAa,WAAW;CACjI,CAAC;AACH;AACA,SAAgB,sBAAsB,OAAO;CAC3C,IAAI,qBAAqB,MAAM,oBAC7B,aAAa,MAAM,YACnB,MAAM,MAAM,KACZ,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,mBAAmB,MAAM,kBACzB,mBAAmB,MAAM,kBACzB,UAAU,MAAM,SAChB,mBAAmB,MAAM;CAC3B,IAAI,YAAY,SAAS,SAAS,IAAI,GACpC,OAAO,SAAS;CAElB,IAAI,WAAW,WAAW,OAAO,oBAAoB,SAAS,IAAI,SAAS;CAC3E,IAAI,WAAW,WAAW,OAAO;CACjC,IAAI,mBAAmB,MACrB,OAAO,iBAAiB,OAAO,WAAW;CAE5C,IAAI,aAAa,QAAQ;CACzB,IAAI,cAAc,MAChB,OAAO;CAET,IAAI,iBAAiB,MAAM;EAGzB,IAAIa,WAAmBC,YACrB,OAAO,KAAK,IAAI,UAAU,UAAU;EAEtC,OAAO,KAAK,IAAI,UAAU,UAAU;CACtC;CACA,IAAI,oBAAoB,MACtB,OAAO;CAIT,IAFsB,WAAW,mBACX,aAAa,kBAEjC,OAAO,KAAK,IAAI,UAAU,UAAU;CAEtC,OAAO,KAAK,IAAI,UAAU,UAAU;AACtC;AACA,SAAgB,kBAAkB,OAAO;CACvC,IAAI,aAAa,MAAM,YACrB,aAAa,MAAM;CAErB,OAAO,EACL,WAFiB,MAAM,iBAEK,eAAe,OAAO,YAAY,MAAM,CAAC,CAAC,OAAO,YAAY,QAAQ,IAAI,aAAa,OAAO,YAAY,MAAM,CAAC,CAAC,OAAO,YAAY,KAAK,EACvK;AACF;AACA,SAAgB,oBAAoB,OAAO;CACzC,IAAI,qBAAqB,MAAM,oBAC7B,aAAa,MAAM,YACnB,YAAY,MAAM,WAClB,aAAa,MAAM,YACnB,WAAW,MAAM,UACjB,mBAAmB,MAAM,kBACzB,aAAa,MAAM,YACnB,iBAAiB,MAAM,gBACvB,UAAU,MAAM;CAClB,IAAI,eAAe,YAAY;CAC/B,IAAI,cAAc,WAAW,SAAS,KAAK,WAAW,QAAQ,KAAK,YAAY;EAC7E,aAAa,sBAAsB;GACjC;GACA;GACA,KAAK;GACL,QAAQ;GACR;GACA;GACA,kBAAkB,WAAW;GAC7B;GACA,kBAAkB,QAAQ;EAC5B,CAAC;EACD,aAAa,sBAAsB;GACjC;GACA;GACA,KAAK;GACL,QAAQ;GACR;GACA;GACA,kBAAkB,WAAW;GAC7B;GACA,kBAAkB,QAAQ;EAC5B,CAAC;EACD,gBAAgB,kBAAkB;GAChC;GACA;GACA;EACF,CAAC;CACH,OACE,gBAAgB;CAElB,OAAO;EACL;EACA,YAAY,uBAAuB;GACjC;GACA;GACA;EACF,CAAC;CACH;AACF;;;ACnHA,IAAI,4BAA4B,EAAE,OAAO,WAAW,eAAe,OAAO,YAAY,QAAQ,OAAO,SAAS,aAAa,KAAK,OAAO;AACvI,IAAW,SAAS;CAClB,iBAAiB;CACjB,OAAO,oBAAoB;AAC7B;;;ACJA,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;;;;;;AAS9D,SAAgB,0BAA0B;CACxC,IASE,aAAaD,kBATC,eAAe;EAC3B,IAAI,OAAO,OACT,OAAO;EAET,IAAI,CAAC,OAAO,YACV,OAAO;EAET,OAAO,OAAO,WAAW,kCAAkC,CAAC,CAAC;CAC/D,CACoC,GAAG,CAAC,GACxC,uBAAuB,WAAW,IAClC,0BAA0B,WAAW;CACvC,gBAAgB;EACd,IAAI,CAAC,OAAO,YACV;EAEF,IAAI,aAAa,OAAO,WAAW,kCAAkC;EACrE,IAAI,qBAAqB;GACvB,wBAAwB,WAAW,OAAO;EAC5C;EACA,WAAW,iBAAiB,UAAU,YAAY;EAElD,aAAa;GACX,WAAW,oBAAoB,UAAU,YAAY;EACvD;CACF,GAAG,CAAC,CAAC;CACL,OAAO;AACT;;;AC1CA,SAASM,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAI9D,SAAS,0BAA0B,MAAM;CACvC,IAAI,KAAK,wBAAwB,KAAK,sBAAsB,QAC1D;CAEF,IAAI,KAAK,qBAAqB,KAAK,QAAQ;EACzC,IAAI,SAAS,OAAO,KAAK,oBAAoB,WAAW,KAAK,kBAAkB;EAC/E,OAAO,aAAa,OAAO,KAAK,mBAAmB,KAAK,CAAC,CAAC,OAAO,MAAM;CACzE;AAEF;AACA,SAAS,uBAAuB,OAAO;CACrC,IAAI,oBAAoB,oBAAoB,sBAAsB,oBAAoB,sBAAsB;CAC5G,IAAI,uBAAuB,wBAAwB;CACnD,IAOE,mBAAmBD,kBAPCM,QAAM,gBAAgB;EACxC,WAAW;EACX,uBAAuB;GACrB,GAAG;GACH,GAAG;EACL;CACF,EACgD,GAAG,CAAC,GACpD,QAAQ,iBAAiB,IACzB,WAAW,iBAAiB;CAC9B,QAAM,gBAAgB;EACpB,IAAI,iBAAgB,UAAS;GAC3B,IAAI,MAAM,QAAQ,UAAU;IAC1B,IAAI,qBAAqB,mBAAmB,qBAAqB;IACjE,SAAS;KACP,WAAW;KACX,uBAAuB;MACrB,IAAI,uBAAuB,oBAAoB,MAAM,gBAAgB,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,OAAO,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB;MAC7M,IAAI,uBAAuB,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,OAAO,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB;KAClN;IACF,CAAC;GACH;EACF;EACA,SAAS,iBAAiB,WAAW,aAAa;EAClD,aAAa;GACX,SAAS,oBAAoB,WAAW,aAAa;EACvD;CACF,GAAG,EAAE,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,IAAI,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,CAAC,CAAC;CACzO,IAAI,MAAM,gBAAgB,wBAAwB,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,OAAO,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,OAAO,MAAM,sBAAsB,OAAO,wBAAwB,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,OAAO,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,OAAO,MAAM,sBAAsB,IACngB,SAASV,iBAAcA,iBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACnD,WAAW,MACb,CAAC,CAAC;CAEJ,IAAI,uBAAuB,oBAAoB;EAC3C,oBAAoB,MAAM;EAC1B,YAAY,MAAM;EAClB,YAAY,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,MAAM,OAAO;EAC3E,WAAW,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,MAAM,OAAO;EAC1E,UAAU,MAAM;EAChB,kBAAkB,MAAM;EACxB,YAAY,MAAM;EAClB,gBAAgB,MAAM;EACtB,SAAS,MAAM;CACjB,CAAC,GACD,aAAa,qBAAqB,YAClC,gBAAgB,qBAAqB;CAevC,IAAI,aAAaA,iBAAcA,iBAAc,CAAC,GAd1B,MAAM,qBAAqB,CAAC,IAAIA,iBAAcA,iBAAc,EAC9E,YAAY,0BAA0B;EACpC;EACA,mBAAmB,MAAM;EACzB,QAAQ,MAAM;EACd,mBAAmB,MAAM;EACzB,iBAAiB,MAAM;CACzB,CAAC,EACH,GAAG,aAAa,GAAG,CAAC,GAAG;EACrB,eAAe;EACf,UAAU;EACV,KAAK;EACL,MAAM;CACR,CAAC,CAC6D,GAAG,CAAC,GAAG,EACnE,YAAY,CAAC,MAAM,aAAa,MAAM,UAAU,MAAM,aAAa,YAAY,SACjF,GAAG,MAAM,YAAY;CACrB,OAAoB,sBAAM,cAAc,OAAO;EAE7C,OAAO;EACP,UAAU;EACV,WAAW;EACX,OAAO;EACP,KAAK,MAAM;CACb,GAAG,MAAM,QAAQ;AACnB;AACA,IAAW,qBAAkC,sBAAM,KAAK,sBAAsB;;;AClG9E,IAAW,8BAA8B;CACvC,IAAI;CACJ,QAAQ,kBAAkB,gBAAe,UAAS,MAAM,UAAU,kBAAkB,OAAO,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB;AACpJ;;;;;;ACJA,SAASW,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAYvT,IAAI,kBAAkB;CACpB,kBAAA;CACA,gBAAA;CACA,YAAA;CACA,YAAA;CACA,YAAA;CACA,mBAAA;CACA,aAAA;CACA,gBAAA;CACA,gBAAA;CACA,cAAA;CACA,WAAA;CACA,gBAAA;CACA,iBAAA;AACF;;;;;;;AAUA,IAAI,WAAU,MAAK,oBAAoB,EAAE,CAAC,KAAK,oBAAoB,EAAE,CAAC;AACtE,IAAI,eAAc,MAAK,EAAE,QAAQ,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC;AACrE,IAAI,QAAO,MAAK,EAAE;AAClB,IAAI,QAAO,MAAK,EAAE;AAClB,IAAI,mBAAmB,MAAM,WAAW;CACtC,IAAI,OAAO,SAAS,YAClB,OAAO;CAET,IAAI,OAAO,QAAQ,OAAO,WAAW,IAAI,CAAC;CAC1C,KAAK,SAAS,mBAAmB,SAAS,gBAAgB,QAAQ;EAChE,IAAI,UAAU,gBAAgB,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,WAAW,aAAa,MAAM,GAAG;EACtF,IAAI,SACF,OAAO;CAEX;CACA,OAAO,gBAAgB,SAASC;AAClC;AAIA,IAAW,oBAAoB;CAC7B,cAAc;CACd,MAAM;AACR;;;;;AAMA,IAAWC,aAAU,SAAQ;CAC3B,IAAI,YAAY,KAAK,MACnB,OAAO,cAAc,KAAK,IAAI,kBAAkB,OAAO,WACvD,cAAc,KAAK,QACnB,SAAS,gBAAgB,KAAK,IAAI,CAAC,IAAI,aACvC,WAAW,KAAK,UAChB,SAAS,KAAK,QACd,oBAAoB,KAAK,cACzB,eAAe,sBAAsB,KAAK,IAAI,kBAAkB,eAAe;CACjF,IAAI,eAAe,gBAAgB,MAAM,MAAM;CAC/C,IAAI,eAAe,eAAe,OAAO,OAAO,OAAO,IAAI;CAM3D,IAAI,MAAM,QAAQ,QAAQ,GAAG;EAC3B,IAAI;EACJ,IAAI,aAAa,OAAO,KAAK,OAAO,UAAUL,iBAAcA,iBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACxF,MAAM,SAAS,OACjB,CAAC,CAAC;EACF,IAAI,WAAW,YACb,gBAAgBM,aAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAG,MAAK,EAAE,KAAK,CAAC;OAE7D,gBAAgBA,aAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAG,MAAK,EAAE,KAAK,CAAC;EAc/D,OAF4B,cAAc,QAAQ,WAAW,CAAC,CAAC,MAAM,YAE1C,CAAC,CADV,eAAe,WAAW,OAAO,WAAW,IAAI,UAC1B;CAC1C;CACA,IAAI;CACJ,IAAI,WAAW,cAAc,SAAS,QAAQ,GAC5C,eAAeA,aAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ;MAClD,IAAI,SAAS,QAAQ,GAC1B,eAAeA,aAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ;MAEvD,eAAeC,aAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI;CAK3C,OAD2B,aAAa,QAAQ,OAAO,CAAC,CAAC,MAAM,YACrC,CAAC,CAAC,YAAY;AAC1C;AACA,IAAW,SAAQ,UAAS;CAC1B,IAAI,YAAY,MAAM,WACpB,SAAS,MAAM,QACf,OAAO,MAAM,MACb,UAAU,MAAM;CAClB,IAAI,SAAS,eAAe;CAC5B,KAAK,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,MAClC,OAAO;CAET,IAAI,eAAe;EACjB,MAAM,MAAM;EACZ,QAAQ,MAAM;EACd,UAAU,MAAM;EAChB,QAAQ,MAAM,UAAU;EACxB,cAAc,MAAM;CACtB;CACA,IAAI,WAAW,UAAU,OAAO,SAASF,UAAQ,YAAY,IAAI;CACjE,OAAoB,sBAAM,cAAc,QAAQP,YAAS,CAAC,GAAG,sBAAsB,KAAK,GAAG,mBAAmB,KAAK,GAAG;EACpH,WAAW,KAAK,kBAAkB,SAAS;EAC3C,GAAG,aAAa,OAAO,KAAA,IAAY;EACnC,KAAK;CACP,CAAC,CAAC;AACJ;;;;;;ACjJA,IAAIU,eAAY;CAAC;CAAK;CAAK;CAAO;CAAQ;CAAS;CAAU;AAAW;AACxE,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAQtM,IAAI,WAAW,GAAG,GAAG,OAAO,QAAQ,KAAK,SAAS;CAChD,OAAO,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,KAAK;AAC9G;AACA,IAAW,SAAQ,SAAQ;CACzB,IAAI,SAAS,KAAK,GAChB,IAAI,WAAW,KAAK,IAAI,IAAI,QAC5B,SAAS,KAAK,GACd,IAAI,WAAW,KAAK,IAAI,IAAI,QAC5B,WAAW,KAAK,KAChB,MAAM,aAAa,KAAK,IAAI,IAAI,UAChC,YAAY,KAAK,MACjB,OAAO,cAAc,KAAK,IAAI,IAAI,WAClC,aAAa,KAAK,OAClB,QAAQ,eAAe,KAAK,IAAI,IAAI,YACpC,cAAc,KAAK,QACnB,SAAS,gBAAgB,KAAK,IAAI,IAAI,aACtC,YAAY,KAAK,WACjB,OAAOD,4BAAyB,MAAMP,YAAS;CACjD,IAAI,QAAQG,iBAAc;EACxB;EACA;EACA;EACA;EACA;EACA;CACF,GAAG,IAAI;CACP,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,GAC3G,OAAO;CAET,OAAoB,sBAAM,cAAc,QAAQF,YAAS,CAAC,GAAG,uBAAuB,KAAK,GAAG;EAC1F,WAAW,KAAK,kBAAkB,SAAS;EAC3C,GAAG,QAAQ,GAAG,GAAG,OAAO,QAAQ,KAAK,IAAI;CAC3C,CAAC,CAAC;AACJ;;;ACjDA,SAAgB,mBAAmB,QAAQ,kBAAkB,QAAQ,qBAAqB;CACxF,IAAI,WAAW,sBAAsB;CACrC,OAAO;EACL,QAAQ;EACR,MAAM;EACN,GAAG,WAAW,eAAe,iBAAiB,IAAI,WAAW,OAAO,OAAO;EAC3E,GAAG,WAAW,eAAe,OAAO,MAAM,KAAM,iBAAiB,IAAI;EACrE,OAAO,WAAW,eAAe,sBAAsB,OAAO,QAAQ;EACtE,QAAQ,WAAW,eAAe,OAAO,SAAS,IAAI;CACxD;AACF;ACTA,IAAI,qBAAqB,IAAI,OAAO;CAAC;CAAG,IAAI;CAAI,IAAI,KAAK,IAAI;CAAI,IAAI,KAAK,IAAI,KAAK;AAAC;AACpF,IAAI,sBAAsB,QAAQ,yBAAyB,OAAO,KAAK,OAAO,MAAM,QAAQ,wBAAwB,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,MAAM,IAAI;AACvJ,IAAI,eAAe,IAAI,QAAO,yBAAwB;CAEpD,OAAO,mBADM,kBAAkB,IAAI,EACJ,GAAG,oBAAoB;AACxD;AACA,IAAI,yBAAyB,IAAI,QAAO,yBAAwB;CAG9D,OAAO,mBAAmB,CADT,GADJ,kBAAkB,IAAI,EACV,CAAC,CAAC,KAAK,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChC,GAAG,oBAAoB;AAC3D;AACA,IAAI,oBAAmB,WAAU;CAC/B,IAAI;CACJ,IAAI,cAAc,OAAO,MAAM,GAAG;CAClC,IAAI,YAAY,WAAW,KAAK,YAAY,OAAO,gBACjD,OAAO;CAET,IAAI,WAAW,gBAAgB,YAAY,QAAQ,QAAQ,kBAAkB,KAAK,MAAM,gBAAgB,cAAc,MAAM,GAAG,CAAC,CAAC,QAAQ,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,MAAM,GAAG;CAC5M,IAAI,WAAW,QAAQ,QAAQ,WAAW,GACxC,OAAO;CAET,IAAI,SAAS,QAAQ,KAAI,MAAK,WAAW,CAAC,CAAC;CAC3C,OAAO;EAAC,OAAO;EAAI,OAAO;EAAI,OAAO;EAAI,OAAO;CAAE;AACpD;AACA,IAAI,uBAAuB,SAAS,uBAAuB;CACzD,KAAK,IAAI,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAC/E,KAAK,QAAQ,UAAU;CAEzB,IAAI,KAAK,WAAW,GAClB,QAAQ,KAAK,IAAb;EACE,KAAK,UACH,OAAO;GAAC;GAAK;GAAK;GAAK;EAAG;EAC5B,KAAK,QACH,OAAO;GAAC;GAAM;GAAK;GAAM;EAAG;EAC9B,KAAK,WACH,OAAO;GAAC;GAAM;GAAK;GAAK;EAAG;EAC7B,KAAK,YACH,OAAO;GAAC;GAAM;GAAK;GAAM;EAAG;EAC9B,KAAK,eACH,OAAO;GAAC;GAAK;GAAK;GAAM;EAAG;EAC7B;GAEI,IAAI,SAAS,iBAAiB,KAAK,EAAE;GACrC,IAAI,QACF,OAAO;CAGf;CAEF,IAAI,KAAK,WAAW,GAClB,OAAO;CAKT,OAAO;EAAC;EAAK;EAAK;EAAK;CAAG;AAC5B;AACA,IAAI,sBAAsB,IAAI,IAAI,IAAI,OAAO;CAC3C,IAAI,SAAS,YAAY,IAAI,EAAE;CAC/B,IAAI,SAAS,YAAY,IAAI,EAAE;CAC/B,IAAI,YAAY,sBAAsB,IAAI,EAAE;CAC5C,IAAI,cAAa,UAAS;EACxB,IAAI,QAAQ,GACV,OAAO;EAET,IAAI,QAAQ,GACV,OAAO;EAET,OAAO;CACT;CACA,IAAI,UAAS,0BAAyB;EACpC,IAAI,uBAAuB,wBAAwB,IAAI,IAAI;EAC3D,IAAI,IAAI;EACR,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;GAC1B,IAAI,QAAQ,OAAO,CAAC,IAAI;GACxB,IAAI,SAAS,UAAU,CAAC;GACxB,IAAI,KAAK,IAAI,QAAQ,oBAAoB,IAAA,QAAgB,SAAA,MACvD,OAAO,OAAO,CAAC;GAEjB,IAAI,WAAW,IAAI,QAAQ,MAAM;EACnC;EACA,OAAO,OAAO,CAAC;CACjB;CACA,OAAO,YAAY;CACnB,OAAO;AACT;AAGA,IAAW,eAAe,SAAS,eAAe;CAChD,OAAO,mBAAmB,GAAG,qBAAqB,GAAG,SAAS,CAAC;AACjE;;;;;;;AAOA,IAAW,qBAAqB,SAAS,qBAAqB;CAC5D,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC;CAClF,IAAI,gBAAgB,OAAO,OACzB,QAAQ,kBAAkB,KAAK,IAAI,MAAM,eACzC,kBAAkB,OAAO,SACzB,UAAU,oBAAoB,KAAK,IAAI,IAAI,iBAC3C,aAAa,OAAO,IACpB,KAAK,eAAe,KAAK,IAAI,QAAQ;CACvC,IAAI,QAAQ;CACZ,IAAI,YAAY,CAAC,CAAC;CAClB,IAAI,QAAQ;CACZ,IAAI,QAAQ;CAGZ,IAAI,gBAAgB;CACpB,IAAI,aAAa;CAGjB,OAAO,aAAa,eAAe;EACjC,IAAI,UAAU,EAAE,QAAQ,SAAS;EACjC,IAAI,WAAW,QAAQ;EACvB,UAAU,UAAU,YAAY,KAAK;EACrC,SAAS,QAAQ,KAAK;EACtB,UAAU,KAAK,KAAK;EAGpB,IAAI,KAAK,IAAI,QAAQ,KAAK,IAAA,QAAgB,KAAK,IAAI,KAAK,IAAA,MACtD;EAEF;CACF;CAGA,UAAU,UAAU,SAAS,KAAK;CAClC,IAAI,WAAW,UAAU,SAAS;CAGlC,QAAO,MAAK;EACV,IAAI,kBAAkB,YAAY;EAClC,IAAI,KAAK,GAAG,OAAO;EACnB,IAAI,KAAK,GAAG,OAAO;EAGnB,IAAI,aAAa,IAAI;EACrB,IAAI,QAAQ,KAAK,MAAM,UAAU;EACjC,IAAI,WAAW,aAAa;EAG5B,SAAS,mBAAmB,UAAU,YAAY,QAAQ,qBAAqB,KAAK,IAAI,mBAAmB,QAAQ,aAAa,UAAU,QAAQ,QAAQ,QAAQ,eAAe,KAAK,IAAI,aAAa,OAAO,oBAAoB,UAAU,YAAY,QAAQ,sBAAsB,KAAK,IAAI,oBAAoB,MAAM;CAC3T;AACF;;;;AAMA,IAAW,wBAAuB,WAAU;CAC1C,IAAI,OAAO,WAAW,UACpB,QAAQ,QAAR;EACE,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,UACH,OAAO,aAAa,MAAM;EAC5B,KAAK,UACH,OAAO,mBAAmB;EAC5B,SACE,IAAI,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,gBAC3B,OAAO,aAAa,MAAM;CAEhC;CAEF,IAAI,OAAO,WAAW,YACpB,OAAO;CAET,OAAO;AACT;;;;;;;;;;ACxKA,IAAW,2BAA2B,mBAAmB,iBAAiB,aAAa;CACrF,IAAI;CACJ,IAAI,cAAa,QAAO;EACtB,IAAI,gBAAgB,gBAAgB,KAAK,GAAG;EAC5C,IAAI,gBAAgB,SAAS,MAAM,UAAU;GAC3C,SAAS,gBAAgB,gBAAgB,CAAC;GAC1C,IAAI,gBAAgB,YAAY,MAAM,GAAG;IACvC,gBAAgB,SAAS;IACzB,cAAc,KAAA;IACd;GACF;GACA,cAAc,kBAAkB,WAAW,YAAY,aAAa;GACpE;EACF;EACA,cAAc,kBAAkB,WAAW,YAAY,aAAa;CACtE;CACA,cAAc,kBAAkB,WAAW,YAAY,CAAC;CACxD,aAAa;EACX,IAAI;EACJ,QAAQ,eAAe,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa;CAClG;AACF;;;AC1BA,IAAI,6BAA0C,4BAAc,uBAAuB;AAsB1C,2BAA2B;AACpE,SAAgB,uBAAuB,8BAA8B;CACnE,IAAI,iCAAiC,WAAW,0BAA0B;CAC1E,OAAO,cAAc,iCAAiC,QAAQ,iCAAiC,KAAK,IAAI,+BAA+B,gCAAgC,CAAC,8BAA8B,8BAA8B,CAAC;AACvO;;;AC5BA,SAASQ,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAGvT,IAAI,OAAO;AACX,IAAIC,YAAU;AACd,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,SAAS,SAAS,MAAM;CACtB,OAAO,KAAK,IAAI,GAAG,IAAI;AACzB;AACA,IAAM,oBAAN,MAAwB;;;;;CAKtB,0BAA0B;EACxB,OAAO,KAAK;CACd;;;;CAKA,sBAAsB;EACpB,OAAO,KAAK;CACd;CACA,YAAY,OAAO;EACjB,IAAI;EACJ,mBAAgB,MAAM,SAAS,IAAI;EACnC,KAAK,cAAc,MAAM;EACzB,KAAK,iBAAiB,MAAM;EAC5B,KAAK,oBAAoB,SAAS,MAAM,iBAAiB;EACzD,KAAK,iBAAiB,SAAS,MAAM,cAAc;EACnD,KAAK,WAAW;EAChB,KAAK,OAAO,MAAM;EAClB,KAAK,KAAK,MAAM;EAChB,KAAK,SAAS,MAAM;EAEpB,CAAC,wBAAwB,MAAM,sBAAsB,QAAQ,0BAA0B,KAAK,KAAK,sBAAsB,KAAK,KAAK;CACnI;;;;;;;;;CASA,WAAW;EACT,OAAO,KAAK;CACd;;;;CAKA,YAAY;EACV,OAAO,KAAK;CACd;;;;;CAMA,uBAAuB;EACrB,OAAO,KAAK;CACd;;;;;;;;;;;;CAaA,KAAK,KAAK;EACR,IAAI,KAAK,SAAS,MAAM,MAAM;GAC5B,KAAK,QAAQA;GACb,KAAK,mBAAmB;GACxB,OAAO,KAAK;EACd;EACA,IAAI,KAAK,SAAS,MAAMA,WAAS;GAC/B,IAAI,KAAK,oBAAoB,MAC3B,MAAM,IAAI,MAAM;GAElB,IAAI,eAAe,MAAM,KAAK;GAC9B,IAAI,gBAAgB,KAAK,gBAAgB;IACvC,KAAK,QAAQ;IACb,KAAK,uBAAuB;IAE5B,OAAO,KAAK,oBAAoB,CAAC;GACnC;GACA,OAAO,SAAS,KAAK,iBAAiB,YAAY;EACpD;EACA,IAAI,KAAK,SAAS,MAAM,QAAQ;GAC9B,IAAI,KAAK,wBAAwB,MAC/B,MAAM,IAAI,MAAM;GAElB,IAAI,gBAAgB,MAAM,KAAK;GAC/B,KAAK,YAAY,gBAAgB,KAAK,iBAAiB;GACvD,OAAO,KAAK,oBAAoB,aAAa;EAC/C;EAGA,OAAO;CACT;CACA,YAAY,aAAa;EACvB,KAAK,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,WAAW,CAAC;CACtD;;;;;;;;;;;;;;;;CAiBA,cAAc;EACZ,OAAO,KAAK;CACd;;;;;;;;CASA,WAAW;EACT,KAAK,WAAW;EAChB,IAAI,KAAK,UAAU,UAAU;GAC3B,IAAI;GAEJ,CAAC,uBAAuB,KAAK,oBAAoB,QAAQ,yBAAyB,KAAK,KAAK,qBAAqB,KAAK,IAAI;EAC5H;EACA,KAAK,QAAQ;CACf;;;;;CAMA,UAAU;EACR,OAAO,KAAK;CACd;;;;;CAMA,QAAQ;EACN,OAAO,KAAK;CACd;;;;CAKA,iBAAiB;EACf,OAAO,KAAK;CACd;;;;;CAMA,oBAAoB;EAClB,OAAO,KAAK;CACd;AAUF;;;;;;;AAQA,IAAa,sBAAb,cAAyC,kBAAkB;CAEzD,sBAAsB;EAMpB,OAAO;CACT;;;;;;CAOA,kBAAkB;EAChB,OAAO,KAAK,OAAO,YAAY,KAAK,QAAQ,GAAG,KAAK,MAAM,GAAG,KAAK,YAAY,CAAC,CAAC;CAClF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LA,IAAa,yCAAb,MAAoD;CAClD,WAAW,UAAU;EACnB,IAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;EAChF,IAAI,YAAY,YAAY,IAAI;EAChC,IAAI,YAAY;EAChB,IAAI,mBAAkB,QAAO;GAC3B,IAAI,MAAM,aAAa,OACrB,SAAS,GAAG;QAEZ,YAAY,sBAAsB,eAAe;EAErD;EACA,YAAY,sBAAsB,eAAe;EACjD,aAAa;GACX,IAAI,aAAa,MACf,qBAAqB,SAAS;EAElC;CACF;AACF;;;AC9CA,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAU9D,IAAI,gCAAgC;CAClC,OAAO;CACP,UAAU;CACV,QAAQ;CACR,UAAU;CACV,UAAU;CACV,sBAAsB,CAAC;CACvB,wBAAwB,CAAC;AAC3B;AACA,IAAI,OAAO;AACX,IAAI,KAAK;AACT,SAAgB,kBAAkB,cAAc;CAC9C,IAAI,QAAQ,oBAAoB,cAAc,6BAA6B;CAC3E,IAAI,cAAc,MAAM,aACtB,eAAe,MAAM,UACrB,WAAW,MAAM,UACjB,WAAW,MAAM,UACjB,SAAS,MAAM,QACf,QAAQ,MAAM,OACd,iBAAiB,MAAM,gBACvB,mBAAmB,MAAM,kBACzB,WAAW,MAAM;CACnB,IAAI,uBAAuB,wBAAwB;CACnD,IAAI,WAAW,iBAAiB,SAAS,CAAC,OAAO,SAAS,CAAC,uBAAuB;CAClF,IAAI,sBAAsB,uBAAuB,MAAM,mBAAmB;CAC1E,IACE,aAAaD,kBADC,SAAS,WAAW,OAAO,EACL,GAAG,CAAC,GACxC,QAAQ,WAAW,IACnB,WAAW,WAAW;CACxB,gBAAgB;EACd,IAAI,CAAC,UACH,SAAS,EAAE;CAEf,GAAG,CAAC,QAAQ,CAAC;CACb,gBAAgB;EACd,IAAI,iBAAiB,qBAAqB,MAAM;EAChD,IAAI,CAAC,YAAY,CAAC,YAAY,kBAAkB,MAC9C,OAAOM;EAaT,OAAO,oBAAoB,IAXC,uCAWe,GAAG,IAV1B,oBAAoB;GACtC;GACA,QAAQ;GACR,mBAAmB;GACnB,gBAAgB;GAChB;GACA;GACA;GACA;EACF,CACsD,GAAG,QAAQ;CACnE,GAAG;EAAC;EAAqB;EAAa;EAAU;EAAU;EAAU;EAAQ;EAAO;EAAkB;CAAc,CAAC;CACpH,OAAO,SAAS,OAAO,KAAK,CAAC;AAC/B;;;;;;;;;;;;;;;;;ACnDA,SAAgB,eAAe,OAAO;CACpC,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACjF,IAAI,cAAc,OAAO,SAAS,MAAM,CAAC;CACzC,IAAI,YAAY,OAAO,KAAK;CAC5B,IAAI,UAAU,YAAY,OAAO;EAC/B,YAAY,UAAU,SAAS,MAAM;EACrC,UAAU,UAAU;CACtB;CACA,OAAO,YAAY;AACrB;;;ACtBA,IAAW,eAAc,SAAQ,KAAK,QAAQ,aAAY,MAAK,IAAI,OAAO,EAAE,YAAY,CAAC,CAAC;AAC1F,IAAW,oBAAoB,OAAO,UAAU,WAAW,MAAM,KAAI,SAAQ,GAAG,OAAO,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;;;;;;ACL/J,IAAIC,eAAY,CAAC,QAAQ;AACvBC,IAAAA,eAAa,CAAC,QAAQ;AACxB,IAAIC;AAAiBC,IAAAA;AAAkBC,IAAAA;AAAkBC,IAAAA;AAAkBC,IAAAA;AAAkBC,IAAAA;AAAkBC,IAAAA;AAAkB,IAAA;AAAkB,IAAA;AAAkB,IAAA;AACrK,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAC9D,SAASK,yBAAuB,GAAG,GAAG;CAAE,OAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,OAAO,OAAO,iBAAiB,GAAG,EAAE,KAAK,EAAE,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAAG;;;;AAmBvJ,IAAI,oBAAoB,GAAG,GAAG,OAAO,QAAQ,WAAW;CACtD,IAAI,eAAe,MAAM,KAAK;CAC9B,IAAI,gBAAgB,MAAM,MAAM;CAChC,IAAI,YAAY,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI,GAAG,KAAK,IAAI,aAAa,IAAI,CAAC;CAChF,IAAI,QAAQ,iBAAiB,IAAI,IAAI;CACrC,IAAI,QAAQ,gBAAgB,IAAI,IAAI;CACpC,IAAI,YAAY,iBAAiB,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,eAAe,IAAI,IAAI;CACvG,IAAI;CACJ,IAAI,YAAY,KAAK,MAAM,QAAQ,MAAM,GAAG;EAC1C,IAAI,YAAY;GAAC;GAAG;GAAG;GAAG;EAAC;EAC3B,KAAK,IAAI,IAAI,GAAG,MAAM,GAAG,IAAI,KAAK,KAAK;GACrC,IAAI;GACJ,IAAI,KAAK,YAAY,OAAO,QAAQ,QAAQ,cAAc,KAAK,IAAI,YAAY;GAC/E,UAAU,KAAK,IAAI,YAAY,YAAY;EAC7C;EACA,OAAO,qBAAqBrB,sBAAoB,oBAAkBqB,yBAAuB;GAAC;GAAK;GAAK;EAAE,CAAC,IAAI,GAAG,IAAI,QAAQ,UAAU,EAAE;EACtI,IAAI,UAAU,KAAK,GACjB,QAAQ,qBAAqBpB,uBAAqB,qBAAmBoB,yBAAuB;GAAC;GAAM;GAAK;GAAS;GAAK;GAAK;EAAE,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,UAAU,IAAI,CAAC;EAEtM,QAAQ,qBAAqBnB,uBAAqB,qBAAmBmB,yBAAuB;GAAC;GAAM;GAAK;EAAE,CAAC,IAAI,IAAI,QAAQ,QAAQ,UAAU,IAAI,CAAC;EAClJ,IAAI,UAAU,KAAK,GACjB,QAAQ,qBAAqBlB,uBAAqB,qBAAmBkB,yBAAuB;GAAC;GAAM;GAAK;GAAS;GAAe;GAAK;EAAE,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,OAAO,IAAI,QAAQ,UAAU,EAAE;EAExN,QAAQ,qBAAqBjB,uBAAqB,qBAAmBiB,yBAAuB;GAAC;GAAM;GAAK;EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,SAAS,QAAQ,UAAU,EAAE;EAC3J,IAAI,UAAU,KAAK,GACjB,QAAQ,qBAAqBhB,uBAAqB,qBAAmBgB,yBAAuB;GAAC;GAAM;GAAK;GAAS;GAAe;GAAK;EAAE,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,IAAI,QAAQ,QAAQ,UAAU,IAAI,IAAI,MAAM;EAEjO,QAAQ,qBAAqBf,uBAAqB,qBAAmBe,yBAAuB;GAAC;GAAM;GAAK;EAAE,CAAC,IAAI,IAAI,QAAQ,UAAU,IAAI,IAAI,MAAM;EACnJ,IAAI,UAAU,KAAK,GACjB,QAAQ,qBAAqB,qBAAqB,mBAAmBA,yBAAuB;GAAC;GAAM;GAAK;GAAS;GAAe;GAAK;EAAE,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,GAAG,IAAI,SAAS,QAAQ,UAAU,EAAE;EAEzN,QAAQ;CACV,OAAO,IAAI,YAAY,KAAK,WAAW,CAAC,UAAU,SAAS,GAAG;EAC5D,IAAI,aAAa,KAAK,IAAI,WAAW,MAAM;EAC3C,OAAO,qBAAqB,qBAAqB,mBAAmBA,yBAAuB;GAAC;GAAM;GAAK;GAAoB;GAAK;GAAS;GAAK;GAAK;GAAoB;GAAK;GAAoB;GAAK;GAAS;GAAK;GAAK;GAAoB;GAAK;GAAoB;GAAK;GAAS;GAAK;GAAK;GAAoB;GAAK;GAAoB;GAAK;GAAS;GAAK;GAAK;EAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,YAAY,YAAY,YAAY,WAAW,IAAI,QAAQ,YAAY,GAAG,IAAI,QAAQ,QAAQ,YAAY,GAAG,YAAY,YAAY,WAAW,IAAI,OAAO,IAAI,QAAQ,YAAY,IAAI,OAAO,IAAI,SAAS,QAAQ,YAAY,YAAY,YAAY,WAAW,IAAI,QAAQ,QAAQ,YAAY,IAAI,QAAQ,IAAI,QAAQ,YAAY,IAAI,QAAQ,YAAY,YAAY,WAAW,GAAG,IAAI,SAAS,QAAQ,UAAU;CACnxB,OACE,OAAO,qBAAqB,qBAAqB,mBAAmBA,yBAAuB;EAAC;EAAM;EAAK;EAAO;EAAO;EAAO;CAAI,CAAC,IAAI,GAAG,GAAG,OAAO,QAAQ,CAAC,KAAK;CAElK,OAAO;AACT;AACA,IAAW,wBAAwB;CACjC,GAAG;CACH,GAAG;CACH,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,mBAAmB;CACnB,yBAAyB;CACzB,gBAAgB;CAChB,mBAAmB;CACnB,iBAAiB;AACnB;;;;;;;;;;;;AAaA,IAAW,aAAY,mBAAkB;CACvC,IAAI,QAAQ,oBAAoB,gBAAgB,qBAAqB;CACrE,IAAI,UAAU,OAAO,IAAI;CACzB,IACE,aAAaN,kBADC,SAAS,EACa,GAAG,CAAC,GACxC,cAAc,WAAW,IACzB,iBAAiB,WAAW;CAC9B,gBAAgB;EACd,IAAI,QAAQ,WAAW,QAAQ,QAAQ,gBACrC,IAAI;GACF,IAAI,kBAAkB,QAAQ,QAAQ,eAAe;GACrD,IAAI,iBACF,eAAe,eAAe;EAElC,SAAS,SAAS,CAElB;CAEJ,GAAG,CAAC,CAAC;CACL,IAAI,IAAI,MAAM,GACZ,IAAI,MAAM,GACV,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,SAAS,MAAM,QACf,YAAY,MAAM;CACpB,IAAI,kBAAkB,MAAM,iBAC1B,oBAAoB,MAAM,mBAC1B,iBAAiB,MAAM,gBACvB,oBAAoB,MAAM,mBAC1B,0BAA0B,MAAM;CAClC,IAAI,eAAe,OAAO,KAAK;CAC/B,IAAI,gBAAgB,OAAO,MAAM;CACjC,IAAI,WAAW,OAAO,CAAC;CACvB,IAAI,WAAW,OAAO,CAAC;CAQvB,IAAI,cAAc,eAPK,eAAe;EACpC;EACA;EACA;EACA;EACA;CACF,IAAI;EAAC;EAAG;EAAG;EAAO;EAAQ;CAAM,CACC,GAAkB,YAAY;CAC/D,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,UAAU,CAAC,SAAS,WAAW,CAAC,UAAU,UAAU,KAAK,WAAW,GAC9F,OAAO;CAET,IAAI,aAAa,KAAK,sBAAsB,SAAS;CACrD,IAAI,CAAC,yBAAyB;EAC5B,IAAI,wBAAwB,uBAAuB,KAAK;EAClD,sBAAsB;EAD5B,IAEE,iBAAiBF,4BAAyB,uBAAuBf,YAAS;EAC5E,OAAoB,sBAAM,cAAc,QAAQc,YAAS,CAAC,GAAG,gBAAgB;GAC3E,GAAG,MAAM,CAAC;GACV,GAAG,MAAM,CAAC;GACV,OAAO,MAAM,KAAK;GAClB,QAAQ,MAAM,MAAM;GACpB,QAAQ,OAAO,WAAW,WAAW,SAAS,KAAA;GAC9C,WAAW;GACX,GAAG,iBAAiB,GAAG,GAAG,OAAO,QAAQ,MAAM;EACjD,CAAC,CAAC;CACJ;CACA,IAAI,YAAY,aAAa;CAC7B,IAAI,aAAa,cAAc;CAC/B,IAAI,QAAQ,SAAS;CACrB,IAAI,QAAQ,SAAS;CACrB,IAAI,OAAO,OAAO,OAAO,gBAAgB,KAAK,IAAI,aAAa,IAAI;CACnE,IAAI,KAAK,GAAG,OAAO,aAAa,KAAK,CAAC,CAAC,OAAO,aAAa,IAAI;CAC/D,IAAI,aAAa,iBAAiB,CAAC,iBAAiB,GAAG,mBAAmB,OAAO,oBAAoB,WAAW,kBAAkB,sBAAsB,eAAe;CACvK,OAAoB,sBAAM,cAAc,mBAAmB;EAC5C;EACb,KAAK;EACL,UAAU,cAAc;EACxB,UAAU;EACV,QAAQ;EACR,UAAU;EACV,OAAO;CACT,IAAG,yBAAwB;EACzB,IAAI,YAAY,YAAY,WAAW,OAAO,oBAAoB;EAClE,IAAI,aAAa,YAAY,YAAY,QAAQ,oBAAoB;EACrE,IAAI,QAAQ,YAAY,OAAO,GAAG,oBAAoB;EACtD,IAAI,QAAQ,YAAY,OAAO,GAAG,oBAAoB;EACtD,IAAI,QAAQ,SAAS;GACnB,aAAa,UAAU;GACvB,cAAc,UAAU;GACxB,SAAS,UAAU;GACnB,SAAS,UAAU;EACrB;EACA,IAAI;EACJ,IAAI,CAAC,mBACH,iBAAiB,EACf,iBAAiB,GACnB;OACK,IAAI,uBAAuB,GAChC,iBAAiB;GACf;GACA,iBAAiB;EACnB;OAEA,iBAAiB,EACf,iBAAiB,KACnB;EAEF,IAAI,yBAAyB,uBAAuB,KAAK;EACnD,uBAAuB;EAD7B,IAEE,iBAAiBC,4BAAyB,wBAAwBd,YAAU;EAC9E,OAAoB,sBAAM,cAAc,QAAQa,YAAS,CAAC,GAAG,gBAAgB;GAC3E,QAAQ,OAAO,WAAW,WAAW,SAAS,KAAA;GAC9C,WAAW;GACX,GAAG,iBAAiB,OAAO,OAAO,WAAW,YAAY,MAAM;GAC/D,KAAK;GACL,OAAOJ,iBAAcA,iBAAc,CAAC,GAAG,cAAc,GAAG,MAAM,KAAK;EACrE,CAAC,CAAC;CACJ,CAAC;AACH;;;ACpNA,SAASc,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,IAAW,SAAS,KAAK,KAAK;AAE9B,IAAW,kBAAiB,kBAAiB,gBAAgB,MAAM,KAAK;AACxE,IAAW,oBAAoB,IAAI,IAAI,QAAQ,WAAW;CACxD,GAAG,KAAK,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI;CACpC,GAAG,KAAK,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI;AACtC;AACA,IAAW,eAAe,SAAS,aAAa,OAAO,QAAQ;CAC7D,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;EAC/E,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACN,OAAO;EACP,QAAQ;EACR,aAAa;CACf;CACA,OAAO,KAAK,IAAI,KAAK,IAAI,SAAS,OAAO,QAAQ,MAAM,OAAO,SAAS,EAAE,GAAG,KAAK,IAAI,UAAU,OAAO,OAAO,MAAM,OAAO,UAAU,EAAE,CAAC,IAAI;AAC7I;AACA,IAAI,yBAAyB,OAAO,iBAAiB;CACnD,IAAI,KAAK,MAAM,GACb,KAAK,MAAM;CACb,IAAI,KAAK,aAAa,GACpB,KAAK,aAAa;CACpB,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,OAAO,CAAC;AAClD;AACA,IAAI,mBAAmB,MAAM,UAAU;CACrC,IAAI,IAAI,KAAK,GACX,IAAI,KAAK;CACX,IAAI,KAAK,MAAM,IACb,KAAK,MAAM;CACb,IAAI,SAAS,sBAAsB;EACjC;EACA;CACF,GAAG;EACD,GAAG;EACH,GAAG;CACL,CAAC;CACD,IAAI,UAAU,GACZ,OAAO;EACL;EACA,OAAO;CACT;CAEF,IAAI,OAAO,IAAI,MAAM;CACrB,IAAI,gBAAgB,KAAK,KAAK,GAAG;CACjC,IAAI,IAAI,IACN,gBAAgB,IAAI,KAAK,KAAK;CAEhC,OAAO;EACL;EACA,OAAO,eAAe,aAAa;EACnC;CACF;AACF;AACA,IAAI,uBAAsB,UAAS;CACjC,IAAI,aAAa,MAAM,YACrB,WAAW,MAAM;CACnB,IAAI,WAAW,KAAK,MAAM,aAAa,GAAG;CAC1C,IAAI,SAAS,KAAK,MAAM,WAAW,GAAG;CACtC,IAAI,MAAM,KAAK,IAAI,UAAU,MAAM;CACnC,OAAO;EACL,YAAY,aAAa,MAAM;EAC/B,UAAU,WAAW,MAAM;CAC7B;AACF;AACA,IAAI,8BAA8B,OAAO,UAAU;CACjD,IAAI,aAAa,MAAM,YACrB,WAAW,MAAM;CACnB,IAAI,WAAW,KAAK,MAAM,aAAa,GAAG;CAC1C,IAAI,SAAS,KAAK,MAAM,WAAW,GAAG;CAEtC,OAAO,QADG,KAAK,IAAI,UAAU,MACZ,IAAI;AACvB;AACA,IAAW,mBAAmB,OAAO,YAAY;CAC/C,IAAI,IAAI,MAAM,WACZ,IAAI,MAAM;CACZ,IAAI,mBAAmB,gBAAgB;EACnC;EACA;CACF,GAAG,OAAO,GACV,SAAS,iBAAiB,QAC1B,QAAQ,iBAAiB;CAC3B,IAAI,cAAc,QAAQ,aACxB,cAAc,QAAQ;CACxB,IAAI,SAAS,eAAe,SAAS,aACnC,OAAO;CAET,IAAI,WAAW,GACb,OAAO;CAET,IAAI,uBAAuB,oBAAoB,OAAO,GACpD,aAAa,qBAAqB,YAClC,WAAW,qBAAqB;CAClC,IAAI,cAAc;CAClB,IAAI;CACJ,IAAI,cAAc,UAAU;EAC1B,OAAO,cAAc,UACnB,eAAe;EAEjB,OAAO,cAAc,YACnB,eAAe;EAEjB,UAAU,eAAe,cAAc,eAAe;CACxD,OAAO;EACL,OAAO,cAAc,YACnB,eAAe;EAEjB,OAAO,cAAc,UACnB,eAAe;EAEjB,UAAU,eAAe,YAAY,eAAe;CACtD;CACA,IAAI,SACF,OAAOH,iBAAcA,iBAAc,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG;EACnD;EACA,OAAO,2BAA2B,aAAa,OAAO;CACxD,CAAC;CAEH,OAAO;AACT;;;;;;;;ACvHA,SAAgB,sBAAsB,kBAAkB;CACtD,IAAI,KAAK,iBAAiB,IACxB,KAAK,iBAAiB,IACtB,SAAS,iBAAiB,QAC1B,aAAa,iBAAiB,YAC9B,WAAW,iBAAiB;CAG9B,OAAO;EACL,QAAQ,CAHO,iBAAiB,IAAI,IAAI,QAAQ,UAG9B,GAFL,iBAAiB,IAAI,IAAI,QAAQ,QAElB,CAAC;EAC7B;EACA;EACA;EACA;EACA;CACF;AACF;;;ACtBA,IAAI;AAAiB,IAAA;AAAkB,IAAA;AAAkB,IAAA;AAAkB,IAAA;AAAkB,IAAA;AAAkB,IAAA;AAC/G,SAASI,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAAS,uBAAuB,GAAG,GAAG;CAAE,OAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,OAAO,OAAO,iBAAiB,GAAG,EAAE,KAAK,EAAE,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAAG;AAQvJ,IAAIC,mBAAiB,YAAY,aAAa;CAG5C,OAFW,SAAS,WAAW,UAErB,IADO,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,GAAG,OACpC;AACzB;AACA,IAAI,oBAAmB,SAAQ;CAC7B,IAAI,KAAK,KAAK,IACZ,KAAK,KAAK,IACV,SAAS,KAAK,QACd,QAAQ,KAAK,OACb,OAAO,KAAK,MACZ,aAAa,KAAK,YAClB,eAAe,KAAK,cACpB,mBAAmB,KAAK;CAC1B,IAAI,eAAe,gBAAgB,aAAa,IAAI,MAAM;CAC1D,IAAI,QAAQ,KAAK,KAAK,eAAe,YAAY,IAAI;CACrD,IAAI,cAAc,mBAAmB,QAAQ,QAAQ,OAAO;CAC5D,IAAI,SAAS,iBAAiB,IAAI,IAAI,cAAc,WAAW;CAE/D,IAAI,iBAAiB,iBAAiB,IAAI,IAAI,QAAQ,WAAW;CAEjE,IAAI,oBAAoB,mBAAmB,QAAQ,OAAO,QAAQ;CAElE,OAAO;EACL;EACA;EACA,cAJiB,iBAAiB,IAAI,IAAI,eAAe,KAAK,IAAI,QAAQ,MAAM,GAAG,iBAIxE;EACX;CACF;AACF;AACA,IAAI,iBAAgB,UAAS;CAC3B,IAAI,KAAK,MAAM,IACb,KAAK,MAAM,IACX,cAAc,MAAM,aACpB,cAAc,MAAM,aACpB,aAAa,MAAM,YACnB,WAAW,MAAM;CACnB,IAAI,QAAQA,gBAAc,YAAY,QAAQ;CAG9C,IAAI,eAAe,aAAa;CAChC,IAAI,kBAAkB,iBAAiB,IAAI,IAAI,aAAa,UAAU;CACtE,IAAI,gBAAgB,iBAAiB,IAAI,IAAI,aAAa,YAAY;CACtE,IAAI,OAAO,qBAAqB,oBAAoB,kBAAkB,uBAAuB;EAAC;EAAM;EAAK;EAAY;EAAK;EAAa;EAAK;EAAW;EAAK;CAAM,CAAC,IAAI,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,aAAa,EAAE,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,aAAa,eAAe,cAAc,GAAG,cAAc,CAAC;CAC/T,IAAI,cAAc,GAAG;EACnB,IAAI,kBAAkB,iBAAiB,IAAI,IAAI,aAAa,UAAU;EACtE,IAAI,gBAAgB,iBAAiB,IAAI,IAAI,aAAa,YAAY;EACtE,QAAQ,qBAAqB,qBAAqB,mBAAmB,uBAAuB;GAAC;GAAM;GAAK;GAAoB;GAAK;GAAqB;GAAK;GAAmB;GAAK;EAAI,CAAC,IAAI,cAAc,GAAG,cAAc,GAAG,aAAa,aAAa,EAAE,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,cAAc,eAAe,gBAAgB,GAAG,gBAAgB,CAAC;CACvV,OACE,QAAQ,qBAAqB,qBAAqB,mBAAmB,uBAAuB;EAAC;EAAM;EAAK;CAAI,CAAC,IAAI,IAAI,EAAE;CAEzH,OAAO;AACT;AACA,IAAI,uBAAsB,UAAS;CACjC,IAAI,KAAK,MAAM,IACb,KAAK,MAAM,IACX,cAAc,MAAM,aACpB,cAAc,MAAM,aACpB,eAAe,MAAM,cACrB,oBAAoB,MAAM,mBAC1B,mBAAmB,MAAM,kBACzB,aAAa,MAAM,YACnB,WAAW,MAAM;CACnB,IAAI,OAAO,SAAS,WAAW,UAAU;CACzC,IAAI,oBAAoB,iBAAiB;EACrC;EACA;EACA,QAAQ;EACR,OAAO;EACP;EACA;EACA;CACF,CAAC,GACD,OAAO,kBAAkB,gBACzB,OAAO,kBAAkB,cACzB,MAAM,kBAAkB;CAC1B,IAAI,qBAAqB,iBAAiB;EACtC;EACA;EACA,QAAQ;EACR,OAAO;EACP,MAAM,CAAC;EACP;EACA;CACF,CAAC,GACD,OAAO,mBAAmB,gBAC1B,OAAO,mBAAmB,cAC1B,MAAM,mBAAmB;CAC3B,IAAI,gBAAgB,mBAAmB,KAAK,IAAI,aAAa,QAAQ,IAAI,KAAK,IAAI,aAAa,QAAQ,IAAI,MAAM;CACjH,IAAI,gBAAgB,GAAG;EACrB,IAAI,mBACF,OAAO,qBAAqB,qBAAqB,mBAAmB,uBAAuB;GAAC;GAAM;GAAK;GAAe;GAAK;GAAW;GAAiB;GAAK;GAAW;EAAY,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,cAAc,cAAc,eAAe,GAAG,cAAc,cAAc,CAAC,eAAe,CAAC;EAErS,OAAO,cAAc;GACnB;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;CACH;CACA,IAAI,OAAO,qBAAqB,qBAAqB,mBAAmB,uBAAuB;EAAC;EAAM;EAAK;EAAW;EAAK;EAAS;EAAK;EAAK;EAAW;EAAK;EAAO;EAAK;EAAK;EAAK;EAAW;EAAK;EAAS;EAAK;EAAK;CAAM,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,cAAc,cAAc,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,aAAa,aAAa,EAAE,gBAAgB,MAAM,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,cAAc,cAAc,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC;CACjb,IAAI,cAAc,GAAG;EACnB,IAAI,qBAAqB,iBAAiB;GACtC;GACA;GACA,QAAQ;GACR,OAAO;GACP;GACA,YAAY;GACZ;GACA;EACF,CAAC,GACD,OAAO,mBAAmB,gBAC1B,OAAO,mBAAmB,cAC1B,MAAM,mBAAmB;EAC3B,IAAI,qBAAqB,iBAAiB;GACtC;GACA;GACA,QAAQ;GACR,OAAO;GACP,MAAM,CAAC;GACP,YAAY;GACZ;GACA;EACF,CAAC,GACD,OAAO,mBAAmB,gBAC1B,OAAO,mBAAmB,cAC1B,MAAM,mBAAmB;EAC3B,IAAI,gBAAgB,mBAAmB,KAAK,IAAI,aAAa,QAAQ,IAAI,KAAK,IAAI,aAAa,QAAQ,IAAI,MAAM;EACjH,IAAI,gBAAgB,KAAK,iBAAiB,GACxC,OAAO,GAAG,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG;EAE5D,QAAQ,qBAAqB,qBAAqB,mBAAmB,uBAAuB;GAAC;GAAK;GAAK;GAAa;GAAK;GAAS;GAAK;GAAK;GAAa;GAAK;GAAO;GAAK;GAAK;GAAK;GAAa;GAAK;GAAS;GAAK;GAAK;EAAG,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,cAAc,cAAc,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,aAAa,aAAa,EAAE,gBAAgB,MAAM,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,cAAc,cAAc,EAAE,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC;CAClb,OACE,QAAQ,qBAAqB,qBAAqB,mBAAmB,uBAAuB;EAAC;EAAK;EAAK;CAAG,CAAC,IAAI,IAAI,EAAE;CAEvH,OAAO;AACT;;;;;AAOA,IAAW,qBAAqB;CAC9B,IAAI;CACJ,IAAI;CACJ,aAAa;CACb,aAAa;CACb,YAAY;CACZ,UAAU;CACV,cAAc;CACd,mBAAmB;CACnB,kBAAkB;AACpB;AACA,IAAW,UAAS,gBAAe;CACjC,IAAI,QAAQ,oBAAoB,aAAa,kBAAkB;CAC/D,IAAI,KAAK,MAAM,IACb,KAAK,MAAM,IACX,cAAc,MAAM,aACpB,cAAc,MAAM,aACpB,eAAe,MAAM,cACrB,oBAAoB,MAAM,mBAC1B,mBAAmB,MAAM,kBACzB,aAAa,MAAM,YACnB,WAAW,MAAM,UACjB,YAAY,MAAM;CACpB,IAAI,cAAc,eAAe,eAAe,UAC9C,OAAO;CAET,IAAI,aAAa,KAAK,mBAAmB,SAAS;CAClD,IAAI,cAAc,cAAc;CAChC,IAAI,KAAK,gBAAgB,cAAc,aAAa,GAAG,IAAI;CAC3D,IAAI;CACJ,IAAI,KAAK,KAAK,KAAK,IAAI,aAAa,QAAQ,IAAI,KAC9C,OAAO,oBAAoB;EACzB;EACA;EACA;EACA;EACA,cAAc,KAAK,IAAI,IAAI,cAAc,CAAC;EAC1C;EACA;EACA;EACA;CACF,CAAC;MAED,OAAO,cAAc;EACnB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAEH,OAAoB,sBAAM,cAAc,QAAQD,YAAS,CAAC,GAAG,uBAAuB,KAAK,GAAG;EAC1F,WAAW;EACX,GAAG;CACL,CAAC,CAAC;AACJ;;;ACjNA,SAAgB,gBAAgB,QAAQ,kBAAkB,QAAQ;CAChE,IAAI,WAAW,cACb,OAAO,CAAC;EACN,GAAG,iBAAiB;EACpB,GAAG,OAAO;CACZ,GAAG;EACD,GAAG,iBAAiB;EACpB,GAAG,OAAO,MAAM,OAAO;CACzB,CAAC;CAEH,IAAI,WAAW,YACb,OAAO,CAAC;EACN,GAAG,OAAO;EACV,GAAG,iBAAiB;CACtB,GAAG;EACD,GAAG,OAAO,OAAO,OAAO;EACxB,GAAG,iBAAiB;CACtB,CAAC;CAEH,IAAI,kBAAkB,gBAAgB,GAAG;EACvC,IAAI,WAAW,WAAW;GACxB,IAAI,KAAK,iBAAiB,IACxB,KAAK,iBAAiB,IACtB,cAAc,iBAAiB,aAC/B,cAAc,iBAAiB,aAC/B,QAAQ,iBAAiB;GAC3B,IAAI,aAAa,iBAAiB,IAAI,IAAI,aAAa,KAAK;GAC5D,IAAI,aAAa,iBAAiB,IAAI,IAAI,aAAa,KAAK;GAC5D,OAAO,CAAC;IACN,GAAG,WAAW;IACd,GAAG,WAAW;GAChB,GAAG;IACD,GAAG,WAAW;IACd,GAAG,WAAW;GAChB,CAAC;EACH;EACA,OAAO,sBAAsB,gBAAgB;CAC/C;AAEF;;;;;;;;;;;;;;;;;;;ACxBA,SAAS,SAAS,OAAO;CACxB,IAAI,SAAS,KAAK,GAAG,OAAO;CAC5B,OAAO,OAAO,KAAK;AACpB;;;;;;;;;;;;;;;;;ACLA,SAAS,SAAS,OAAO;CACxB,IAAI,CAAC,OAAO,OAAO,UAAU,IAAI,QAAQ;CACzC,QAAQ,SAAS,KAAK;CACtB,IAAI,UAAU,YAAY,UAAU,WAAW,QAAQ,QAAQ,IAAI,KAAK,KAAK,OAAO;CACpF,OAAO,UAAU,QAAQ,QAAQ;AAClC;;;;;;;;;;;;;;;;;;;ACFA,SAASE,QAAM,OAAO,KAAK,MAAM;CAChC,IAAI,QAAQ,OAAO,SAAS,YAAY,eAAe,OAAO,KAAK,IAAI,GAAG,MAAM,OAAO,KAAK;CAC5F,QAAQ,SAAS,KAAK;CACtB,IAAI,QAAQ,KAAK,GAAG;EACnB,MAAM;EACN,QAAQ;CACT,OAAO,MAAM,SAAS,GAAG;CACzB,OAAO,SAAS,KAAK,IAAI,QAAQ,MAAM,IAAI,KAAK,SAAS,IAAI;CAC7D,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,MAAM,UAAU,QAAQ,EAAE,GAAG,CAAC;CACjE,MAAM,SAAS,IAAI,MAAM,MAAM;CAC/B,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,SAAS;EAC5C,OAAO,SAAS;EAChB,SAAS;CACV;CACA,OAAO;AACR;;;;;;;;;;;;;;;ACrBA,IAAW,8BAA6B,UAAS,MAAM;;;;;;AAOvD,IAAW,wCAAwC,eAAe,CAAC,0BAA0B,IAAG,cAAa;CAC3G,IAAI,eAAe,UAAU,aAAa,OAAO,UAAU,UAAU,SAAS,IAAI;CAClF,OAAO;EACL,WAAW,UAAU;EACrB,cAAc,UAAU;EACxB;EACA,gBAAgB;CAClB;AACF,CAAC;AACD,IAAW,sDAAsD,OAAO,UAAU,UAAU,eAAe;CACzG,IAAI,YACF,OAAO,sCAAsC,KAAK;CAEpD,OAAO,2BAA2B,KAAK;AACzC;AACA,IAAW,sDAAsD,OAAO,UAAU,eAAe;CAC/F,IAAI,YACF,OAAO,sCAAsC,KAAK;CAEpD,OAAO,2BAA2B,KAAK;AACzC;;;;;;;;;AAUA,IAAW,sCAAsC,eAAe,CAAC,kDAAkD,IAAG,SAAQ;CAC5H,IAAI,YAAY,KAAK,WACnB,iBAAiB,KAAK,gBACtB,eAAe,KAAK;CACtB,OAAO,aAAa,OAAO,UAAU,MAAM,gBAAgB,eAAe,CAAC,IAAI,CAAC;AAClF,CAAC;AAMgD,eAAe,CAAC,qCAAqC,IAAG,UAAS;CAChH,IAAI,YAAY,MAAM,WACpB,iBAAiB,MAAM,gBACvB,eAAe,MAAM;CACvB,OAAO,aAAa,OAAO,UAAU,MAAM,gBAAgB,eAAe,CAAC,IAAI,CAAC;AAClF,CAAC;;;;;AAMD,IAAW,kCAAkC,eAAe,CAAC,0BAA0B,IAAG,UAAS;CACjG,IAAI,YAAY,MAAM,WACpB,iBAAiB,MAAM,gBACvB,eAAe,MAAM;CACvB,OAAO,aAAa,OAAO,UAAU,MAAM,gBAAgB,eAAe,CAAC,IAAI,CAAC;AAClF,CAAC;;;AC7ED,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAI9D,SAAgB,yBAAyB,GAAG;CAC1C,IAAI,MAAM,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG;EACtC,IAAI,KAAKD,kBAAe,GAAG,CAAC,GAC1B,MAAM,GAAG,IACT,MAAM,GAAG;EACX,IAAI,oBAAoB,GAAG,KAAK,oBAAoB,GAAG,GACrD,OAAO;CAEX;CACA,OAAO;AACT;AACA,SAAgB,aAAa,gBAAgB,gBAAgB,mBAAmB;CAC9E,IAAI,mBAEF,OAAO;CAOT,OAAO,CAAC,KAAK,IAAI,eAAe,IAAI,eAAe,EAAE,GAAG,KAAK,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;AACxG;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,6CAA6C,YAAY,mBAAmB;CAC1F,IAAI,CAAC,mBAEH;CAEF,IAAI,OAAO,eAAe,YAExB;CAEF,IAAI,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GAAG;EACxD,IAAI,cAAcA,kBAAe,YAAY,CAAC,GAC5C,cAAc,YAAY,IAC1B,cAAc,YAAY;EAC5B,IAAI,UAAU;EACd,IAAI,oBAAoB,WAAW,GACjC,WAAW;OACN,IAAI,OAAO,gBAAgB,YAEhC;EAEF,IAAI,oBAAoB,WAAW,GACjC,WAAW;OACN,IAAI,OAAO,gBAAgB,YAEhC;EAEF,IAAI,YAAY,CAAC,UAAU,QAAQ;EACnC,IAAI,yBAAyB,SAAS,GACpC,OAAO;CAEX;AAEF;;;;;;;;;;;;;;;;;;;;;AAsBA,SAAgB,yBAAyB,YAAY,YAAY,mBAAmB;CAClF,IAAI,CAAC,qBAAqB,cAAc,MAEtC;CAEF,IAAI,OAAO,eAAe,cAAc,cAAc,MACpD,IAAI;EACF,IAAI,SAAS,WAAW,YAAY,iBAAiB;EACrD,IAAI,yBAAyB,MAAM,GACjC,OAAO,aAAa,QAAQ,YAAY,iBAAiB;CAE7D,SAAS,SAAS,CAElB;CAEF,IAAI,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GAAG;EACxD,IAAI,eAAeA,kBAAe,YAAY,CAAC,GAC7C,cAAc,aAAa,IAC3B,cAAc,aAAa;EAC7B,IAAI,UAAU;EACd,IAAI,gBAAgB,QACd;OAAA,cAAc,MAChB,WAAW,KAAK,IAAI,GAAG,UAAU;EAAA,OAE9B,IAAI,SAAS,WAAW,GAC7B,WAAW;OACN,IAAI,OAAO,gBAAgB,YAChC,IAAI;GACF,IAAI,cAAc,MAChB,WAAW,YAAY,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,EAAE;EAEhG,SAAS,UAAU,CAEnB;OACK,IAAI,OAAO,gBAAgB,YAAY,cAAc,KAAK,WAAW,GAAG;GAC7E,IAAI,QAAQ,cAAc,KAAK,WAAW;GAC1C,IAAI,SAAS,QAAQ,MAAM,MAAM,QAAQ,cAAc,MACrD,WAAW,KAAA;QACN;IACL,IAAI,QAAQ,CAAC,MAAM;IACnB,WAAW,WAAW,KAAK;GAC7B;EACF,OACE,WAAW,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;EAEhF,IAAI,gBAAgB,QACd;OAAA,cAAc,MAChB,WAAW,KAAK,IAAI,GAAG,UAAU;EAAA,OAE9B,IAAI,SAAS,WAAW,GAC7B,WAAW;OACN,IAAI,OAAO,gBAAgB,YAChC,IAAI;GACF,IAAI,cAAc,MAChB,WAAW,YAAY,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,EAAE;EAEhG,SAAS,UAAU,CAEnB;OACK,IAAI,OAAO,gBAAgB,YAAY,cAAc,KAAK,WAAW,GAAG;GAC7E,IAAI,SAAS,cAAc,KAAK,WAAW;GAC3C,IAAI,UAAU,QAAQ,OAAO,MAAM,QAAQ,cAAc,MACvD,WAAW,KAAA;QACN;IACL,IAAI,SAAS,CAAC,OAAO;IACrB,WAAW,WAAW,KAAK;GAC7B;EACF,OACE,WAAW,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;EAEhF,IAAI,YAAY,CAAC,UAAU,QAAQ;EACnC,IAAI,yBAAyB,SAAS,GAAG;GACvC,IAAI,cAAc,MAChB,OAAO;GAET,OAAO,aAAa,WAAW,YAAY,iBAAiB;EAC9D;CACF;AAEF;;;;;CC3LC,CAAC,SAAU,aAAa;EACvB;EAiBA,IAAI,aAAa,KAIf,UAAU;GAOR,WAAW;GAkBX,UAAU;GAIV,UAAU;GAIV,UAAW;GAIX,MAAM;EACR,GAMA,WAAW,MAEX,eAAe,mBACf,kBAAkB,eAAe,sBACjC,qBAAqB,eAAe,2BAEpC,YAAY,KAAK,OACjB,UAAU,KAAK,KAEf,YAAY,sCAEZ,KACA,OAAO,KACP,WAAW,GACX,mBAAmB,kBACnB,QAAQ,UAAU,mBAAmB,QAAQ,GAG7C,IAAI,CAAC;EAiDP,EAAE,gBAAgB,EAAE,MAAM,WAAY;GACpC,IAAI,IAAI,IAAI,KAAK,YAAY,IAAI;GACjC,IAAI,EAAE,GAAG,EAAE,IAAI;GACf,OAAO;EACT;EAUA,EAAE,aAAa,EAAE,MAAM,SAAU,GAAG;GAClC,IAAI,GAAG,GAAG,KAAK,KACb,IAAI;GAEN,IAAI,IAAI,EAAE,YAAY,CAAC;GAGvB,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE;GAGlC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;GAElD,MAAM,EAAE,EAAE;GACV,MAAM,EAAE,EAAE;GAGV,KAAK,IAAI,GAAG,IAAI,MAAM,MAAM,MAAM,KAAK,IAAI,GAAG,EAAE,GAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;GAIhE,OAAO,QAAQ,MAAM,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI;EACrD;EAOA,EAAE,gBAAgB,EAAE,KAAK,WAAY;GACnC,IAAI,IAAI,MACN,IAAI,EAAE,EAAE,SAAS,GACjB,MAAM,IAAI,EAAE,KAAK;GAGnB,IAAI,EAAE,EAAE;GACR,IAAI,GAAG,OAAO,IAAI,MAAM,GAAG,KAAK,IAAI;GAEpC,OAAO,KAAK,IAAI,IAAI;EACtB;EAQA,EAAE,YAAY,EAAE,MAAM,SAAU,GAAG;GACjC,OAAO,OAAO,MAAM,IAAI,KAAK,YAAY,CAAC,CAAC;EAC7C;EAQA,EAAE,qBAAqB,EAAE,OAAO,SAAU,GAAG;GAC3C,IAAI,IAAI,MACN,OAAO,EAAE;GACX,OAAO,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS;EAC3D;EAOA,EAAE,SAAS,EAAE,KAAK,SAAU,GAAG;GAC7B,OAAO,CAAC,KAAK,IAAI,CAAC;EACpB;EAOA,EAAE,WAAW,WAAY;GACvB,OAAO,kBAAkB,IAAI;EAC/B;EAQA,EAAE,cAAc,EAAE,KAAK,SAAU,GAAG;GAClC,OAAO,KAAK,IAAI,CAAC,IAAI;EACvB;EAQA,EAAE,uBAAuB,EAAE,MAAM,SAAU,GAAG;GAC5C,OAAO,KAAK,IAAI,CAAC,KAAK;EACxB;EAOA,EAAE,YAAY,EAAE,QAAQ,WAAY;GAClC,OAAO,KAAK,IAAI,KAAK,EAAE,SAAS;EAClC;EAOA,EAAE,aAAa,EAAE,QAAQ,WAAY;GACnC,OAAO,KAAK,IAAI;EAClB;EAOA,EAAE,aAAa,EAAE,QAAQ,WAAY;GACnC,OAAO,KAAK,IAAI;EAClB;EAOA,EAAE,SAAS,WAAY;GACrB,OAAO,KAAK,MAAM;EACpB;EAOA,EAAE,WAAW,EAAE,KAAK,SAAU,GAAG;GAC/B,OAAO,KAAK,IAAI,CAAC,IAAI;EACvB;EAOA,EAAE,oBAAoB,EAAE,MAAM,SAAU,GAAG;GACzC,OAAO,KAAK,IAAI,CAAC,IAAI;EACvB;EAgBA,EAAE,YAAY,EAAE,MAAM,SAAU,MAAM;GACpC,IAAI,GACF,IAAI,MACJ,OAAO,EAAE,aACT,KAAK,KAAK,WACV,MAAM,KAAK;GAGb,IAAI,SAAS,KAAK,GAChB,OAAO,IAAI,KAAK,EAAE;QACb;IACL,OAAO,IAAI,KAAK,IAAI;IAKpB,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG,GAAG,GAAG,MAAM,MAAM,eAAe,KAAK;GAClE;GAIA,IAAI,EAAE,IAAI,GAAG,MAAM,MAAM,gBAAgB,EAAE,IAAI,QAAQ,YAAY;GAGnE,IAAI,EAAE,GAAG,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC;GAEhC,WAAW;GACX,IAAI,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG;GACzC,WAAW;GAEX,OAAO,MAAM,GAAG,EAAE;EACpB;EAQA,EAAE,QAAQ,EAAE,MAAM,SAAU,GAAG;GAC7B,IAAI,IAAI;GACR,IAAI,IAAI,EAAE,YAAY,CAAC;GACvB,OAAO,EAAE,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;EAC7D;EAQA,EAAE,SAAS,EAAE,MAAM,SAAU,GAAG;GAC9B,IAAI,GACF,IAAI,MACJ,OAAO,EAAE,aACT,KAAK,KAAK;GAEZ,IAAI,IAAI,KAAK,CAAC;GAGd,IAAI,CAAC,EAAE,GAAG,MAAM,MAAM,eAAe,KAAK;GAG1C,IAAI,CAAC,EAAE,GAAG,OAAO,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE;GAGtC,WAAW;GACX,IAAI,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;GAC9B,WAAW;GAEX,OAAO,EAAE,MAAM,CAAC;EAClB;EASA,EAAE,qBAAqB,EAAE,MAAM,WAAY;GACzC,OAAO,IAAI,IAAI;EACjB;EAQA,EAAE,mBAAmB,EAAE,KAAK,WAAY;GACtC,OAAO,GAAG,IAAI;EAChB;EAQA,EAAE,UAAU,EAAE,MAAM,WAAY;GAC9B,IAAI,IAAI,IAAI,KAAK,YAAY,IAAI;GACjC,EAAE,IAAI,CAAC,EAAE,KAAK;GACd,OAAO;EACT;EAQA,EAAE,OAAO,EAAE,MAAM,SAAU,GAAG;GAC5B,IAAI,IAAI;GACR,IAAI,IAAI,EAAE,YAAY,CAAC;GACvB,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,SAAS,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;EAC7D;EASA,EAAE,YAAY,EAAE,KAAK,SAAU,GAAG;GAChC,IAAI,GAAG,IAAI,GACT,IAAI;GAEN,IAAI,MAAM,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,GAAG,MAAM,MAAM,kBAAkB,CAAC;GAEpF,IAAI,kBAAkB,CAAC,IAAI;GAC3B,IAAI,EAAE,EAAE,SAAS;GACjB,KAAK,IAAI,WAAW;GACpB,IAAI,EAAE,EAAE;GAGR,IAAI,GAAG;IAGL,OAAO,IAAI,MAAM,GAAG,KAAK,IAAI;IAG7B,KAAK,IAAI,EAAE,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI;GACrC;GAEA,OAAO,KAAK,IAAI,KAAK,IAAI;EAC3B;EAQA,EAAE,aAAa,EAAE,OAAO,WAAY;GAClC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KACrB,IAAI,MACJ,OAAO,EAAE;GAGX,IAAI,EAAE,IAAI,GAAG;IACX,IAAI,CAAC,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC;IAG3B,MAAM,MAAM,eAAe,KAAK;GAClC;GAEA,IAAI,kBAAkB,CAAC;GACvB,WAAW;GAGX,IAAI,KAAK,KAAK,CAAC,CAAC;GAIhB,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG;IACxB,IAAI,eAAe,EAAE,CAAC;IACtB,KAAK,EAAE,SAAS,KAAK,KAAK,GAAG,KAAK;IAClC,IAAI,KAAK,KAAK,CAAC;IACf,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI;IAE3C,IAAI,KAAK,IAAI,GACX,IAAI,OAAO;SACN;KACL,IAAI,EAAE,cAAc;KACpB,IAAI,EAAE,MAAM,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI;IACvC;IAEA,IAAI,IAAI,KAAK,CAAC;GAChB,OACE,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC;GAG3B,KAAK,KAAK;GACV,IAAI,MAAM,KAAK;GAGf,SAAS;IACP,IAAI;IACJ,IAAI,EAAE,KAAK,OAAO,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAG;IAE3C,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,eAAe,EAAE,CAAC,EAAA,CAAG,MAAM,GAAG,GAAG,GAAG;KACjF,IAAI,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;KAI5B,IAAI,KAAK,OAAO,KAAK,QAAQ;MAI3B,MAAM,GAAG,KAAK,GAAG,CAAC;MAElB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;OACpB,IAAI;OACJ;MACF;KACF,OAAO,IAAI,KAAK,QACd;KAGF,OAAO;IACT;GACF;GAEA,WAAW;GAEX,OAAO,MAAM,GAAG,EAAE;EACpB;EAQA,EAAE,QAAQ,EAAE,MAAM,SAAU,GAAG;GAC7B,IAAI,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,KACjC,IAAI,MACJ,OAAO,EAAE,aACT,KAAK,EAAE,GACP,MAAM,IAAI,IAAI,KAAK,CAAC,EAAA,CAAG;GAGzB,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC;GAEnC,EAAE,KAAK,EAAE;GACT,IAAI,EAAE,IAAI,EAAE;GACZ,MAAM,GAAG;GACT,MAAM,GAAG;GAGT,IAAI,MAAM,KAAK;IACb,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;GACR;GAGA,IAAI,CAAC;GACL,KAAK,MAAM;GACX,KAAK,IAAI,IAAI,MAAM,EAAE,KAAK,CAAC;GAG3B,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI;IACvB,QAAQ;IACR,KAAK,IAAI,MAAM,GAAG,IAAI,IAAI;KACxB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,IAAI,KAAK;KACnC,EAAE,OAAO,IAAI,OAAO;KACpB,QAAQ,IAAI,OAAO;IACrB;IAEA,EAAE,MAAM,EAAE,KAAK,SAAS,OAAO;GACjC;GAGA,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI;GAExB,IAAI,OAAO,EAAE;QACR,EAAE,MAAM;GAEb,EAAE,IAAI;GACN,EAAE,IAAI;GAEN,OAAO,WAAW,MAAM,GAAG,KAAK,SAAS,IAAI;EAC/C;EAaA,EAAE,kBAAkB,EAAE,OAAO,SAAU,IAAI,IAAI;GAC7C,IAAI,IAAI,MACN,OAAO,EAAE;GAEX,IAAI,IAAI,KAAK,CAAC;GACd,IAAI,OAAO,KAAK,GAAG,OAAO;GAE1B,WAAW,IAAI,GAAG,UAAU;GAE5B,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK;QACxB,WAAW,IAAI,GAAG,CAAC;GAExB,OAAO,MAAM,GAAG,KAAK,kBAAkB,CAAC,IAAI,GAAG,EAAE;EACnD;EAWA,EAAE,gBAAgB,SAAU,IAAI,IAAI;GAClC,IAAI,KACF,IAAI,MACJ,OAAO,EAAE;GAEX,IAAI,OAAO,KAAK,GACd,MAAM,SAAS,GAAG,IAAI;QACjB;IACL,WAAW,IAAI,GAAG,UAAU;IAE5B,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK;SACxB,WAAW,IAAI,GAAG,CAAC;IAExB,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;IACjC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;GAChC;GAEA,OAAO;EACT;EAmBA,EAAE,UAAU,SAAU,IAAI,IAAI;GAC5B,IAAI,KAAK,GACP,IAAI,MACJ,OAAO,EAAE;GAEX,IAAI,OAAO,KAAK,GAAG,OAAO,SAAS,CAAC;GAEpC,WAAW,IAAI,GAAG,UAAU;GAE5B,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK;QACxB,WAAW,IAAI,GAAG,CAAC;GAExB,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,CAAC,IAAI,GAAG,EAAE;GACxD,MAAM,SAAS,EAAE,IAAI,GAAG,OAAO,KAAK,kBAAkB,CAAC,IAAI,CAAC;GAI5D,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,MAAM,MAAM;EAChD;EAQA,EAAE,YAAY,EAAE,QAAQ,WAAY;GAClC,IAAI,IAAI,MACN,OAAO,EAAE;GACX,OAAO,MAAM,IAAI,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI,GAAG,KAAK,QAAQ;EACnE;EAOA,EAAE,WAAW,WAAY;GACvB,OAAO,CAAC;EACV;EAgBA,EAAE,UAAU,EAAE,MAAM,SAAU,GAAG;GAC/B,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM,QACrB,IAAI,MACJ,OAAO,EAAE,aACT,QAAQ,IACR,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC;GAGvB,IAAI,CAAC,EAAE,GAAG,OAAO,IAAI,KAAK,GAAG;GAE7B,IAAI,IAAI,KAAK,CAAC;GAId,IAAI,CAAC,EAAE,GAAG;IACR,IAAI,EAAE,IAAI,GAAG,MAAM,MAAM,eAAe,UAAU;IAClD,OAAO;GACT;GAGA,IAAI,EAAE,GAAG,GAAG,GAAG,OAAO;GAEtB,KAAK,KAAK;GAGV,IAAI,EAAE,GAAG,GAAG,GAAG,OAAO,MAAM,GAAG,EAAE;GAEjC,IAAI,EAAE;GACN,IAAI,EAAE,EAAE,SAAS;GACjB,SAAS,KAAK;GACd,OAAO,EAAE;GAET,IAAI,CAAC,QAGC;QAAA,OAAO,GAAG,MAAM,MAAM,eAAe,KAAK;GAAA,OAGzC,KAAK,IAAI,KAAK,IAAI,CAAC,KAAK,OAAO,kBAAkB;IACtD,IAAI,IAAI,KAAK,GAAG;IAIhB,IAAI,KAAK,KAAK,KAAK,WAAW,CAAC;IAE/B,WAAW;IAEX,SAAS;KACP,IAAI,IAAI,GAAG;MACT,IAAI,EAAE,MAAM,CAAC;MACb,SAAS,EAAE,GAAG,CAAC;KACjB;KAEA,IAAI,UAAU,IAAI,CAAC;KACnB,IAAI,MAAM,GAAG;KAEb,IAAI,EAAE,MAAM,CAAC;KACb,SAAS,EAAE,GAAG,CAAC;IACjB;IAEA,WAAW;IAEX,OAAO,EAAE,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,EAAE;GACrD;GAGA,OAAO,OAAO,KAAK,EAAE,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,KAAK;GAElD,EAAE,IAAI;GACN,WAAW;GACX,IAAI,EAAE,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC;GAC7B,WAAW;GACX,IAAI,IAAI,CAAC;GACT,EAAE,IAAI;GAEN,OAAO;EACT;EAcA,EAAE,cAAc,SAAU,IAAI,IAAI;GAChC,IAAI,GAAG,KACL,IAAI,MACJ,OAAO,EAAE;GAEX,IAAI,OAAO,KAAK,GAAG;IACjB,IAAI,kBAAkB,CAAC;IACvB,MAAM,SAAS,GAAG,KAAK,KAAK,YAAY,KAAK,KAAK,QAAQ;GAC5D,OAAO;IACL,WAAW,IAAI,GAAG,UAAU;IAE5B,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK;SACxB,WAAW,IAAI,GAAG,CAAC;IAExB,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE;IAC7B,IAAI,kBAAkB,CAAC;IACvB,MAAM,SAAS,GAAG,MAAM,KAAK,KAAK,KAAK,UAAU,EAAE;GACrD;GAEA,OAAO;EACT;EAYA,EAAE,sBAAsB,EAAE,OAAO,SAAU,IAAI,IAAI;GACjD,IAAI,IAAI,MACN,OAAO,EAAE;GAEX,IAAI,OAAO,KAAK,GAAG;IACjB,KAAK,KAAK;IACV,KAAK,KAAK;GACZ,OAAO;IACL,WAAW,IAAI,GAAG,UAAU;IAE5B,IAAI,OAAO,KAAK,GAAG,KAAK,KAAK;SACxB,WAAW,IAAI,GAAG,CAAC;GAC1B;GAEA,OAAO,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE;EAClC;EAUA,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,WAAY;GACtD,IAAI,IAAI,MACN,IAAI,kBAAkB,CAAC,GACvB,OAAO,EAAE;GAEX,OAAO,SAAS,GAAG,KAAK,KAAK,YAAY,KAAK,KAAK,QAAQ;EAC7D;EA8BA,SAAS,IAAI,GAAG,GAAG;GACjB,IAAI,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,IAC9B,OAAO,EAAE,aACT,KAAK,KAAK;GAGZ,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG;IAIhB,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC;IACxB,OAAO,WAAW,MAAM,GAAG,EAAE,IAAI;GACnC;GAEA,KAAK,EAAE;GACP,KAAK,EAAE;GAIP,IAAI,EAAE;GACN,IAAI,EAAE;GACN,KAAK,GAAG,MAAM;GACd,IAAI,IAAI;GAGR,IAAI,GAAG;IACL,IAAI,IAAI,GAAG;KACT,IAAI;KACJ,IAAI,CAAC;KACL,MAAM,GAAG;IACX,OAAO;KACL,IAAI;KACJ,IAAI;KACJ,MAAM,GAAG;IACX;IAGA,IAAI,KAAK,KAAK,KAAK,QAAQ;IAC3B,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM;IAE9B,IAAI,IAAI,KAAK;KACX,IAAI;KACJ,EAAE,SAAS;IACb;IAGA,EAAE,QAAQ;IACV,OAAO,MAAM,EAAE,KAAK,CAAC;IACrB,EAAE,QAAQ;GACZ;GAEA,MAAM,GAAG;GACT,IAAI,GAAG;GAGP,IAAI,MAAM,IAAI,GAAG;IACf,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;GACP;GAGA,KAAK,QAAQ,GAAG,IAAI;IAClB,SAAS,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,SAAS,OAAO;IACnD,GAAG,MAAM;GACX;GAEA,IAAI,OAAO;IACT,GAAG,QAAQ,KAAK;IAChB,EAAE;GACJ;GAIA,KAAK,MAAM,GAAG,QAAQ,GAAG,EAAE,QAAQ,IAAI,GAAG,IAAI;GAE9C,EAAE,IAAI;GACN,EAAE,IAAI;GAEN,OAAO,WAAW,MAAM,GAAG,EAAE,IAAI;EACnC;EAGA,SAAS,WAAW,GAAG,KAAK,KAAK;GAC/B,IAAI,MAAM,CAAC,CAAC,KAAK,IAAI,OAAO,IAAI,KAC9B,MAAM,MAAM,kBAAkB,CAAC;EAEnC;EAGA,SAAS,eAAe,GAAG;GACzB,IAAI,GAAG,GAAG,IACR,kBAAkB,EAAE,SAAS,GAC7B,MAAM,IACN,IAAI,EAAE;GAER,IAAI,kBAAkB,GAAG;IACvB,OAAO;IACP,KAAK,IAAI,GAAG,IAAI,iBAAiB,KAAK;KACpC,KAAK,EAAE,KAAK;KACZ,IAAI,WAAW,GAAG;KAClB,IAAI,GAAG,OAAO,cAAc,CAAC;KAC7B,OAAO;IACT;IAEA,IAAI,EAAE;IACN,KAAK,IAAI;IACT,IAAI,WAAW,GAAG;IAClB,IAAI,GAAG,OAAO,cAAc,CAAC;GAC/B,OAAO,IAAI,MAAM,GACf,OAAO;GAIT,OAAO,IAAI,OAAO,IAAI,KAAK;GAE3B,OAAO,MAAM;EACf;EAGA,IAAI,UAAU,WAAY;GAGxB,SAAS,gBAAgB,GAAG,GAAG;IAC7B,IAAI,MACF,QAAQ,GACR,IAAI,EAAE;IAER,KAAK,IAAI,EAAE,MAAM,GAAG,MAAM;KACxB,OAAO,EAAE,KAAK,IAAI;KAClB,EAAE,KAAK,OAAO,OAAO;KACrB,QAAQ,OAAO,OAAO;IACxB;IAEA,IAAI,OAAO,EAAE,QAAQ,KAAK;IAE1B,OAAO;GACT;GAEA,SAAS,QAAQ,GAAG,GAAG,IAAI,IAAI;IAC7B,IAAI,GAAG;IAEP,IAAI,MAAM,IACR,IAAI,KAAK,KAAK,IAAI;SAElB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KACtB,IAAI,EAAE,MAAM,EAAE,IAAI;KAChB,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;KACtB;IACF;IAIJ,OAAO;GACT;GAEA,SAAS,SAAS,GAAG,GAAG,IAAI;IAC1B,IAAI,IAAI;IAGR,OAAO,OAAO;KACZ,EAAE,OAAO;KACT,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI;KACxB,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE;IAC/B;IAGA,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,MAAM;GACzC;GAEA,OAAO,SAAU,GAAG,GAAG,IAAI,IAAI;IAC7B,IAAI,KAAK,GAAG,GAAG,GAAG,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAC7E,OAAO,EAAE,aACT,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,IACxB,KAAK,EAAE,GACP,KAAK,EAAE;IAGT,IAAI,CAAC,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,GAAG,MAAM,MAAM,eAAe,kBAAkB;IAEvD,IAAI,EAAE,IAAI,EAAE;IACZ,KAAK,GAAG;IACR,KAAK,GAAG;IACR,IAAI,IAAI,KAAK,IAAI;IACjB,KAAK,EAAE,IAAI,CAAC;IAGZ,KAAK,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,KAAM,EAAE;IACvC,IAAI,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE;IAE5B,IAAI,MAAM,MACR,KAAK,KAAK,KAAK;SACV,IAAI,IACT,KAAK,MAAM,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,KAAK;SAE1D,KAAK;IAGP,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC;IAG7B,KAAK,KAAK,WAAW,IAAI;IACzB,IAAI;IAGJ,IAAI,MAAM,GAAG;KACX,IAAI;KACJ,KAAK,GAAG;KACR;KAGA,QAAQ,IAAI,MAAM,MAAM,MAAM,KAAK;MACjC,IAAI,IAAI,QAAQ,GAAG,MAAM;MACzB,GAAG,KAAK,IAAI,KAAK;MACjB,IAAI,IAAI,KAAK;KACf;IAGF,OAAO;KAGL,IAAI,QAAQ,GAAG,KAAK,KAAK;KAEzB,IAAI,IAAI,GAAG;MACT,KAAK,gBAAgB,IAAI,CAAC;MAC1B,KAAK,gBAAgB,IAAI,CAAC;MAC1B,KAAK,GAAG;MACR,KAAK,GAAG;KACV;KAEA,KAAK;KACL,MAAM,GAAG,MAAM,GAAG,EAAE;KACpB,OAAO,IAAI;KAGX,OAAO,OAAO,KAAK,IAAI,UAAU;KAEjC,KAAK,GAAG,MAAM;KACd,GAAG,QAAQ,CAAC;KACZ,MAAM,GAAG;KAET,IAAI,GAAG,MAAM,OAAO,GAAG,EAAE;KAEzB,GAAG;MACD,IAAI;MAGJ,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI;MAG/B,IAAI,MAAM,GAAG;OAGX,OAAO,IAAI;OACX,IAAI,MAAM,MAAM,OAAO,OAAO,QAAQ,IAAI,MAAM;OAGhD,IAAI,OAAO,MAAM;OAUjB,IAAI,IAAI,GAAG;QACT,IAAI,KAAK,MAAM,IAAI,OAAO;QAG1B,OAAO,gBAAgB,IAAI,CAAC;QAC5B,QAAQ,KAAK;QACb,OAAO,IAAI;QAGX,MAAM,QAAQ,MAAM,KAAK,OAAO,IAAI;QAGpC,IAAI,OAAO,GAAG;SACZ;SAGA,SAAS,MAAM,KAAK,QAAQ,KAAK,IAAI,KAAK;QAC5C;OACF,OAAO;QAKL,IAAI,KAAK,GAAG,MAAM,IAAI;QACtB,OAAO,GAAG,MAAM;OAClB;OAEA,QAAQ,KAAK;OACb,IAAI,QAAQ,MAAM,KAAK,QAAQ,CAAC;OAGhC,SAAS,KAAK,MAAM,IAAI;OAGxB,IAAI,OAAO,IAAI;QACb,OAAO,IAAI;QAGX,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI;QAG/B,IAAI,MAAM,GAAG;SACX;SAGA,SAAS,KAAK,KAAK,OAAO,KAAK,IAAI,IAAI;QACzC;OACF;OAEA,OAAO,IAAI;MACb,OAAO,IAAI,QAAQ,GAAG;OACpB;OACA,MAAM,CAAC,CAAC;MACV;MAGA,GAAG,OAAO;MAGV,IAAI,OAAO,IAAI,IACb,IAAI,UAAU,GAAG,OAAO;WACnB;OACL,MAAM,CAAC,GAAG,GAAG;OACb,OAAO;MACT;KAEF,UAAU,OAAO,MAAM,IAAI,OAAO,KAAK,MAAM;IAC/C;IAGA,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM;IAErB,EAAE,IAAI;IAEN,OAAO,MAAM,GAAG,KAAK,KAAK,kBAAkB,CAAC,IAAI,IAAI,EAAE;GACzD;EACF,EAAA,CAAG;EAyBH,SAAS,IAAI,GAAG,IAAI;GAClB,IAAI,aAAa,OAAO,KAAK,KAAK,GAAG,KACnC,IAAI,GACJ,IAAI,GACJ,OAAO,EAAE,aACT,KAAK,KAAK;GAEZ,IAAI,kBAAkB,CAAC,IAAI,IAAI,MAAM,MAAM,qBAAqB,kBAAkB,CAAC,CAAC;GAGpF,IAAI,CAAC,EAAE,GAAG,OAAO,IAAI,KAAK,GAAG;GAE7B,IAAI,MAAM,MAAM;IACd,WAAW;IACX,MAAM;GACR,OACE,MAAM;GAGR,IAAI,IAAI,KAAK,MAAO;GAEpB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAG,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK;GACP;GAGA,QAAQ,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI;GACtD,OAAO;GACP,cAAc,MAAM,MAAM,IAAI,KAAK,GAAG;GACtC,KAAK,YAAY;GAEjB,SAAS;IACP,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG;IAC7B,cAAc,YAAY,MAAM,EAAE,CAAC;IACnC,IAAI,IAAI,KAAK,OAAO,KAAK,aAAa,GAAG,CAAC;IAE1C,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,MAAM,eAAe,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG;KAC7E,OAAO,KAAK,MAAM,MAAM,IAAI,MAAM,GAAG,GAAG,GAAG;KAC3C,KAAK,YAAY;KACjB,OAAO,MAAM,QAAQ,WAAW,MAAM,MAAM,KAAK,EAAE,KAAK;IAC1D;IAEA,MAAM;GACR;EACF;EAIA,SAAS,kBAAkB,GAAG;GAC5B,IAAI,IAAI,EAAE,IAAI,UACZ,IAAI,EAAE,EAAE;GAGV,OAAO,KAAK,IAAI,KAAK,IAAI;GACzB,OAAO;EACT;EAGA,SAAS,QAAQ,MAAM,IAAI,IAAI;GAE7B,IAAI,KAAK,KAAK,KAAK,GAAG,GAAG;IAIvB,WAAW;IACX,IAAI,IAAI,KAAK,YAAY;IACzB,MAAM,MAAM,eAAe,+BAA+B;GAC5D;GAEA,OAAO,MAAM,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;EACtC;EAGA,SAAS,cAAc,GAAG;GACxB,IAAI,KAAK;GACT,OAAO,MAAM,MAAM;GACnB,OAAO;EACT;EAUA,SAAS,GAAG,GAAG,IAAI;GACjB,IAAI,GAAG,IAAI,aAAa,GAAG,WAAW,KAAK,GAAG,KAAK,IACjD,IAAI,GACJ,QAAQ,IACR,IAAI,GACJ,KAAK,EAAE,GACP,OAAO,EAAE,aACT,KAAK,KAAK;GAIZ,IAAI,EAAE,IAAI,GAAG,MAAM,MAAM,gBAAgB,EAAE,IAAI,QAAQ,YAAY;GAGnE,IAAI,EAAE,GAAG,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC;GAEhC,IAAI,MAAM,MAAM;IACd,WAAW;IACX,MAAM;GACR,OACE,MAAM;GAGR,IAAI,EAAE,GAAG,EAAE,GAAG;IACZ,IAAI,MAAM,MAAM,WAAW;IAC3B,OAAO,QAAQ,MAAM,GAAG;GAC1B;GAEA,OAAO;GACP,KAAK,YAAY;GACjB,IAAI,eAAe,EAAE;GACrB,KAAK,EAAE,OAAO,CAAC;GACf,IAAI,kBAAkB,CAAC;GAEvB,IAAI,KAAK,IAAI,CAAC,IAAI,iBAAQ;IAaxB,OAAO,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG;KACtD,IAAI,EAAE,MAAM,CAAC;KACb,IAAI,eAAe,EAAE,CAAC;KACtB,KAAK,EAAE,OAAO,CAAC;KACf;IACF;IAEA,IAAI,kBAAkB,CAAC;IAEvB,IAAI,KAAK,GAAG;KACV,IAAI,IAAI,KAAK,OAAO,CAAC;KACrB;IACF,OACE,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,MAAM,CAAC,CAAC;GAEtC,OAAO;IAKL,IAAI,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;IAC3C,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC;IAE3D,KAAK,YAAY;IACjB,OAAO,MAAM,QAAQ,WAAW,MAAM,MAAM,GAAG,EAAE,KAAK;GACxD;GAOA,MAAM,YAAY,IAAI,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG;GAC3D,KAAK,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG;GAC1B,cAAc;GAEd,SAAS;IACP,YAAY,MAAM,UAAU,MAAM,EAAE,GAAG,GAAG;IAC1C,IAAI,IAAI,KAAK,OAAO,WAAW,IAAI,KAAK,WAAW,GAAG,GAAG,CAAC;IAE1D,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,MAAM,eAAe,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG;KAC7E,MAAM,IAAI,MAAM,CAAC;KAGjB,IAAI,MAAM,GAAG,MAAM,IAAI,KAAK,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;KACpE,MAAM,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG;KAElC,KAAK,YAAY;KACjB,OAAO,MAAM,QAAQ,WAAW,MAAM,MAAM,KAAK,EAAE,KAAK;IAC1D;IAEA,MAAM;IACN,eAAe;GACjB;EACF;EAMA,SAAS,aAAa,GAAG,KAAK;GAC5B,IAAI,GAAG,GAAG;GAGV,KAAK,IAAI,IAAI,QAAQ,GAAG,KAAK,IAAI,MAAM,IAAI,QAAQ,KAAK,EAAE;GAG1D,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG;IAG9B,IAAI,IAAI,GAAG,IAAI;IACf,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC;IACrB,MAAM,IAAI,UAAU,GAAG,CAAC;GAC1B,OAAO,IAAI,IAAI,GAGb,IAAI,IAAI;GAIV,KAAK,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE;GAGzC,KAAK,MAAM,IAAI,QAAQ,IAAI,WAAW,MAAM,CAAC,MAAM,KAAK,EAAE;GAC1D,MAAM,IAAI,MAAM,GAAG,GAAG;GAEtB,IAAI,KAAK;IACP,OAAO;IACP,IAAI,IAAI,IAAI;IACZ,EAAE,IAAI,UAAU,IAAI,QAAQ;IAC5B,EAAE,IAAI,CAAC;IAMP,KAAK,IAAI,KAAK;IACd,IAAI,IAAI,GAAG,KAAK;IAEhB,IAAI,IAAI,KAAK;KACX,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;KAChC,KAAK,OAAO,UAAU,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,GAAG,KAAK,QAAQ,CAAC;KACrE,MAAM,IAAI,MAAM,CAAC;KACjB,IAAI,WAAW,IAAI;IACrB,OACE,KAAK;IAGP,OAAO,MAAM,OAAO;IACpB,EAAE,EAAE,KAAK,CAAC,GAAG;IAEb,IAAI,aAAa,EAAE,IAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,MAAM,MAAM,qBAAqB,CAAC;GACnF,OAAO;IAGL,EAAE,IAAI;IACN,EAAE,IAAI;IACN,EAAE,IAAI,CAAC,CAAC;GACV;GAEA,OAAO;EACT;EAMC,SAAS,MAAM,GAAG,IAAI,IAAI;GACzB,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,SAAS,GAAG,KAC9B,KAAK,EAAE;GAWT,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI;GACzC,IAAI,KAAK;GAGT,IAAI,IAAI,GAAG;IACT,KAAK;IACL,IAAI;IACJ,IAAI,GAAG,MAAM;GACf,OAAO;IACL,MAAM,KAAK,MAAM,IAAI,KAAK,QAAQ;IAClC,IAAI,GAAG;IACP,IAAI,OAAO,GAAG,OAAO;IACrB,IAAI,IAAI,GAAG;IAGX,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI;IAG9B,KAAK;IAIL,IAAI,IAAI,WAAW;GACrB;GAEA,IAAI,OAAO,KAAK,GAAG;IACjB,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC;IAGzB,KAAK,IAAI,IAAI,KAAK;IAGlB,UAAU,KAAK,KAAK,GAAG,MAAM,OAAO,KAAK,KAAK,IAAI;IAMlD,UAAU,KAAK,KACV,MAAM,aAAa,MAAM,KAAK,OAAO,EAAE,IAAI,IAAI,IAAI,MACpD,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,WAAW,MAAM,MAGhD,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,MAAM,KAAM,KAClE,OAAO,EAAE,IAAI,IAAI,IAAI;GAC7B;GAEA,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI;IACpB,IAAI,SAAS;KACX,IAAI,kBAAkB,CAAC;KACvB,GAAG,SAAS;KAGZ,KAAK,KAAK,IAAI;KAGd,GAAG,KAAK,QAAQ,KAAK,WAAW,KAAK,YAAY,QAAQ;KACzD,EAAE,IAAI,UAAU,CAAC,KAAK,QAAQ,KAAK;IACrC,OAAO;KACL,GAAG,SAAS;KAGZ,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI;IACtB;IAEA,OAAO;GACT;GAGA,IAAI,KAAK,GAAG;IACV,GAAG,SAAS;IACZ,IAAI;IACJ;GACF,OAAO;IACL,GAAG,SAAS,MAAM;IAClB,IAAI,QAAQ,IAAI,WAAW,CAAC;IAI5B,GAAG,OAAO,IAAI,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI;GACxE;GAEA,IAAI,SACF,SAGE,IAAI,OAAO,GAAG;IACZ,KAAK,GAAG,MAAM,MAAM,MAAM;KACxB,GAAG,KAAK;KACR,EAAE,EAAE;IACN;IAEA;GACF,OAAO;IACL,GAAG,QAAQ;IACX,IAAI,GAAG,QAAQ,MAAM;IACrB,GAAG,SAAS;IACZ,IAAI;GACN;GAKJ,KAAK,IAAI,GAAG,QAAQ,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI;GAE3C,IAAI,aAAa,EAAE,IAAI,SAAS,EAAE,IAAI,CAAC,QACrC,MAAM,MAAM,qBAAqB,kBAAkB,CAAC,CAAC;GAGvD,OAAO;EACT;EAGA,SAAS,SAAS,GAAG,GAAG;GACtB,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,MAAM,IACpC,OAAO,EAAE,aACT,KAAK,KAAK;GAIZ,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG;IAChB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;SACb,IAAI,IAAI,KAAK,CAAC;IACnB,OAAO,WAAW,MAAM,GAAG,EAAE,IAAI;GACnC;GAEA,KAAK,EAAE;GACP,KAAK,EAAE;GAIP,IAAI,EAAE;GACN,KAAK,EAAE;GACP,KAAK,GAAG,MAAM;GACd,IAAI,KAAK;GAGT,IAAI,GAAG;IACL,OAAO,IAAI;IAEX,IAAI,MAAM;KACR,IAAI;KACJ,IAAI,CAAC;KACL,MAAM,GAAG;IACX,OAAO;KACL,IAAI;KACJ,IAAI;KACJ,MAAM,GAAG;IACX;IAKA,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,QAAQ,GAAG,GAAG,IAAI;IAE9C,IAAI,IAAI,GAAG;KACT,IAAI;KACJ,EAAE,SAAS;IACb;IAGA,EAAE,QAAQ;IACV,KAAK,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC;IAC1B,EAAE,QAAQ;GAGZ,OAAO;IAIL,IAAI,GAAG;IACP,MAAM,GAAG;IACT,OAAO,IAAI;IACX,IAAI,MAAM,MAAM;IAEhB,KAAK,IAAI,GAAG,IAAI,KAAK,KACnB,IAAI,GAAG,MAAM,GAAG,IAAI;KAClB,OAAO,GAAG,KAAK,GAAG;KAClB;IACF;IAGF,IAAI;GACN;GAEA,IAAI,MAAM;IACR,IAAI;IACJ,KAAK;IACL,KAAK;IACL,EAAE,IAAI,CAAC,EAAE;GACX;GAEA,MAAM,GAAG;GAIT,KAAK,IAAI,GAAG,SAAS,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,SAAS;GAGlD,KAAK,IAAI,GAAG,QAAQ,IAAI,IAAI;IAC1B,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI;KACnB,KAAK,IAAI,GAAG,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,KAAK,OAAO;KAChD,EAAE,GAAG;KACL,GAAG,MAAM;IACX;IAEA,GAAG,MAAM,GAAG;GACd;GAGA,OAAO,GAAG,EAAE,SAAS,IAAI,GAAG,IAAI;GAGhC,OAAO,GAAG,OAAO,GAAG,GAAG,MAAM,GAAG,EAAE;GAGlC,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC;GAE7B,EAAE,IAAI;GACN,EAAE,IAAI;GAGN,OAAO,WAAW,MAAM,GAAG,EAAE,IAAI;EACnC;EAGA,SAAS,SAAS,GAAG,OAAO,IAAI;GAC9B,IAAI,GACF,IAAI,kBAAkB,CAAC,GACvB,MAAM,eAAe,EAAE,CAAC,GACxB,MAAM,IAAI;GAEZ,IAAI,OAAO;IACT,IAAI,OAAO,IAAI,KAAK,OAAO,GACzB,MAAM,IAAI,OAAO,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,cAAc,CAAC;SACrD,IAAI,MAAM,GACf,MAAM,IAAI,OAAO,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC;IAGzC,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ;GACrC,OAAO,IAAI,IAAI,GAAG;IAChB,MAAM,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI;IACrC,IAAI,OAAO,IAAI,KAAK,OAAO,GAAG,OAAO,cAAc,CAAC;GACtD,OAAO,IAAI,KAAK,KAAK;IACnB,OAAO,cAAc,IAAI,IAAI,GAAG;IAChC,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,MAAM,MAAM,cAAc,CAAC;GACnE,OAAO;IACL,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC;IAChE,IAAI,OAAO,IAAI,KAAK,OAAO,GAAG;KAC5B,IAAI,IAAI,MAAM,KAAK,OAAO;KAC1B,OAAO,cAAc,CAAC;IACxB;GACF;GAEA,OAAO,EAAE,IAAI,IAAI,MAAM,MAAM;EAC/B;EAIA,SAAS,SAAS,KAAK,KAAK;GAC1B,IAAI,IAAI,SAAS,KAAK;IACpB,IAAI,SAAS;IACb,OAAO;GACT;EACF;EAiBA,SAAS,MAAM,KAAK;GAClB,IAAI,GAAG,GAAG;GASV,SAAS,QAAQ,OAAO;IACtB,IAAI,IAAI;IAGR,IAAI,EAAE,aAAa,UAAU,OAAO,IAAI,QAAQ,KAAK;IAIrD,EAAE,cAAc;IAGhB,IAAI,iBAAiB,SAAS;KAC5B,EAAE,IAAI,MAAM;KACZ,EAAE,IAAI,MAAM;KACZ,EAAE,KAAK,QAAQ,MAAM,KAAK,MAAM,MAAM,IAAI;KAC1C;IACF;IAEA,IAAI,OAAO,UAAU,UAAU;KAG7B,IAAI,QAAQ,MAAM,GAChB,MAAM,MAAM,kBAAkB,KAAK;KAGrC,IAAI,QAAQ,GACV,EAAE,IAAI;UACD,IAAI,QAAQ,GAAG;MACpB,QAAQ,CAAC;MACT,EAAE,IAAI;KACR,OAAO;MACL,EAAE,IAAI;MACN,EAAE,IAAI;MACN,EAAE,IAAI,CAAC,CAAC;MACR;KACF;KAGA,IAAI,UAAU,CAAC,CAAC,SAAS,QAAQ,KAAK;MACpC,EAAE,IAAI;MACN,EAAE,IAAI,CAAC,KAAK;MACZ;KACF;KAEA,OAAO,aAAa,GAAG,MAAM,SAAS,CAAC;IACzC,OAAO,IAAI,OAAO,UAAU,UAC1B,MAAM,MAAM,kBAAkB,KAAK;IAIrC,IAAI,MAAM,WAAW,CAAC,MAAM,IAAI;KAC9B,QAAQ,MAAM,MAAM,CAAC;KACrB,EAAE,IAAI;IACR,OACE,EAAE,IAAI;IAGR,IAAI,UAAU,KAAK,KAAK,GAAG,aAAa,GAAG,KAAK;SAC3C,MAAM,MAAM,kBAAkB,KAAK;GAC1C;GAEA,QAAQ,YAAY;GAEpB,QAAQ,WAAW;GACnB,QAAQ,aAAa;GACrB,QAAQ,aAAa;GACrB,QAAQ,cAAc;GACtB,QAAQ,gBAAgB;GACxB,QAAQ,kBAAkB;GAC1B,QAAQ,kBAAkB;GAC1B,QAAQ,kBAAkB;GAC1B,QAAQ,mBAAmB;GAE3B,QAAQ,QAAQ;GAChB,QAAQ,SAAS,QAAQ,MAAM;GAE/B,IAAI,QAAQ,KAAK,GAAG,MAAM,CAAC;GAC3B,IAAI,KAAK;IACP,KAAK;KAAC;KAAa;KAAY;KAAY;KAAY;IAAM;IAC7D,KAAK,IAAI,GAAG,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,eAAe,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,KAAK;GAClF;GAEA,QAAQ,OAAO,GAAG;GAElB,OAAO;EACT;EAgBA,SAAS,OAAO,KAAK;GACnB,IAAI,CAAC,OAAO,OAAO,QAAQ,UACzB,MAAM,MAAM,eAAe,iBAAiB;GAE9C,IAAI,GAAG,GAAG,GACR,KAAK;IACH;IAAa;IAAG;IAChB;IAAY;IAAG;IACf;IAAY,KAAK;IAAG;IACpB;IAAY;IAAG,IAAI;GACrB;GAEF,KAAK,IAAI,GAAG,IAAI,GAAG,QAAQ,KAAK,GAC9B,KAAK,IAAI,IAAI,IAAI,GAAG,SAAS,KAAK,GAAG;IACnC,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,KAAK;SACjE,MAAM,MAAM,kBAAkB,IAAI,OAAO,CAAC;GACjD;GAGF,KAAK,IAAI,IAAI,IAAI,aAAa,KAAK,GAAG;IAClC,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC;SACnC,MAAM,MAAM,kBAAkB,IAAI,OAAO,CAAC;GACnD;GAEA,OAAO;EACT;EAIA,UAAU,MAAM,OAAO;EAEvB,QAAQ,aAAa,QAAQ,UAAU;EAGvC,MAAM,IAAI,QAAQ,CAAC;EAOnB,IAAI,OAAO,UAAU,cAAc,OAAO,KACxC,OAAO,WAAY;GACjB,OAAO;EACT,CAAC;OAGI,IAAI,OAAO,UAAU,eAAe,OAAO,SAChD,OAAO,UAAU;OAGZ;GACL,IAAI,CAAC,aACH,cAAc,OAAO,QAAQ,eAAe,QAAQ,KAAK,QAAQ,OAC7D,OAAO,SAAS,aAAa,CAAC,CAAC;GAGrC,YAAY,UAAU;EACxB;CACF,EAAA,CAAC,OAAM;;;;;;;;;;;AC78DP,SAAS,cAAc,OAAO;CAC5B,IAAI;CACJ,IAAI,UAAU,GACZ,SAAS;MAET,SAAS,KAAK,MAAM,IAAIM,eAAAA,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI;CAErE,OAAO;AACT;;;;;;;;;;AAWA,SAAS,UAAU,OAAO,KAAK,MAAM;CACnC,IAAI,MAAM,IAAIA,eAAAA,QAAQ,KAAK;CAC3B,IAAI,IAAI;CACR,IAAI,SAAS,CAAC;CAGd,OAAO,IAAI,GAAG,GAAG,KAAK,IAAI,KAAQ;EAChC,OAAO,KAAK,IAAI,SAAS,CAAC;EAC1B,MAAM,IAAI,IAAI,IAAI;EAClB;CACF;CACA,OAAO;AACT;;;;;;;;AC/CA,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;;;;;;;;AAe9D,IAAW,oBAAmB,SAAQ;CACpC,IAAI,QAAQD,kBAAe,MAAM,CAAC,GAChC,MAAM,MAAM,IACZ,MAAM,MAAM;CACd,IAAI,WAAW,KACb,WAAW;CAGb,IAAI,MAAM,KAAK;EACb,WAAW;EACX,WAAW;CACb;CACA,OAAO,CAAC,UAAU,QAAQ;AAC5B;;;;;;;;;AAUA,IAAW,mBAAmB,WAAW,eAAe,qBAAqB;CAC3E,IAAI,UAAU,IAAI,CAAC,GACjB,OAAO,IAAIM,eAAAA,QAAQ,CAAC;CAEtB,IAAI,aAAa,cAAc,UAAU,SAAS,CAAC;CAGnD,IAAI,kBAAkB,IAAIA,eAAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,UAAU;CACpD,IAAI,YAAY,UAAU,IAAI,eAAe;CAE7C,IAAI,iBAAiB,eAAe,IAAI,MAAO;CAE/C,IAAI,aADiB,IAAIA,eAAAA,QAAQ,KAAK,KAAK,UAAU,IAAI,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,cAClF,CAAC,CAAC,IAAI,eAAe;CACnD,OAAO,gBAAgB,IAAIA,eAAAA,QAAQ,WAAW,SAAS,CAAC,IAAI,IAAIA,eAAAA,QAAQ,KAAK,KAAK,WAAW,SAAS,CAAC,CAAC;AAC1G;;;;;;;;;;;;;AAaA,IAAW,kBAAkB,WAAW,eAAe,qBAAqB;CAC1E,IAAI;CACJ,IAAI,UAAU,IAAI,CAAC,GACjB,OAAO,IAAIA,eAAAA,QAAQ,CAAC;CAEtB,IAAI,aAAa;EAAC;EAAG;EAAG;EAAK;CAAC;CAC9B,IAAI,WAAW,UAAU,SAAS;CAClC,IAAI,WAAW,KAAK,MAAM,IAAIA,eAAAA,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;CACxE,IAAI,YAAY,IAAIA,eAAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,QAAQ;CAG5C,IAAI,aAAa,UAAU,IAAI,SAAS,CAAC,CAAC,SAAS;CAGnD,IAAI,UAAU,WAAW,WAAU,MAAK,KAAK,aAAa,KAAK;CAC/D,IAAI,YAAY,IAAI;EAElB,YAAY,UAAU,IAAI,EAAE;EAC5B,UAAU;CACZ;CAGA,WAAW;CACX,IAAI,WAAW,WAAW,QAAQ;EAChC,IAAI,WAAW,KAAK,MAAM,UAAU,WAAW,MAAM;EACrD,WAAW,WAAW;EACtB,YAAY,UAAU,IAAI,IAAIA,eAAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC;CACzD;CACA,IAAI,YAAY,sBAAsB,WAAW,cAAc,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB;CAC9H,IAAI,aAAa,IAAIA,eAAAA,QAAQ,QAAQ,CAAC,CAAC,IAAI,SAAS;CACpD,OAAO,gBAAgB,aAAa,IAAIA,eAAAA,QAAQ,KAAK,KAAK,WAAW,SAAS,CAAC,CAAC;AAClF;;;;;;;;;AAUA,IAAW,wBAAwB,OAAO,WAAW,kBAAkB;CACrE,IAAI,OAAO,IAAIA,eAAAA,QAAQ,CAAC;CAExB,IAAI,SAAS,IAAIA,eAAAA,QAAQ,KAAK;CAC9B,IAAI,CAAC,OAAO,MAAM,KAAK,eAAe;EACpC,IAAI,SAAS,KAAK,IAAI,KAAK;EAC3B,IAAI,SAAS,GAAG;GAEd,OAAO,IAAIA,eAAAA,QAAQ,EAAE,CAAC,CAAC,IAAI,cAAc,KAAK,IAAI,CAAC;GACnD,SAAS,IAAIA,eAAAA,QAAQ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;EACxE,OAAO,IAAI,SAAS,GAElB,SAAS,IAAIA,eAAAA,QAAQ,KAAK,MAAM,KAAK,CAAC;CAE1C,OAAO,IAAI,UAAU,GACnB,SAAS,IAAIA,eAAAA,QAAQ,KAAK,OAAO,YAAY,KAAK,CAAC,CAAC;MAC/C,IAAI,CAAC,eACV,SAAS,IAAIA,eAAAA,QAAQ,KAAK,MAAM,KAAK,CAAC;CAExC,IAAI,cAAc,KAAK,OAAO,YAAY,KAAK,CAAC;CAChD,IAAI,QAAQ,CAAC;CACb,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,KAC7B,MAAM,KAAK,OAAO,IAAI,IAAIA,eAAAA,QAAQ,IAAI,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;CAE1E,OAAO;AACT;;;;;;;;;;;AAYA,IAAI,iBAAiB,SAAS,cAAc,KAAK,KAAK,WAAW,eAAe;CAC9E,IAAI,mBAAmB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CAC3F,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CAEjF,IAAI,CAAC,OAAO,UAAU,MAAM,QAAQ,YAAY,EAAE,GAChD,OAAO;EACL,MAAM,IAAIA,eAAAA,QAAQ,CAAC;EACnB,SAAS,IAAIA,eAAAA,QAAQ,CAAC;EACtB,SAAS,IAAIA,eAAAA,QAAQ,CAAC;CACxB;CAIF,IAAI,OAAO,OAAO,IAAIA,eAAAA,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,eAAe,gBAAgB;CAG/F,IAAI;CAGJ,IAAI,OAAO,KAAK,OAAO,GACrB,SAAS,IAAIA,eAAAA,QAAQ,CAAC;MACjB;EAEL,SAAS,IAAIA,eAAAA,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;EAExC,SAAS,OAAO,IAAI,IAAIA,eAAAA,QAAQ,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;CACnD;CACA,IAAI,aAAa,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC;CAC/D,IAAI,UAAU,KAAK,KAAK,IAAIA,eAAAA,QAAQ,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC;CACzE,IAAI,aAAa,aAAa,UAAU;CACxC,IAAI,aAAa,WAEf,OAAO,eAAe,KAAK,KAAK,WAAW,eAAe,mBAAmB,GAAG,MAAM;CAExF,IAAI,aAAa,WAAW;EAE1B,UAAU,MAAM,IAAI,WAAW,YAAY,cAAc;EACzD,aAAa,MAAM,IAAI,aAAa,cAAc,YAAY;CAChE;CACA,OAAO;EACL;EACA,SAAS,OAAO,IAAI,IAAIA,eAAAA,QAAQ,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC;EACrD,SAAS,OAAO,IAAI,IAAIA,eAAAA,QAAQ,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;CACpD;AACF;AAaA,IAAW,oBAAoB,SAAS,kBAAkB,OAAO;CAC/D,IAAI,QAAQN,kBAAe,OAAO,CAAC,GACjC,MAAM,MAAM,IACZ,MAAM,MAAM;CACd,IAAI,YAAY,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACpF,IAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACxF,IAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CAExF,IAAI,QAAQ,KAAK,IAAI,WAAW,CAAC;CACjC,IACE,qBAAqBA,kBADC,iBAAiB,CAAC,KAAK,GAAG,CACI,GAAG,CAAC,GACxD,SAAS,mBAAmB,IAC5B,SAAS,mBAAmB;CAC9B,IAAI,WAAW,aAAa,WAAW,UAAU;EAC/C,IAAI,UAAU,WAAW,WAAW,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,MAAM;EACvI,OAAO,MAAM,MAAM,QAAQ,QAAQ,IAAI;CACzC;CACA,IAAI,WAAW,QACb,OAAO,qBAAqB,QAAQ,WAAW,aAAa;CAK9D,IAAI,kBAAkB,eAAe,QAAQ,QAAQ,OAAO,eAAe,GAH9D,kBAAkB,YAAY,iBAAiB,eAGwB,GAClF,OAAO,gBAAgB,MACvB,UAAU,gBAAgB,SAC1B,UAAU,gBAAgB;CAC5B,IAAI,SAAS,UAAU,SAAS,QAAQ,IAAI,IAAIM,eAAAA,QAAQ,EAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI;CAC7E,OAAO,MAAM,MAAM,OAAO,QAAQ,IAAI;AACxC;;;;;;;;;;;AAYA,IAAW,2BAA2B,SAAS,yBAAyB,OAAO,WAAW;CACxF,IAAI,QAAQN,kBAAe,OAAO,CAAC,GACjC,MAAM,MAAM,IACZ,MAAM,MAAM;CACd,IAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACxF,IAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CAExF,IACE,qBAAqBA,kBADE,iBAAiB,CAAC,KAAK,GAAG,CACI,GAAG,CAAC,GACzD,SAAS,mBAAmB,IAC5B,SAAS,mBAAmB;CAC9B,IAAI,WAAW,aAAa,WAAW,UACrC,OAAO,CAAC,KAAK,GAAG;CAElB,IAAI,WAAW,QACb,OAAO,CAAC,MAAM;CAEhB,IAAI,SAAS,kBAAkB,YAAY,iBAAiB;CAC5D,IAAI,QAAQ,KAAK,IAAI,WAAW,CAAC;CACjC,IAAI,OAAO,OAAO,IAAIM,eAAAA,QAAQ,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,eAAe,CAAC;CAClF,IAAI,SAAS,CAAC,GAAG,UAAU,IAAIA,eAAAA,QAAQ,MAAM,GAAG,IAAIA,eAAAA,QAAQ,MAAM,GAAG,IAAI,GAAG,MAAM;CAClF,IAAI,kBAAkB,OAAO;EAU3B,SAAS,OAAO,KAAI,UAAS,KAAK,MAAM,KAAK,CAAC;EAC9C,IAAI,OAAO,OAAO,SAAS;EAC3B,IAAI,OAAO,KAAK,OAAO,UAAU,OAAO,OAAO,IAC7C,SAAS,OAAO,MAAM,GAAG,IAAI;CAEjC;CACA,OAAO,MAAM,MAAM,OAAO,QAAQ,IAAI;AACxC;;;AC5RA,IAAW,wBAAuB,UAAS,MAAM,UAAU;AAC3D,IAAW,gBAAe,UAAS,MAAM,UAAU;AACnD,IAAW,wBAAuB,UAAS,MAAM,UAAU;AAC3D,IAAW,qBAAoB,UAAS,MAAM,UAAU;AACxD,IAAW,yBAAwB,UAAS,MAAM,UAAU;AAC5D,IAAW,2BAA0B,UAAS,MAAM,UAAU;AAC9D,IAAW,mBAAkB,UAAS,MAAM,QAAQ;AACpD,IAAW,gBAAe,UAAS,MAAM,UAAU;AACnD,IAAW,oBAAmB,UAAS,MAAM,UAAU;AACvD,IAAW,sBAAqB,UAAS,MAAM,QAAQ;;;;;;;;ACJvD,IAAW,kBAAkB;;;;CAI3B,MAAM;;;;;CAKN,eAAe;;;;CASf,MAAM;;;;;;;CAON,iBAAiB;;;;CAIjB,KAAK;;;;CAIL,MAAM;;;;CAIN,MAAM;;;;;CAKN,SAAS;;;;CAIT,WAAW;;;;;;;;;;;;CAYX,YAAY;;;;CAIZ,WAAW;;;;CAIX,OAAO;AACT;;;ACvEA,IAAW,6BAA6B;CACtC,eAAe;CACf,yBAAyB;CAEzB,mBAAmB;CACnB,OAAO;CACP,aAAa;CACb,UAAU;CACV,cAAc;CACd,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,eAAe;CACf,OAAO;CACP,WAAW;CACX,aAAa;CACb,UAAU;CACV,OAAO;CACP,MAAM;CACN,UAAU;CACV,UAAU;CACV,MAAM;CACN,QAAQ,gBAAgB;AAC1B;;;ACvBA,IAAW,8BAA8B;CACvC,mBAAmB;CACnB,eAAe;CACf,yBAAyB;CACzB,OAAO;CACP,UAAU;CACV,eAAe;CACf,MAAM;CACN,WAAW;CACX,OAAO;CACP,aAAa;CACb,cAAc;CACd,UAAU;CACV,OAAO;CACP,QAAQ;CACR,MAAM;CACN,WAAW;CACX,UAAU;CACV,MAAM;CACN,QAAQ,gBAAgB;AAC1B;;;ACrBA,IAAW,+BAA+B,cAAc,cAAc;CACpE,IAAI,CAAC,gBAAgB,CAAC,WACpB;CAEF,IAAI,iBAAiB,QAAQ,iBAAiB,KAAK,KAAK,aAAa,UACnE,OAAO,CAAC,UAAU,IAAI,UAAU,EAAE;CAEpC,OAAO;AACT;;;;;;;ACFA,SAAgB,yBAAyB,QAAQ,UAAU,gBAAgB;CACzE,IAAI,mBAAmB,QACrB,OAAO;CAET,IAAI,UAAU,MACZ;CAEF,OAAO,kBAAkB,QAAQ,QAAQ,IAAI,aAAa;AAC5D;;;ACdA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAWvT,IAAW,oBAAoB;CAC7B,mBAAmB,2BAA2B;CAC9C,eAAe,2BAA2B;CAC1C,yBAAyB;CAEzB,SAAS,KAAA;CACT,QAAQ,KAAA;CACR,IAAI,2BAA2B;CAC/B,eAAe;CACf,MAAM,KAAA;CACN,UAAU,2BAA2B;CACrC,OAAO,2BAA2B;CAClC,MAAM,2BAA2B;CACjC,WAAW,KAAA;CACX,OAAO,KAAA;CACP,MAAM,2BAA2B;CACjC,MAAM,KAAA;CACN,WAAW;AACb;AACA,IAAW,qBAAqB;CAC9B,mBAAmB,4BAA4B;CAC/C,eAAe,4BAA4B;CAC3C,yBAAyB,4BAA4B;CACrD,SAAS,KAAA;CACT,QAAQ,KAAA;CACR,IAAI,4BAA4B;CAChC,eAAe,4BAA4B;CAC3C,MAAM,KAAA;CACN,UAAU,4BAA4B;CACtC,OAAO,4BAA4B;CACnC,MAAM,4BAA4B;CAClC,WAAW,4BAA4B;CACvC,OAAO,KAAA;CACP,MAAM,4BAA4B;CAClC,MAAM,KAAA;CACN,WAAW;AACb;AACA,IAAI,6BAA6B,OAAO,gBAAgB;CACtD,IAAI,eAAe,MACjB;CAEF,OAAO,MAAM,UAAU,UAAU;AACnC;AACA,IAAW,kBAAkB,eAAe,CAAC,2BAA2B,sBAAsB,IAAI,mBAAmB,WAAW;CAC9H,IAAI;CACJ,IAAI,qBAAqB,MACvB,OAAO;CAET,IAAI,iBAAiB,wBAAwB,yBAAyB,QAAQ,aAAa,kBAAkB,IAAI,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC3L,OAAOH,iBAAcA,iBAAc,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,EAC7D,MAAM,cACR,CAAC;AACH,CAAC;AACD,IAAI,8BAA8B,OAAO,iBAAiB;CACxD,OAAO,MAAM,UAAU,WAAW;AACpC;AACA,IAAW,mBAAmB,eAAe,CAAC,4BAA4B,sBAAsB,IAAI,oBAAoB,WAAW;CACjI,IAAI;CACJ,IAAI,sBAAsB,MACxB,OAAO;CAET,IAAI,iBAAiB,yBAAyB,yBAAyB,QAAQ,cAAc,mBAAmB,IAAI,OAAO,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB;CAChM,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,EAC9D,MAAM,cACR,CAAC;AACH,CAAC;AACD,IAAW,sBAAqB,UAAS,MAAM;AAC/C,IAAW,kBAAkB,eAAe;CAAC;CAAkB;CAAmB;AAAyB,GAAG,YAAY;AAC1H,IAAI,oBAAoB,eAAe,CAAC,oBAAoB,eAAe,IAAI,mBAAmB,cAAc;CAC9G,IAAI,qBAAqB,MACvB;CAEF,OAAO,gBAAgB,kBAAkB,aAAa,WAAW,CAAC;AACpE,CAAC;AACD,IAAW,oBAAoB,eAAe,CAAC,oBAAoB,eAAe,IAAI,mBAAmB,cAAc;CACrH,IAAI,qBAAqB,MACvB;CAEF,OAAO,gBAAgB,kBAAkB,aAAa,WAAW,YAAY,EAAG;AAClF,CAAC;AACD,IAAI,yBAAwB,iBAAgB;CAC1C,IAAI,gBAAgB,MAClB,OAAO,CAAC,GAAG,CAAC;CAId,OAAO,CAFU,aAAa,YACjB,aAAa,QACE;AAC9B;AACA,IAAW,uBAAuB,eAAe,CAAC,kBAAkB,GAAG,qBAAqB;AAC9C,eAAe,CAAC,iBAAiB,oBAAoB,GAAG,2BAA2B;AACjI,IAAW,wBAAwB,eAAe;CAAC;CAAiB;CAAmB;AAAiB,IAAI,WAAW,aAAa,gBAAgB;CAClJ,IAAI,aAAa,QAAQ,eAAe,QAAQ,eAAe,MAC7D;CAEF,OAAO,CAAC,aAAa,WAAW;AAClC,CAAC;AAC8C,eAAe,CAAC,kBAAkB,qBAAqB,GAAG,2BAA2B;AACpI,IAAW,qBAAqB,eAAe;CAAC;CAAmB;CAAoB;CAAmB;CAAmB;CAAkB;AAAiB,IAAI,QAAQ,cAAc,aAAa,aAAa,OAAO,WAAW;CACpO,IAAI,WAAW,aAAa,WAAW,YAAY,gBAAgB,QAAQ,eAAe,QAAQ,eAAe,MAC/G;CAEF,IAAI,KAAK,aAAa,IACpB,KAAK,aAAa,IAClB,aAAa,aAAa,YAC1B,WAAW,aAAa;CAC1B,OAAO;EACL,IAAI,gBAAgB,IAAI,OAAO,QAAQ,CAAC;EACxC,IAAI,gBAAgB,IAAI,QAAQ,SAAS,CAAC;EAC1C;EACA;EACA;EACA;EACA,WAAW;CACb;AACF,CAAC;;;ACjID,IAAW,gBAAgB,QAAQ,aAAa;;;ACAhD,IAAW,cAAc,QAAQ,WAAW,WAAW;;;;;;;;ACKvD,SAAgB,yBAAyB,eAAe;CACtD,OAAO,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc;AACrF;;;;;;;;;;;;;ACOA,SAAgB,4BAA4B,uBAAuB,MAAM,qBAAqB;CAC5F,IAAI,iBAAiB,KAAK,WACxB,YAAY,mBAAmB,KAAK,IAAI,CAAC,IAAI;CAC/C,IAAI,0BAA0B,oBAAoB,yBAChD,iBAAiB,oBAAoB;CAGvC,IAAI,sCAAsB,IAAI,IAAI;CAClC,sBAAsB,SAAQ,SAAQ;EACpC,IAAI;EAEJ,IAAI,gBAAgB,aAAa,KAAK,UAAU,QAAQ,eAAe,KAAK,IAAI,aAAa;EAC7F,IAAI,gBAAgB,QAAQ,aAAa,WAAW,GAElD;EAEF,IAAI,kBAAkB,yBAAyB,IAAI;EACnD,aAAa,SAAS,OAAO,UAAU;GACrC,IAAI,eAAe,kBAAkB,QAAQ,0BAA0B,QAAQ,OAAO,kBAAkB,OAAO,gBAAgB,IAAI,CAAC;GACpI,IAAI,eAAe,kBAAkB,OAAO,KAAK,SAAS,CAAC;GAC3D,IAAI;GACJ,IAAI,oBAAoB,IAAI,YAAY,GACtC,OAAO,oBAAoB,IAAI,YAAY;QAE3C,OAAO,CAAC;GAEV,OAAO,OAAO,MAAM,GACjB,kBAAkB,aACrB,CAAC;GACD,oBAAoB,IAAI,cAAc,IAAI;EAC5C,CAAC;CACH,CAAC;CACD,OAAO,MAAM,KAAK,oBAAoB,OAAO,CAAC;AAChD;;;;;;;;;;;;ACpCA,SAAgB,UAAU,eAAe;CACvC,OAAO,aAAa,iBAAiB,cAAc,WAAW,QAAQ,cAAc,WAAW;AACjG;;;ACbA,IAAW,6BAA6B,GAAG,MAAM;CAC/C,IAAI,MAAM,GACR,OAAO;CAET,IAAI,KAAK,QAAQ,KAAK,MACpB,OAAO;CAET,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC;;;;;;;;;ACFA,SAAgB,yBAAyB,GAAG,GAAG;CAC7C,IAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,EAAE,WAAW,KAAK,EAAE,WAAW,GAEzE,OAAO;CAET,OAAO,MAAM;AACf;;;;;;AAOA,SAAgB,2BAA2B,GAAG,GAAG;CAC/C,IAAI,EAAE,WAAW,EAAE,QAAQ;EACzB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAC5B,IAAI,EAAE,OAAO,EAAE,IACb,OAAO;EAGX,OAAO;CACT;CACA,OAAO;AACT;;;;;;;;;ACnBA,IAAW,yBAAwB,UAAS;CAC1C,IAAI,SAAS,kBAAkB,KAAK;CACpC,IAAI,WAAW,cACb,OAAO;CAET,IAAI,WAAW,YACb,OAAO;CAET,IAAI,WAAW,WACb,OAAO;CAET,OAAO;AACT;;;ACtBA,IAAW,uBAAsB,UAAS,MAAM,QAAQ,SAAS;;;;;;;;;;;;;;;;ACejE,SAAgB,qBAAqB,SAAS;CAC5C,IAAI,WAAW,MACb;CAEF,IAAI,UAAU,QAAQ;CACtB,IAAI,cAAc,QAAQ;CAC1B,IAAI,UAAU,QAAQ,MAAM;CAC5B,IAAI,QAAQ,CAAC,KAAK,IAAI,GAAG,OAAO,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC;CACvD,OAAO;EACL,cAAc,QAAQ,OAAO;EAC7B,OAAO,SAAU,QAAQ;GACvB,SAAS,QAAQ;IACf,OAAO,OAAO,MAAM,MAAM,SAAS;GACrC;GACA,MAAM,WAAW,WAAY;IAC3B,OAAO,OAAO,SAAS;GACzB;GACA,OAAO;EACT,QAAQ,KAAK;EACb,gBAAgB,MAAM;EACtB,gBAAgB,MAAM;EACtB,UAAU,OAAO;GACf,IAAI,QAAQ,MAAM;GAClB,IAAI,OAAO,MAAM;GACjB,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,OAAO,SAAS,QAAQ,SAAS;EACrF;EACA,WAAW,oBAAoB,YAAY,KAAK,OAAO,IAAI,KAAA;EAC3D,OAAO,WAAU,UAAS,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAA;EACzD,MAAM,OAAO,YAAY;GACvB,IAAI,YAAY,QAAQ,KAAK;GAC7B,IAAI,aAAa,MACf;GAEF,IAAI,QAAQ,aAAa,YAAY,QAAQ,YAAY,KAAK,KAAK,QAAQ,UAAU;IACnF,IAAI,YAAY,QAAQ,UAAU;IAClC,QAAQ,QAAQ,UAAhB;KACE,KAAK;MACH,aAAa,YAAY;MACzB;KACF,KAAK,OACH,aAAa;IAKjB;GACF;GACA,OAAO;EACT;CACF;AACF;;;;;;AC3DA,IAAW,wBAAwB,eAAe,eAAe;CAC/D,IAAI,cAAc,MAChB;CAEF,QAAQ,eAAR;EACE,KAAK;GAOD,IAAI,CAAC,yBAAyB,UAAU,GAAG;IACzC,IAAI,KAAK;IACT,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;KAC1C,IAAI,QAAQ,WAAW;KACvB,IAAI,CAAC,oBAAoB,KAAK,GAC5B;KAEF,IAAI,QAAQ,KAAA,KAAa,QAAQ,KAC/B,MAAM;KAER,IAAI,QAAQ,KAAA,KAAa,QAAQ,KAC/B,MAAM;IAEV;IACA,IAAI,QAAQ,KAAA,KAAa,QAAQ,KAAA,GAC/B,OAAO,CAAC,KAAK,GAAG;IAElB;GACF;GACA,OAAO;EAEX,SACE,OAAO;CACX;AACF;;;AC1CA,SAAwB,UAAU,GAAG,GAAG;CACtC,OAAO,KAAK,QAAQ,KAAK,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AAC9E;;;ACFA,SAAwB,WAAW,GAAG,GAAG;CACvC,OAAO,KAAK,QAAQ,KAAK,OAAO,MAC5B,IAAI,IAAI,KACR,IAAI,IAAI,IACR,KAAK,IAAI,IACT;AACN;;;ACHA,SAAwB,SAAS,GAAG;CAClC,IAAI,UAAU,UAAU;CAOxB,IAAI,EAAE,WAAW,GAAG;EAClB,WAAW;EACX,YAAY,GAAG,MAAM,UAAU,EAAE,CAAC,GAAG,CAAC;EACtC,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI;CAC3B,OAAO;EACL,WAAW,MAAM,aAAa,MAAM,aAAa,IAAII;EACrD,WAAW;EACX,QAAQ;CACV;CAEA,SAAS,KAAK,GAAG,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ;EACzC,IAAI,KAAK,IAAI;GACX,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,OAAO;GACjC,GAAG;IACD,MAAM,MAAO,KAAK,OAAQ;IAC1B,IAAI,SAAS,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,MAAM;SACnC,KAAK;GACZ,SAAS,KAAK;EAChB;EACA,OAAO;CACT;CAEA,SAAS,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ;EAC1C,IAAI,KAAK,IAAI;GACX,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,OAAO;GACjC,GAAG;IACD,MAAM,MAAO,KAAK,OAAQ;IAC1B,IAAI,SAAS,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,MAAM;SACpC,KAAK;GACZ,SAAS,KAAK;EAChB;EACA,OAAO;CACT;CAEA,SAAS,OAAO,GAAG,GAAG,KAAK,GAAG,KAAK,EAAE,QAAQ;EAC3C,MAAM,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;EAC/B,OAAO,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;CAClE;CAEA,OAAO;EAAC;EAAM;EAAQ;CAAK;AAC7B;AAEA,SAASA,SAAO;CACd,OAAO;AACT;;;ACvDA,SAAwBC,SAAO,GAAG;CAChC,OAAO,MAAM,OAAO,MAAM,CAAC;AAC7B;AAEA,UAAiB,QAAQ,QAAQ,SAAS;CACxC,IAAI,YAAY,KAAA,GACT;OAAA,IAAI,SAAS,QAChB,IAAI,SAAS,SAAS,QAAQ,CAAC,UAAU,OACvC,MAAM;CAAA,OAGL;EACL,IAAI,QAAQ;EACZ,KAAK,IAAI,SAAS,QAChB,KAAK,QAAQ,QAAQ,OAAO,EAAE,OAAO,MAAM,MAAM,SAAS,QAAQ,CAAC,UAAU,OAC3E,MAAM;CAGZ;AACF;;;ACfA,MAAM,kBAAkB,SAAS,SAAS;AAC1C,MAAa,cAAc,gBAAgB;AACjB,gBAAgB;AACd,SAASC,QAAM,CAAC,CAAC;;;ACP7C,IAAa,YAAb,cAA+B,IAAI;CACjC,YAAY,SAAS,MAAM,OAAO;EAChC,MAAM;EACN,OAAO,iBAAiB,MAAM;GAAC,SAAS,EAAC,uBAAO,IAAI,IAAI,EAAC;GAAG,MAAM,EAAC,OAAO,IAAG;EAAC,CAAC;EAC/E,IAAI,WAAW,MAAM,KAAK,MAAM,CAAC,KAAK,UAAU,SAAS,KAAK,IAAI,KAAK,KAAK;CAC9E;CACA,IAAI,KAAK;EACP,OAAO,MAAM,IAAI,WAAW,MAAM,GAAG,CAAC;CACxC;CACA,IAAI,KAAK;EACP,OAAO,MAAM,IAAI,WAAW,MAAM,GAAG,CAAC;CACxC;CACA,IAAI,KAAK,OAAO;EACd,OAAO,MAAM,IAAI,WAAW,MAAM,GAAG,GAAG,KAAK;CAC/C;CACA,OAAO,KAAK;EACV,OAAO,MAAM,OAAO,cAAc,MAAM,GAAG,CAAC;CAC9C;AACF;AAmBA,SAAS,WAAW,EAAC,SAAS,QAAO,OAAO;CAC1C,MAAM,MAAM,KAAK,KAAK;CACtB,OAAO,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI;AAC/C;AAEA,SAAS,WAAW,EAAC,SAAS,QAAO,OAAO;CAC1C,MAAM,MAAM,KAAK,KAAK;CACtB,IAAI,QAAQ,IAAI,GAAG,GAAG,OAAO,QAAQ,IAAI,GAAG;CAC5C,QAAQ,IAAI,KAAK,KAAK;CACtB,OAAO;AACT;AAEA,SAAS,cAAc,EAAC,SAAS,QAAO,OAAO;CAC7C,MAAM,MAAM,KAAK,KAAK;CACtB,IAAI,QAAQ,IAAI,GAAG,GAAG;EACpB,QAAQ,QAAQ,IAAI,GAAG;EACvB,QAAQ,OAAO,GAAG;CACpB;CACA,OAAO;AACT;AAEA,SAAS,MAAM,OAAO;CACpB,OAAO,UAAU,QAAQ,OAAO,UAAU,WAAW,MAAM,QAAQ,IAAI;AACzE;;;AClCA,SAAgB,eAAe,UAAU,WAAW;CAClD,IAAI,YAAY,WAAW,OAAO;CAClC,IAAI,OAAO,YAAY,YAAY,MAAM,IAAI,UAAU,2BAA2B;CAClF,QAAQ,GAAG,MAAM;EACf,MAAM,IAAI,QAAQ,GAAG,CAAC;EACtB,IAAI,KAAK,MAAM,GAAG,OAAO;EACzB,QAAQ,QAAQ,GAAG,CAAC,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM;CACpD;AACF;AAEA,SAAgB,iBAAiB,GAAG,GAAG;CACrC,QAAQ,KAAK,QAAQ,EAAE,KAAK,OAAO,KAAK,QAAQ,EAAE,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AAC1F;;;ACtCA,MAAM,MAAM,KAAK,KAAK,EAAE;AACpB,MAAA,KAAK,KAAK,KAAK,EAAE;AACjB,MAAA,KAAK,KAAK,KAAK,CAAC;AAEpB,SAAS,SAAS,OAAO,MAAM,OAAO;CACpC,MAAM,QAAQ,OAAO,SAAS,KAAK,IAAI,GAAG,KAAK,GAC3C,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,CAAC,GACnC,QAAQ,OAAO,KAAK,IAAI,IAAI,KAAK,GACjC,SAAS,SAAS,MAAM,KAAK,SAAS,KAAK,IAAI,SAAS,KAAK,IAAI;CACrE,IAAI,IAAI,IAAI;CACZ,IAAI,QAAQ,GAAG;EACb,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;EAC7B,KAAK,KAAK,MAAM,QAAQ,GAAG;EAC3B,KAAK,KAAK,MAAM,OAAO,GAAG;EAC1B,IAAI,KAAK,MAAM,OAAO,EAAE;EACxB,IAAI,KAAK,MAAM,MAAM,EAAE;EACvB,MAAM,CAAC;CACT,OAAO;EACL,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI;EAC5B,KAAK,KAAK,MAAM,QAAQ,GAAG;EAC3B,KAAK,KAAK,MAAM,OAAO,GAAG;EAC1B,IAAI,KAAK,MAAM,OAAO,EAAE;EACxB,IAAI,KAAK,MAAM,MAAM,EAAE;CACzB;CACA,IAAI,KAAK,MAAM,MAAO,SAAS,QAAQ,GAAG,OAAO,SAAS,OAAO,MAAM,QAAQ,CAAC;CAChF,OAAO;EAAC;EAAI;EAAI;CAAG;AACrB;AAEA,SAAwB,MAAM,OAAO,MAAM,OAAO;CAChD,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,QAAQ,CAAC;CACvC,IAAI,EAAE,QAAQ,IAAI,OAAO,CAAC;CAC1B,IAAI,UAAU,MAAM,OAAO,CAAC,KAAK;CACjC,MAAM,UAAU,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,UAAU,SAAS,MAAM,OAAO,KAAK,IAAI,SAAS,OAAO,MAAM,KAAK;CAClH,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACzB,MAAM,IAAI,KAAK,KAAK,GAAG,QAAQ,IAAI,MAAM,CAAC;CAC1C,IAAI,SAAS;EACX,IAAI,MAAM,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK,CAAC;OAC3D,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK;CACzD,OACE,IAAI,MAAM,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK,CAAC;MAC3D,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK;CAEzD,OAAO;AACT;AAEA,SAAgB,cAAc,OAAO,MAAM,OAAO;CAChD,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,QAAQ,CAAC;CACvC,OAAO,SAAS,OAAO,MAAM,KAAK,CAAC,CAAC;AACtC;AAEA,SAAgB,SAAS,OAAO,MAAM,OAAO;CAC3C,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,QAAQ,CAAC;CACvC,MAAM,UAAU,OAAO,OAAO,MAAM,UAAU,cAAc,MAAM,OAAO,KAAK,IAAI,cAAc,OAAO,MAAM,KAAK;CAClH,QAAQ,UAAU,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM;AACpD;;;ACtDA,SAAwB,IAAI,QAAQ,SAAS;CAC3C,IAAI;CACJ,IAAI,YAAY,KAAA,GACT;OAAA,MAAM,SAAS,QAClB,IAAI,SAAS,SACL,MAAM,SAAU,QAAQ,KAAA,KAAa,SAAS,QACpD,MAAM;CAAA,OAGL;EACL,IAAI,QAAQ;EACZ,KAAK,IAAI,SAAS,QAChB,KAAK,QAAQ,QAAQ,OAAO,EAAE,OAAO,MAAM,MAAM,SACzC,MAAM,SAAU,QAAQ,KAAA,KAAa,SAAS,QACpD,MAAM;CAGZ;CACA,OAAO;AACT;;;ACnBA,SAAwB,IAAI,QAAQ,SAAS;CAC3C,IAAI;CACJ,IAAI,YAAY,KAAA,GACT;OAAA,MAAM,SAAS,QAClB,IAAI,SAAS,SACL,MAAM,SAAU,QAAQ,KAAA,KAAa,SAAS,QACpD,MAAM;CAAA,OAGL;EACL,IAAI,QAAQ;EACZ,KAAK,IAAI,SAAS,QAChB,KAAK,QAAQ,QAAQ,OAAO,EAAE,OAAO,MAAM,MAAM,SACzC,MAAM,SAAU,QAAQ,KAAA,KAAa,SAAS,QACpD,MAAM;CAGZ;CACA,OAAO;AACT;;;ACfA,SAAwB,YAAY,OAAO,GAAG,OAAO,GAAG,QAAQ,UAAU,SAAS;CACjF,IAAI,KAAK,MAAM,CAAC;CAChB,OAAO,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACnC,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC;CAEpD,IAAI,EAAE,QAAQ,KAAK,KAAK,QAAQ,OAAO;CAEvC,UAAU,YAAY,KAAA,IAAY,mBAAmB,eAAe,OAAO;CAE3E,OAAO,QAAQ,MAAM;EACnB,IAAI,QAAQ,OAAO,KAAK;GACtB,MAAM,IAAI,QAAQ,OAAO;GACzB,MAAM,IAAI,IAAI,OAAO;GACrB,MAAM,IAAI,KAAK,IAAI,CAAC;GACpB,MAAM,IAAI,KAAM,KAAK,IAAI,IAAI,IAAI,CAAC;GAClC,MAAM,KAAK,KAAM,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK;GACxE,MAAM,UAAU,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;GAC7D,MAAM,WAAW,KAAK,IAAI,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;GACrE,YAAY,OAAO,GAAG,SAAS,UAAU,OAAO;EAClD;EAEA,MAAM,IAAI,MAAM;EAChB,IAAI,IAAI;EACR,IAAI,IAAI;EAER,KAAK,OAAO,MAAM,CAAC;EACnB,IAAI,QAAQ,MAAM,QAAQ,CAAC,IAAI,GAAG,KAAK,OAAO,MAAM,KAAK;EAEzD,OAAO,IAAI,GAAG;GACZ,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;GAC1B,OAAO,QAAQ,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;GACnC,OAAO,QAAQ,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;EACrC;EAEA,IAAI,QAAQ,MAAM,OAAO,CAAC,MAAM,GAAG,KAAK,OAAO,MAAM,CAAC;OACjD,EAAE,GAAG,KAAK,OAAO,GAAG,KAAK;EAE9B,IAAI,KAAK,GAAG,OAAO,IAAI;EACvB,IAAI,KAAK,GAAG,QAAQ,IAAI;CAC1B;CAEA,OAAO;AACT;AAEA,SAAS,KAAK,OAAO,GAAG,GAAG;CACzB,MAAM,IAAI,MAAM;CAChB,MAAM,KAAK,MAAM;CACjB,MAAM,KAAK;AACb;;;AC3CA,SAAwBC,WAAS,QAAQ,GAAG,SAAS;CACnD,SAAS,aAAa,KAAK,QAAQ,QAAQ,OAAO,CAAC;CACnD,IAAI,EAAE,IAAI,OAAO,WAAW,MAAM,IAAI,CAAC,CAAC,GAAG;CAC3C,IAAI,KAAK,KAAK,IAAI,GAAG,OAAO,IAAI,MAAM;CACtC,IAAI,KAAK,GAAG,OAAO,IAAI,MAAM;CAC7B,IAAI,GACA,KAAK,IAAI,KAAK,GACd,KAAK,KAAK,MAAM,CAAC,GACjB,SAAS,IAAI,YAAY,QAAQ,EAAE,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;CAE5D,OAAO,UADM,IAAI,OAAO,SAAS,KAAK,CAAC,CACjB,IAAI,WAAW,IAAI;AAC3C;AAEA,SAAgB,eAAe,QAAQ,GAAG,UAAUC,UAAQ;CAC1D,IAAI,EAAE,IAAI,OAAO,WAAW,MAAM,IAAI,CAAC,CAAC,GAAG;CAC3C,IAAI,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,QAAQ,OAAO,IAAI,GAAG,MAAM;CACzD,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,OAAO,IAAI,IAAI,IAAI,GAAG,MAAM;CACxD,IAAI,GACA,KAAK,IAAI,KAAK,GACd,KAAK,KAAK,MAAM,CAAC,GACjB,SAAS,CAAC,QAAQ,OAAO,KAAK,IAAI,MAAM;CAE5C,OAAO,UAAU,CADH,QAAQ,OAAO,KAAK,IAAI,KAAK,GAAG,MAAM,IAC1B,WAAW,IAAI;AAC3C;;;AChCA,SAAwB,MAAM,OAAO,MAAM,MAAM;CAC/C,QAAQ,CAAC,OAAO,OAAO,CAAC,MAAM,QAAQ,IAAI,UAAU,UAAU,KAAK,OAAO,OAAO,QAAQ,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC;CAE9G,IAAI,IAAI,IACJ,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO,SAAS,IAAI,CAAC,IAAI,GACpD,QAAQ,IAAI,MAAM,CAAC;CAEvB,OAAO,EAAE,IAAI,GACX,MAAM,KAAK,QAAQ,IAAI;CAGzB,OAAO;AACT;;;ACZA,SAAgB,UAAU,QAAQ,OAAO;CACvC,QAAQ,UAAU,QAAlB;EACE,KAAK,GAAG;EACR,KAAK;GAAG,KAAK,MAAM,MAAM;GAAG;EAC5B,SAAS,KAAK,MAAM,KAAK,CAAC,CAAC,OAAO,MAAM;CAC1C;CACA,OAAO;AACT;AAEA,SAAgB,iBAAiB,QAAQ,cAAc;CACrD,QAAQ,UAAU,QAAlB;EACE,KAAK,GAAG;EACR,KAAK;GACH,IAAI,OAAO,WAAW,YAAY,KAAK,aAAa,MAAM;QACrD,KAAK,MAAM,MAAM;GACtB;EAEF;GACE,KAAK,OAAO,MAAM;GAClB,IAAI,OAAO,iBAAiB,YAAY,KAAK,aAAa,YAAY;QACjE,KAAK,MAAM,YAAY;CAGhC;CACA,OAAO;AACT;;;ACtBA,MAAa,WAAW,OAAO,UAAU;AAEzC,SAAwB,UAAU;CAChC,IAAI,QAAQ,IAAI,UAAU,GACtB,SAAS,CAAC,GACV,QAAQ,CAAC,GACT,UAAU;CAEd,SAAS,MAAM,GAAG;EAChB,IAAI,IAAI,MAAM,IAAI,CAAC;EACnB,IAAI,MAAM,KAAA,GAAW;GACnB,IAAI,YAAY,UAAU,OAAO;GACjC,MAAM,IAAI,GAAG,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC;EACrC;EACA,OAAO,MAAM,IAAI,MAAM;CACzB;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,IAAI,CAAC,UAAU,QAAQ,OAAO,OAAO,MAAM;EAC3C,SAAS,CAAC,GAAG,QAAQ,IAAI,UAAU;EACnC,KAAK,MAAM,SAAS,GAAG;GACrB,IAAI,MAAM,IAAI,KAAK,GAAG;GACtB,MAAM,IAAI,OAAO,OAAO,KAAK,KAAK,IAAI,CAAC;EACzC;EACA,OAAO;CACT;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,MAAM,KAAK,CAAC,GAAG,SAAS,MAAM,MAAM;CACzE;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,QAAQ,QAAQ,KAAK,CAAC,CAAC,QAAQ,OAAO;CAC/C;CAEA,UAAU,MAAM,OAAO,SAAS;CAEhC,OAAO;AACT;;;ACzCA,SAAwB,OAAO;CAC7B,IAAI,QAAQ,QAAQ,CAAC,CAAC,QAAQ,KAAA,CAAS,GACnC,SAAS,MAAM,QACf,eAAe,MAAM,OACrB,KAAK,GACL,KAAK,GACL,MACA,WACA,QAAQ,OACR,eAAe,GACf,eAAe,GACf,QAAQ;CAEZ,OAAO,MAAM;CAEb,SAAS,UAAU;EACjB,IAAI,IAAI,OAAO,CAAC,CAAC,QACb,UAAU,KAAK,IACf,QAAQ,UAAU,KAAK,IACvB,OAAO,UAAU,KAAK;EAC1B,QAAQ,OAAO,SAAS,KAAK,IAAI,GAAG,IAAI,eAAe,eAAe,CAAC;EACvE,IAAI,OAAO,OAAO,KAAK,MAAM,IAAI;EACjC,UAAU,OAAO,QAAQ,QAAQ,IAAI,iBAAiB;EACtD,YAAY,QAAQ,IAAI;EACxB,IAAI,OAAO,QAAQ,KAAK,MAAM,KAAK,GAAG,YAAY,KAAK,MAAM,SAAS;EACtE,IAAI,SAASC,MAAS,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG;GAAE,OAAO,QAAQ,OAAO;EAAG,CAAC;EACrE,OAAO,aAAa,UAAU,OAAO,QAAQ,IAAI,MAAM;CACzD;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,OAAO,CAAC,GAAG,QAAQ,KAAK,OAAO;CAC5D;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,EAAE;CACnF;CAEA,MAAM,aAAa,SAAS,GAAG;EAC7B,OAAO,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,MAAM,QAAQ;CACjE;CAEA,MAAM,YAAY,WAAW;EAC3B,OAAO;CACT;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO;CACT;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,CAAC,CAAC,GAAG,QAAQ,KAAK;CACvD;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,eAAe,KAAK,IAAI,GAAG,eAAe,CAAC,CAAC,GAAG,QAAQ,KAAK;CACzF;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,eAAe,KAAK,IAAI,GAAG,CAAC,GAAG,QAAQ,KAAK;CACzE;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,eAAe,CAAC,GAAG,QAAQ,KAAK;CAC7D;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,KAAK;CAC/E;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAC1B,MAAM,KAAK,CAAC,CACZ,aAAa,YAAY,CAAC,CAC1B,aAAa,YAAY,CAAC,CAC1B,MAAM,KAAK;CAClB;CAEA,OAAO,UAAU,MAAM,QAAQ,GAAG,SAAS;AAC7C;AAEA,SAAS,SAAS,OAAO;CACvB,IAAI,OAAO,MAAM;CAEjB,MAAM,UAAU,MAAM;CACtB,OAAO,MAAM;CACb,OAAO,MAAM;CAEb,MAAM,OAAO,WAAW;EACtB,OAAO,SAAS,KAAK,CAAC;CACxB;CAEA,OAAO;AACT;AAEA,SAAgB,QAAQ;CACtB,OAAO,SAAS,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAC7D;;;ACpGA,SAAA,eAAwB,aAAa,SAAS,WAAW;CACvD,YAAY,YAAY,QAAQ,YAAY;CAC5C,UAAU,cAAc;AAC1B;AAEA,SAAgB,OAAO,QAAQ,YAAY;CACzC,IAAI,YAAY,OAAO,OAAO,OAAO,SAAS;CAC9C,KAAK,IAAI,OAAO,YAAY,UAAU,OAAO,WAAW;CACxD,OAAO;AACT;;;ACPA,SAAgB,QAAQ,CAAC;AAEzB,IAAW,SAAS;AACpB,IAAW,WAAW,IAAI;AAE1B,IAAI,MAAM;AACN,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,eAAe,IAAI,OAAO,UAAU,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AAC3D,IAAA,eAAe,IAAI,OAAO,UAAU,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AAC3D,IAAA,gBAAgB,IAAI,OAAO,WAAW,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AACpE,IAAA,gBAAgB,IAAI,OAAO,WAAW,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AACpE,IAAA,eAAe,IAAI,OAAO,UAAU,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AAC3D,IAAA,gBAAgB,IAAI,OAAO,WAAW,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;AAExE,IAAI,QAAQ;CACV,WAAW;CACX,cAAc;CACd,MAAM;CACN,YAAY;CACZ,OAAO;CACP,OAAO;CACP,QAAQ;CACR,OAAO;CACP,gBAAgB;CAChB,MAAM;CACN,YAAY;CACZ,OAAO;CACP,WAAW;CACX,WAAW;CACX,YAAY;CACZ,WAAW;CACX,OAAO;CACP,gBAAgB;CAChB,UAAU;CACV,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,eAAe;CACf,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACX,aAAa;CACb,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,YAAY;CACZ,cAAc;CACd,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,aAAa;CACb,SAAS;CACT,SAAS;CACT,YAAY;CACZ,WAAW;CACX,aAAa;CACb,aAAa;CACb,SAAS;CACT,WAAW;CACX,YAAY;CACZ,MAAM;CACN,WAAW;CACX,MAAM;CACN,OAAO;CACP,aAAa;CACb,MAAM;CACN,UAAU;CACV,SAAS;CACT,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,UAAU;CACV,eAAe;CACf,WAAW;CACX,cAAc;CACd,WAAW;CACX,YAAY;CACZ,WAAW;CACX,sBAAsB;CACtB,WAAW;CACX,YAAY;CACZ,WAAW;CACX,WAAW;CACX,aAAa;CACb,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,aAAa;CACb,MAAM;CACN,WAAW;CACX,OAAO;CACP,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,YAAY;CACZ,cAAc;CACd,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB,cAAc;CACd,WAAW;CACX,WAAW;CACX,UAAU;CACV,aAAa;CACb,MAAM;CACN,SAAS;CACT,OAAO;CACP,WAAW;CACX,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,eAAe;CACf,WAAW;CACX,eAAe;CACf,eAAe;CACf,YAAY;CACZ,WAAW;CACX,MAAM;CACN,MAAM;CACN,MAAM;CACN,YAAY;CACZ,QAAQ;CACR,eAAe;CACf,KAAK;CACL,WAAW;CACX,WAAW;CACX,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,UAAU;CACV,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,WAAW;CACX,WAAW;CACX,MAAM;CACN,aAAa;CACb,WAAW;CACX,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,YAAY;CACZ,QAAQ;CACR,aAAa;AACf;AAEAC,eAAO,OAAO,OAAO;CACnB,KAAK,UAAU;EACb,OAAO,OAAO,OAAO,IAAI,KAAK,YAAU,GAAG,MAAM,QAAQ;CAC3D;CACA,cAAc;EACZ,OAAO,KAAK,IAAI,CAAC,CAAC,YAAY;CAChC;CACA,KAAK;CACL,WAAW;CACX,YAAY;CACZ,WAAW;CACX,WAAW;CACX,UAAU;AACZ,CAAC;AAED,SAAS,kBAAkB;CACzB,OAAO,KAAK,IAAI,CAAC,CAAC,UAAU;AAC9B;AAEA,SAAS,mBAAmB;CAC1B,OAAO,KAAK,IAAI,CAAC,CAAC,WAAW;AAC/B;AAEA,SAAS,kBAAkB;CACzB,OAAO,WAAW,IAAI,CAAC,CAAC,UAAU;AACpC;AAEA,SAAS,kBAAkB;CACzB,OAAO,KAAK,IAAI,CAAC,CAAC,UAAU;AAC9B;AAEA,SAAwB,MAAM,QAAQ;CACpC,IAAI,GAAG;CACP,UAAU,SAAS,GAAA,CAAI,KAAK,CAAC,CAAC,YAAY;CAC1C,QAAQ,IAAI,MAAM,KAAK,MAAM,MAAM,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,IACtF,MAAM,IAAI,IAAI,IAAK,KAAK,IAAI,KAAQ,KAAK,IAAI,KAAQ,KAAK,IAAI,KAAQ,IAAI,MAAS,IAAI,OAAQ,IAAM,IAAI,IAAM,CAAC,IAChH,MAAM,IAAI,KAAK,KAAK,KAAK,KAAM,KAAK,KAAK,KAAM,KAAK,IAAI,MAAO,IAAI,OAAQ,GAAI,IAC/E,MAAM,IAAI,KAAM,KAAK,KAAK,KAAQ,KAAK,IAAI,KAAQ,KAAK,IAAI,KAAQ,KAAK,IAAI,KAAQ,KAAK,IAAI,KAAQ,IAAI,OAAU,IAAI,OAAQ,IAAM,IAAI,MAAQ,GAAI,IACtJ,SACC,IAAI,aAAa,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAC5D,IAAI,aAAa,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,MAAM,KAAK,CAAC,KAChG,IAAI,cAAc,KAAK,MAAM,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAC7D,IAAI,cAAc,KAAK,MAAM,KAAK,KAAK,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,MAAM,KAAK,EAAE,EAAE,KACjG,IAAI,aAAa,KAAK,MAAM,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,KACrE,IAAI,cAAc,KAAK,MAAM,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,EAAE,IAC1E,MAAM,eAAe,MAAM,IAAI,KAAK,MAAM,OAAO,IACjD,WAAW,gBAAgB,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,IACnD;AACR;AAEA,SAAS,KAAK,GAAG;CACf,OAAO,IAAI,IAAI,KAAK,KAAK,KAAM,KAAK,IAAI,KAAM,IAAI,KAAM,CAAC;AAC3D;AAEA,SAAS,KAAK,GAAG,GAAG,GAAG,GAAG;CACxB,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI;CACxB,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAC3B;AAEA,SAAgB,WAAW,GAAG;CAC5B,IAAI,EAAE,aAAa,QAAQ,IAAI,MAAM,CAAC;CACtC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAE;CACrB,IAAI,EAAE,IAAI;CACV,OAAO,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;AACzC;AAEA,SAAgB,IAAI,GAAG,GAAG,GAAG,SAAS;CACpC,OAAO,UAAU,WAAW,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,WAAW,OAAO,IAAI,OAAO;AAChG;AAEA,SAAgB,IAAI,GAAG,GAAG,GAAG,SAAS;CACpC,KAAK,IAAI,CAAC;CACV,KAAK,IAAI,CAAC;CACV,KAAK,IAAI,CAAC;CACV,KAAK,UAAU,CAAC;AAClB;AAEAA,eAAO,KAAK,KAAK,OAAO,OAAO;CAC7B,SAAS,GAAG;EACV,IAAI,KAAK,OAAO,WAAW,KAAK,IAAI,UAAU,CAAC;EAC/C,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;CACjE;CACA,OAAO,GAAG;EACR,IAAI,KAAK,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC;EAC3C,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;CACjE;CACA,MAAM;EACJ,OAAO;CACT;CACA,QAAQ;EACN,OAAO,IAAI,IAAI,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC;CACrF;CACA,cAAc;EACZ,OAAQ,OAAQ,KAAK,KAAK,KAAK,IAAI,SAC3B,OAAQ,KAAK,KAAK,KAAK,IAAI,SAC3B,OAAQ,KAAK,KAAK,KAAK,IAAI,SAC3B,KAAK,KAAK,WAAW,KAAK,WAAW;CAC/C;CACA,KAAK;CACL,WAAW;CACX,YAAY;CACZ,WAAW;CACX,UAAU;AACZ,CAAC,CAAC;AAEF,SAAS,gBAAgB;CACvB,OAAO,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;AACnD;AAEA,SAAS,iBAAiB;CACxB,OAAO,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,GAAG;AACzG;AAEA,SAAS,gBAAgB;CACvB,MAAM,IAAI,OAAO,KAAK,OAAO;CAC7B,OAAO,GAAG,MAAM,IAAI,SAAS,UAAU,OAAO,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM,KAAK,EAAE;AACvH;AAEA,SAAS,OAAO,SAAS;CACvB,OAAO,MAAM,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC;AAC9D;AAEA,SAAS,OAAO,OAAO;CACrB,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC;AAC1D;AAEA,SAAS,IAAI,OAAO;CAClB,QAAQ,OAAO,KAAK;CACpB,QAAQ,QAAQ,KAAK,MAAM,MAAM,MAAM,SAAS,EAAE;AACpD;AAEA,SAAS,KAAK,GAAG,GAAG,GAAG,GAAG;CACxB,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI;MACnB,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI;MAC9B,IAAI,KAAK,GAAG,IAAI;CACrB,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAC3B;AAEA,SAAgB,WAAW,GAAG;CAC5B,IAAI,aAAa,KAAK,OAAO,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;CAC7D,IAAI,EAAE,aAAa,QAAQ,IAAI,MAAM,CAAC;CACtC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAE;CACrB,IAAI,aAAa,KAAK,OAAO;CAC7B,IAAI,EAAE,IAAI;CACV,IAAI,IAAI,EAAE,IAAI,KACV,IAAI,EAAE,IAAI,KACV,IAAI,EAAE,IAAI,KACV,MAAM,KAAK,IAAI,GAAG,GAAG,CAAC,GACtB,MAAM,KAAK,IAAI,GAAG,GAAG,CAAC,GACtB,IAAI,KACJ,IAAI,MAAM,KACV,KAAK,MAAM,OAAO;CACtB,IAAI,GAAG;EACL,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK;OACtC,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,IAAI;OACjC,KAAK,IAAI,KAAK,IAAI;EACvB,KAAK,IAAI,KAAM,MAAM,MAAM,IAAI,MAAM;EACrC,KAAK;CACP,OACE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;CAE3B,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,OAAO;AACnC;AAEA,SAAgB,IAAI,GAAG,GAAG,GAAG,SAAS;CACpC,OAAO,UAAU,WAAW,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,WAAW,OAAO,IAAI,OAAO;AAChG;AAEA,SAAS,IAAI,GAAG,GAAG,GAAG,SAAS;CAC7B,KAAK,IAAI,CAAC;CACV,KAAK,IAAI,CAAC;CACV,KAAK,IAAI,CAAC;CACV,KAAK,UAAU,CAAC;AAClB;AAEAA,eAAO,KAAK,KAAK,OAAO,OAAO;CAC7B,SAAS,GAAG;EACV,IAAI,KAAK,OAAO,WAAW,KAAK,IAAI,UAAU,CAAC;EAC/C,OAAO,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;CACzD;CACA,OAAO,GAAG;EACR,IAAI,KAAK,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC;EAC3C,OAAO,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO;CACzD;CACA,MAAM;EACJ,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,IAAI,KAAK,KAClC,IAAI,MAAM,CAAC,KAAK,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,GACzC,IAAI,KAAK,GACT,KAAK,KAAK,IAAI,KAAM,IAAI,IAAI,KAAK,GACjC,KAAK,IAAI,IAAI;EACjB,OAAO,IAAI,IACT,QAAQ,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,EAAE,GAC5C,QAAQ,GAAG,IAAI,EAAE,GACjB,QAAQ,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,EAAE,GAC3C,KAAK,OACP;CACF;CACA,QAAQ;EACN,OAAO,IAAI,IAAI,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC;CACrF;CACA,cAAc;EACZ,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,CAAC,MAC1C,KAAK,KAAK,KAAK,KAAK,KAAK,KACzB,KAAK,KAAK,WAAW,KAAK,WAAW;CAC/C;CACA,YAAY;EACV,MAAM,IAAI,OAAO,KAAK,OAAO;EAC7B,OAAO,GAAG,MAAM,IAAI,SAAS,UAAU,OAAO,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,KAAK,EAAE;CACrI;AACF,CAAC,CAAC;AAEF,SAAS,OAAO,OAAO;CACrB,SAAS,SAAS,KAAK;CACvB,OAAO,QAAQ,IAAI,QAAQ,MAAM;AACnC;AAEA,SAAS,OAAO,OAAO;CACrB,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC,CAAC;AAC5C;AAGA,SAAS,QAAQ,GAAG,IAAI,IAAI;CAC1B,QAAQ,IAAI,KAAK,MAAM,KAAK,MAAM,IAAI,KAChC,IAAI,MAAM,KACV,IAAI,MAAM,MAAM,KAAK,OAAO,MAAM,KAAK,KACvC,MAAM;AACd;;;AG3YA,IAAA,oBAAe,YAAW;;;ACE1B,SAASC,SAAO,GAAG,GAAG;CACpB,OAAO,SAAS,GAAG;EACjB,OAAO,IAAI,IAAI;CACjB;AACF;AAEA,SAAS,YAAY,GAAG,GAAG,GAAG;CAC5B,OAAO,IAAI,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,SAAS,GAAG;EACxE,OAAO,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;CAC9B;AACF;AAOA,SAAgB,MAAM,GAAG;CACvB,QAAQ,IAAI,CAAC,OAAO,IAAI,UAAU,SAAS,GAAG,GAAG;EAC/C,OAAO,IAAI,IAAI,YAAY,GAAG,GAAG,CAAC,IAAIC,iBAAS,MAAM,CAAC,IAAI,IAAI,CAAC;CACjE;AACF;AAEA,SAAwB,QAAQ,GAAG,GAAG;CACpC,IAAI,IAAI,IAAI;CACZ,OAAO,IAAID,SAAO,GAAG,CAAC,IAAIC,iBAAS,MAAM,CAAC,IAAI,IAAI,CAAC;AACrD;;;ACvBA,IAAA,eAAgB,SAAS,SAAS,GAAG;CACnC,IAAI,QAAQ,MAAM,CAAC;CAEnB,SAASC,MAAI,OAAO,KAAK;EACvB,IAAI,IAAI,OAAO,QAAQC,IAAS,KAAK,EAAA,CAAG,IAAI,MAAMA,IAAS,GAAG,EAAA,CAAG,CAAC,GAC9D,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GACxB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,GACxB,UAAU,QAAQ,MAAM,SAAS,IAAI,OAAO;EAChD,OAAO,SAAS,GAAG;GACjB,MAAM,IAAI,EAAE,CAAC;GACb,MAAM,IAAI,EAAE,CAAC;GACb,MAAM,IAAI,EAAE,CAAC;GACb,MAAM,UAAU,QAAQ,CAAC;GACzB,OAAO,QAAQ;EACjB;CACF;CAEA,MAAI,QAAQ;CAEZ,OAAOD;AACT,EAAA,CAAG,CAAC;;;ACzBJ,SAAA,oBAAwB,GAAG,GAAG;CAC5B,IAAI,CAAC,GAAG,IAAI,CAAC;CACb,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GACvC,IAAI,EAAE,MAAM,GACZ;CACJ,OAAO,SAAS,GAAG;EACjB,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,KAAK;EACvD,OAAO;CACT;AACF;AAEA,SAAgB,cAAc,GAAG;CAC/B,OAAO,YAAY,OAAO,CAAC,KAAK,EAAE,aAAa;AACjD;;;ACNA,SAAgB,aAAa,GAAG,GAAG;CACjC,IAAI,KAAK,IAAI,EAAE,SAAS,GACpB,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI,GAClC,IAAI,IAAI,MAAM,EAAE,GAChB,IAAI,IAAI,MAAM,EAAE,GAChB;CAEJ,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,KAAKI,cAAM,EAAE,IAAI,EAAE,EAAE;CAChD,OAAO,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;CAE7B,OAAO,SAAS,GAAG;EACjB,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;EACtC,OAAO;CACT;AACF;;;ACrBA,SAAA,aAAwB,GAAG,GAAG;CAC5B,IAAI,oBAAI,IAAI,KAAG;CACf,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG;EACjC,OAAO,EAAE,QAAQ,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG;CACzC;AACF;;;ACLA,SAAA,eAAwB,GAAG,GAAG;CAC5B,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG;EACjC,OAAO,KAAK,IAAI,KAAK,IAAI;CAC3B;AACF;;;ACFA,SAAA,eAAwB,GAAG,GAAG;CAC5B,IAAI,IAAI,CAAC,GACL,IAAI,CAAC,GACL;CAEJ,IAAI,MAAM,QAAQ,OAAO,MAAM,UAAU,IAAI,CAAC;CAC9C,IAAI,MAAM,QAAQ,OAAO,MAAM,UAAU,IAAI,CAAC;CAE9C,KAAK,KAAK,GACR,IAAI,KAAK,GACP,EAAE,KAAKC,cAAM,EAAE,IAAI,EAAE,EAAE;MAEvB,EAAE,KAAK,EAAE;CAIb,OAAO,SAAS,GAAG;EACjB,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;EAC1B,OAAO;CACT;AACF;;;ACpBA,IAAI,MAAM;AACN,IAAA,MAAM,IAAI,OAAO,IAAI,QAAQ,GAAG;AAEpC,SAAS,KAAK,GAAG;CACf,OAAO,WAAW;EAChB,OAAO;CACT;AACF;AAEA,SAAS,IAAI,GAAG;CACd,OAAO,SAAS,GAAG;EACjB,OAAO,EAAE,CAAC,IAAI;CAChB;AACF;AAEA,SAAA,eAAwB,GAAG,GAAG;CAC5B,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,GACrC,IACA,IACA,IACA,IAAI,IACJ,IAAI,CAAC,GACL,IAAI,CAAC;CAGT,IAAI,IAAI,IAAI,IAAI,IAAI;CAGpB,QAAQ,KAAK,IAAI,KAAK,CAAC,OACf,KAAK,IAAI,KAAK,CAAC,IAAI;EACzB,KAAK,KAAK,GAAG,SAAS,IAAI;GACxB,KAAK,EAAE,MAAM,IAAI,EAAE;GACnB,IAAI,EAAE,IAAI,EAAE,MAAM;QACb,EAAE,EAAE,KAAK;EAChB;EACA,KAAK,KAAK,GAAG,SAAS,KAAK,GAAG,KAAK;GACjC,IAAI,EAAE,IAAI,EAAE,MAAM;QACb,EAAE,EAAE,KAAK;EAChB,OAAO;GACL,EAAE,EAAE,KAAK;GACT,EAAE,KAAK;IAAI;IAAG,GAAGC,eAAO,IAAI,EAAE;GAAC,CAAC;EAClC;EACA,KAAK,IAAI;CACX;CAGA,IAAI,KAAK,EAAE,QAAQ;EACjB,KAAK,EAAE,MAAM,EAAE;EACf,IAAI,EAAE,IAAI,EAAE,MAAM;OACb,EAAE,EAAE,KAAK;CAChB;CAIA,OAAO,EAAE,SAAS,IAAK,EAAE,KACnB,IAAI,EAAE,EAAE,CAAC,CAAC,IACV,KAAK,CAAC,KACL,IAAI,EAAE,QAAQ,SAAS,GAAG;EACzB,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,GAAA,CAAI,KAAK,EAAE,EAAE,CAAC;EACtD,OAAO,EAAE,KAAK,EAAE;CAClB;AACR;;;ACrDA,SAAA,cAAwB,GAAG,GAAG;CAC5B,IAAI,IAAI,OAAO,GAAG;CAClB,OAAO,KAAK,QAAQ,MAAM,YAAYC,iBAAS,CAAC,KACzC,MAAM,WAAWC,iBAClB,MAAM,YAAa,IAAI,MAAM,CAAC,MAAM,IAAI,GAAGC,eAAOC,iBAClD,aAAa,QAAQD,cACrB,aAAa,OAAOE,eACpB,cAAc,CAAC,IAAIC,sBACnB,MAAM,QAAQ,CAAC,IAAI,eACnB,OAAO,EAAE,YAAY,cAAc,OAAO,EAAE,aAAa,cAAc,MAAM,CAAC,IAAIC,iBAClFL,eAAAA,CAAQ,GAAG,CAAC;AACpB;;;ACrBA,SAAA,cAAwB,GAAG,GAAG;CAC5B,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG;EACjC,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;CACvC;AACF;;;ACFA,SAAwB,UAAU,aAAa,QAAQ;CACrD,IAAI,WAAW,KAAA,GAAW,SAAS,aAAa,cAAcM;CAC9D,IAAI,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,IAAI,OAAO,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC;CAC5E,OAAO,IAAI,GAAG,EAAE,KAAK,YAAY,GAAG,IAAI,OAAO,EAAE,EAAE;CACnD,OAAO,SAAS,GAAG;EACjB,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;EACvD,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;CACnB;AACF;;;ACVA,SAAwB,UAAU,GAAG;CACnC,OAAO,WAAW;EAChB,OAAO;CACT;AACF;;;ACJA,SAAwBC,SAAO,GAAG;CAChC,OAAO,CAAC;AACV;;;ACGA,IAAI,OAAO,CAAC,GAAG,CAAC;AAEhB,SAAgBC,WAAS,GAAG;CAC1B,OAAO;AACT;AAEA,SAAS,UAAU,GAAG,GAAG;CACvB,QAAQ,KAAM,IAAI,CAAC,KACb,SAAS,GAAG;EAAE,QAAQ,IAAI,KAAK;CAAG,IAClCC,UAAS,MAAM,CAAC,IAAI,MAAM,EAAG;AACrC;AAEA,SAAS,QAAQ,GAAG,GAAG;CACrB,IAAI;CACJ,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;CAC7B,OAAO,SAAS,GAAG;EAAE,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC;CAAG;AAC3D;AAIA,SAAS,MAAM,QAAQ,OAAO,aAAa;CACzC,IAAI,KAAK,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM;CAC9D,IAAI,KAAK,IAAI,KAAK,UAAU,IAAI,EAAE,GAAG,KAAK,YAAY,IAAI,EAAE;MACvD,KAAK,UAAU,IAAI,EAAE,GAAG,KAAK,YAAY,IAAI,EAAE;CACpD,OAAO,SAAS,GAAG;EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;CAAG;AACzC;AAEA,SAAS,QAAQ,QAAQ,OAAO,aAAa;CAC3C,IAAI,IAAI,KAAK,IAAI,OAAO,QAAQ,MAAM,MAAM,IAAI,GAC5C,IAAI,IAAI,MAAM,CAAC,GACf,IAAI,IAAI,MAAM,CAAC,GACf,IAAI;CAGR,IAAI,OAAO,KAAK,OAAO,IAAI;EACzB,SAAS,OAAO,MAAM,CAAC,CAAC,QAAQ;EAChC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ;CAChC;CAEA,OAAO,EAAE,IAAI,GAAG;EACd,EAAE,KAAK,UAAU,OAAO,IAAI,OAAO,IAAI,EAAE;EACzC,EAAE,KAAK,YAAY,MAAM,IAAI,MAAM,IAAI,EAAE;CAC3C;CAEA,OAAO,SAAS,GAAG;EACjB,IAAI,IAAIC,YAAO,QAAQ,GAAG,GAAG,CAAC,IAAI;EAClC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CACrB;AACF;AAEA,SAAgBC,OAAK,QAAQ,QAAQ;CACnC,OAAO,OACF,OAAO,OAAO,OAAO,CAAC,CAAC,CACvB,MAAM,OAAO,MAAM,CAAC,CAAC,CACrB,YAAY,OAAO,YAAY,CAAC,CAAC,CACjC,MAAM,OAAO,MAAM,CAAC,CAAC,CACrB,QAAQ,OAAO,QAAQ,CAAC;AAC/B;AAEA,SAAgBC,gBAAc;CAC5B,IAAI,SAAS,MACT,QAAQ,MACR,cAAcC,eACd,WACA,aACA,SACA,QAAQL,YACR,WACA,QACA;CAEJ,SAAS,UAAU;EACjB,IAAI,IAAI,KAAK,IAAI,OAAO,QAAQ,MAAM,MAAM;EAC5C,IAAI,UAAUA,YAAU,QAAQ,QAAQ,OAAO,IAAI,OAAO,IAAI,EAAE;EAChE,YAAY,IAAI,IAAI,UAAU;EAC9B,SAAS,QAAQ;EACjB,OAAO;CACT;CAEA,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,WAAW,WAAW,SAAS,UAAU,OAAO,IAAI,SAAS,GAAG,OAAO,WAAW,GAAA,CAAI,UAAU,MAAM,CAAC,CAAC,CAAC;CAC/I;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,MAAM,aAAa,UAAU,QAAQ,UAAU,OAAO,OAAO,IAAI,SAAS,GAAGM,cAAiB,GAAA,CAAI,CAAC,CAAC,CAAC;CAC9G;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,SAAS,MAAM,KAAK,GAAGC,QAAM,GAAG,QAAQ,KAAK,OAAO,MAAM;CACvF;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,KAAK,MAAM,MAAM;CAC7E;CAEA,MAAM,aAAa,SAAS,GAAG;EAC7B,OAAO,QAAQ,MAAM,KAAK,CAAC,GAAG,cAAcC,eAAkB,QAAQ;CACxE;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,IAAI,OAAOR,YAAU,QAAQ,KAAK,UAAUA;CACjF;CAEA,MAAM,cAAc,SAAS,GAAG;EAC9B,OAAO,UAAU,UAAU,cAAc,GAAG,QAAQ,KAAK;CAC3D;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,OAAO,SAAS,GAAG,GAAG;EACpB,YAAY,GAAG,cAAc;EAC7B,OAAO,QAAQ;CACjB;AACF;AAEA,SAAwB,aAAa;CACnC,OAAOI,cAAY,CAAC,CAACJ,YAAUA,UAAQ;AACzC;;;AC5HA,SAAA,sBAAwB,GAAG;CACzB,OAAO,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,OAChC,EAAE,eAAe,IAAI,CAAC,CAAC,QAAQ,MAAM,EAAE,IACvC,EAAE,SAAS,EAAE;AACrB;AAKA,SAAgB,mBAAmB,GAAG,GAAG;CACvC,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,GAAG,OAAO;CACpC,IAAI,KAAK,IAAI,IAAI,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,cAAc,EAAA,CAAG,QAAQ,GAAG,GAAG,cAAc,EAAE,MAAM,GAAG,CAAC;CAIrG,OAAO,CACL,YAAY,SAAS,IAAI,YAAY,KAAK,YAAY,MAAM,CAAC,IAAI,aACjE,CAAC,EAAE,MAAM,IAAI,CAAC,CAChB;AACF;;;ACjBA,SAAA,iBAAwB,GAAG;CACzB,OAAO,IAAI,mBAAmB,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK;AACzD;;;ACJA,SAAA,oBAAwB,UAAU,WAAW;CAC3C,OAAO,SAAS,OAAO,OAAO;EAC5B,IAAI,IAAI,MAAM,QACV,IAAI,CAAC,GACL,IAAI,GACJ,IAAI,SAAS,IACb,SAAS;EAEb,OAAO,IAAI,KAAK,IAAI,GAAG;GACrB,IAAI,SAAS,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,GAAG,QAAQ,MAAM;GAC1D,EAAE,KAAK,MAAM,UAAU,KAAK,GAAG,IAAI,CAAC,CAAC;GACrC,KAAK,UAAU,IAAI,KAAK,OAAO;GAC/B,IAAI,SAAS,KAAK,IAAI,KAAK,SAAS;EACtC;EAEA,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,SAAS;CACnC;AACF;;;ACjBA,SAAA,uBAAwB,UAAU;CAChC,OAAO,SAAS,OAAO;EACrB,OAAO,MAAM,QAAQ,UAAU,SAAS,GAAG;GACzC,OAAO,SAAS,CAAC;EACnB,CAAC;CACH;AACF;;;ACLA,IAAI,KAAK;AAET,SAAwB,gBAAgB,WAAW;CACjD,IAAI,EAAE,QAAQ,GAAG,KAAK,SAAS,IAAI,MAAM,IAAI,MAAM,qBAAqB,SAAS;CACjF,IAAI;CACJ,OAAO,IAAI,gBAAgB;EACzB,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,OAAO,MAAM;EACb,WAAW,MAAM,MAAM,MAAM,EAAE,CAAC,MAAM,CAAC;EACvC,MAAM,MAAM;EACZ,MAAM,MAAM;CACd,CAAC;AACH;AAEA,gBAAgB,YAAY,gBAAgB;AAE5C,SAAgB,gBAAgB,WAAW;CACzC,KAAK,OAAO,UAAU,SAAS,KAAA,IAAY,MAAM,UAAU,OAAO;CAClE,KAAK,QAAQ,UAAU,UAAU,KAAA,IAAY,MAAM,UAAU,QAAQ;CACrE,KAAK,OAAO,UAAU,SAAS,KAAA,IAAY,MAAM,UAAU,OAAO;CAClE,KAAK,SAAS,UAAU,WAAW,KAAA,IAAY,KAAK,UAAU,SAAS;CACvE,KAAK,OAAO,CAAC,CAAC,UAAU;CACxB,KAAK,QAAQ,UAAU,UAAU,KAAA,IAAY,KAAA,IAAY,CAAC,UAAU;CACpE,KAAK,QAAQ,CAAC,CAAC,UAAU;CACzB,KAAK,YAAY,UAAU,cAAc,KAAA,IAAY,KAAA,IAAY,CAAC,UAAU;CAC5E,KAAK,OAAO,CAAC,CAAC,UAAU;CACxB,KAAK,OAAO,UAAU,SAAS,KAAA,IAAY,KAAK,UAAU,OAAO;AACnE;AAEA,gBAAgB,UAAU,WAAW,WAAW;CAC9C,OAAO,KAAK,OACN,KAAK,QACL,KAAK,OACL,KAAK,UACJ,KAAK,OAAO,MAAM,OAClB,KAAK,UAAU,KAAA,IAAY,KAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,CAAC,MAC1D,KAAK,QAAQ,MAAM,OACnB,KAAK,cAAc,KAAA,IAAY,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,YAAY,CAAC,MACxE,KAAK,OAAO,MAAM,MACnB,KAAK;AACb;;;AC7CA,SAAA,mBAAwB,GAAG;CACzB,KAAK,KAAK,IAAI,IAAI,EAAE,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,GACvD,QAAQ,EAAE,IAAV;EACE,KAAK;GAAK,KAAK,KAAK;GAAG;EACvB,KAAK;GAAK,IAAI,OAAO,GAAG,KAAK;GAAG,KAAK;GAAG;EACxC;GAAS,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM;GAAK,IAAI,KAAK,GAAG,KAAK;CACnD;CAEF,OAAO,KAAK,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI;AACrD;;;ACRA,IAAW;AAEX,SAAA,yBAAwB,GAAG,GAAG;CAC5B,IAAI,IAAI,mBAAmB,GAAG,CAAC;CAC/B,IAAI,CAAC,GAAG,OAAO,iBAAiB,KAAA,GAAW,EAAE,YAAY,CAAC;CAC1D,IAAI,cAAc,EAAE,IAChB,WAAW,EAAE,IACb,IAAI,YAAY,iBAAiB,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,GAC5F,IAAI,YAAY;CACpB,OAAO,MAAM,IAAI,cACX,IAAI,IAAI,cAAc,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IACnD,IAAI,IAAI,YAAY,MAAM,GAAG,CAAC,IAAI,MAAM,YAAY,MAAM,CAAC,IAC3D,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,mBAAmB,GAAG,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1F;;;ACbA,SAAA,sBAAwB,GAAG,GAAG;CAC5B,IAAI,IAAI,mBAAmB,GAAG,CAAC;CAC/B,IAAI,CAAC,GAAG,OAAO,IAAI;CACnB,IAAI,cAAc,EAAE,IAChB,WAAW,EAAE;CACjB,OAAO,WAAW,IAAI,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,cACxD,YAAY,SAAS,WAAW,IAAI,YAAY,MAAM,GAAG,WAAW,CAAC,IAAI,MAAM,YAAY,MAAM,WAAW,CAAC,IAC7G,cAAc,IAAI,MAAM,WAAW,YAAY,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;AAC3E;;;ACNA,IAAA,sBAAe;CACb,MAAM,GAAG,OAAO,IAAI,IAAA,CAAK,QAAQ,CAAC;CAClC,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;CACpC,MAAM,MAAM,IAAI;CAChB,KAAKS;CACL,MAAM,GAAG,MAAM,EAAE,cAAc,CAAC;CAChC,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC;CAC1B,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC;CAC9B,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;CACpC,MAAM,GAAG,MAAMC,sBAAc,IAAI,KAAK,CAAC;CACvC,KAAKA;CACL,KAAKC;CACL,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY;CACnD,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;AACvC;;;AClBA,SAAA,iBAAwB,GAAG;CACzB,OAAO;AACT;;;ACOA,IAAI,MAAM,MAAM,UAAU;AACtB,IAAA,WAAW;CAAC;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;AAAG;AAElF,SAAA,eAAwB,QAAQ;CAC9B,IAAI,QAAQ,OAAO,aAAa,KAAA,KAAa,OAAO,cAAc,KAAA,IAAYC,mBAAWC,oBAAY,IAAI,KAAK,OAAO,UAAU,MAAM,GAAG,OAAO,YAAY,EAAE,GACzJ,iBAAiB,OAAO,aAAa,KAAA,IAAY,KAAK,OAAO,SAAS,KAAK,IAC3E,iBAAiB,OAAO,aAAa,KAAA,IAAY,KAAK,OAAO,SAAS,KAAK,IAC3E,UAAU,OAAO,YAAY,KAAA,IAAY,MAAM,OAAO,UAAU,IAChE,WAAW,OAAO,aAAa,KAAA,IAAYD,mBAAWE,uBAAe,IAAI,KAAK,OAAO,UAAU,MAAM,CAAC,GACtG,UAAU,OAAO,YAAY,KAAA,IAAY,MAAM,OAAO,UAAU,IAChE,QAAQ,OAAO,UAAU,KAAA,IAAY,MAAM,OAAO,QAAQ,IAC1D,MAAM,OAAO,QAAQ,KAAA,IAAY,QAAQ,OAAO,MAAM;CAE1D,SAAS,UAAU,WAAW,SAAS;EACrC,YAAY,gBAAgB,SAAS;EAErC,IAAI,OAAO,UAAU,MACjB,QAAQ,UAAU,OAClB,OAAO,UAAU,MACjB,SAAS,UAAU,QACnB,OAAO,UAAU,MACjB,QAAQ,UAAU,OAClB,QAAQ,UAAU,OAClB,YAAY,UAAU,WACtB,OAAO,UAAU,MACjB,OAAO,UAAU;EAGrB,IAAI,SAAS,KAAK,QAAQ,MAAM,OAAO;OAGlC,IAAI,CAACC,oBAAY,OAAO,cAAc,KAAA,MAAc,YAAY,KAAK,OAAO,MAAM,OAAO;EAG9F,IAAI,QAAS,SAAS,OAAO,UAAU,KAAM,OAAO,MAAM,OAAO,KAAK,QAAQ;EAI9E,IAAI,UAAU,WAAW,QAAQ,WAAW,KAAA,IAAY,QAAQ,SAAS,OAAO,WAAW,MAAM,iBAAiB,WAAW,OAAO,SAAS,KAAK,IAAI,IAAI,MAAM,KAAK,YAAY,IAAI,KACjL,UAAU,WAAW,MAAM,iBAAiB,OAAO,KAAK,IAAI,IAAI,UAAU,OAAO,WAAW,QAAQ,WAAW,KAAA,IAAY,QAAQ,SAAS;EAKhJ,IAAI,aAAaA,oBAAY,OACzB,cAAc,aAAa,KAAK,IAAI;EAMxC,YAAY,cAAc,KAAA,IAAY,IAChC,SAAS,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,CAAC,IACzD,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,CAAC;EAEzC,SAAS,OAAO,OAAO;GACrB,IAAI,cAAc,QACd,cAAc,QACd,GAAG,GAAG;GAEV,IAAI,SAAS,KAAK;IAChB,cAAc,WAAW,KAAK,IAAI;IAClC,QAAQ;GACV,OAAO;IACL,QAAQ,CAAC;IAGT,IAAI,gBAAgB,QAAQ,KAAK,IAAI,QAAQ;IAG7C,QAAQ,MAAM,KAAK,IAAI,MAAM,WAAW,KAAK,IAAI,KAAK,GAAG,SAAS;IAGlE,IAAI,MAAM,QAAQC,mBAAW,KAAK;IAGlC,IAAI,iBAAiB,CAAC,UAAU,KAAK,SAAS,KAAK,gBAAgB;IAGnE,eAAe,gBAAiB,SAAS,MAAM,OAAO,QAAS,SAAS,OAAO,SAAS,MAAM,KAAK,QAAQ;IAC3G,eAAe,SAAS,OAAO,CAAC,MAAM,KAAK,KAAK,mBAAmB,KAAA,IAAY,SAAS,IAAI,iBAAiB,KAAK,MAAM,eAAe,iBAAiB,SAAS,MAAM,MAAM;IAI7K,IAAI,aAAa;KACf,IAAI,IAAI,IAAI,MAAM;KAClB,OAAO,EAAE,IAAI,GACX,IAAI,IAAI,MAAM,WAAW,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI;MAC7C,eAAe,MAAM,KAAK,UAAU,MAAM,MAAM,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK;MAC3E,QAAQ,MAAM,MAAM,GAAG,CAAC;MACxB;KACF;IAEJ;GACF;GAGA,IAAI,SAAS,CAAC,MAAM,QAAQ,MAAM,OAAO,QAAQ;GAGjD,IAAI,SAAS,YAAY,SAAS,MAAM,SAAS,YAAY,QACzD,UAAU,SAAS,QAAQ,IAAI,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI;GAG1E,IAAI,SAAS,MAAM,QAAQ,MAAM,UAAU,OAAO,QAAQ,SAAS,QAAQ,YAAY,SAAS,QAAQ,GAAG,UAAU;GAGrH,QAAQ,OAAR;IACE,KAAK;KAAK,QAAQ,cAAc,QAAQ,cAAc;KAAS;IAC/D,KAAK;KAAK,QAAQ,cAAc,UAAU,QAAQ;KAAa;IAC/D,KAAK;KAAK,QAAQ,QAAQ,MAAM,GAAG,SAAS,QAAQ,UAAU,CAAC,IAAI,cAAc,QAAQ,cAAc,QAAQ,MAAM,MAAM;KAAG;IAC9H,SAAS,QAAQ,UAAU,cAAc,QAAQ;GACnD;GAEA,OAAO,SAAS,KAAK;EACvB;EAEA,OAAO,WAAW,WAAW;GAC3B,OAAO,YAAY;EACrB;EAEA,OAAO;CACT;CAEA,SAAS,aAAa,WAAW,OAAO;EACtC,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAMC,iBAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GACjE,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GACnB,IAAI,WAAW,YAAY,gBAAgB,SAAS,GAAG,UAAU,OAAO,KAAK,YAAY,EAAC,QAAQ,SAAS,IAAI,IAAI,GAAE,CAAC;EAC1H,OAAO,SAAS,OAAO;GACrB,OAAO,EAAE,IAAI,KAAK;EACpB;CACF;CAEA,OAAO;EACL,QAAQ;EACM;CAChB;AACF;;;AChJA,IAAIC;AACJ,IAAW;AACX,IAAW;AAEXC,gBAAc;CACZ,WAAW;CACX,UAAU,CAAC,CAAC;CACZ,UAAU,CAAC,KAAK,EAAE;AACpB,CAAC;AAED,SAAwBA,gBAAc,YAAY;CAChD,WAASC,eAAa,UAAU;CAChC,SAASF,SAAO;CAChB,eAAeA,SAAO;CACtB,OAAOA;AACT;;;ACfA,SAAA,uBAAwB,MAAM;CAC5B,OAAO,KAAK,IAAI,GAAG,CAACG,iBAAS,KAAK,IAAI,IAAI,CAAC,CAAC;AAC9C;;;ACFA,SAAA,wBAAwB,MAAM,OAAO;CACnC,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAMC,iBAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAIA,iBAAS,KAAK,IAAI,IAAI,CAAC,CAAC;AAC9G;;;ACFA,SAAA,uBAAwB,MAAM,KAAK;CACjC,OAAO,KAAK,IAAI,IAAI,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI;CAC7C,OAAO,KAAK,IAAI,GAAGC,iBAAS,GAAG,IAAIA,iBAAS,IAAI,CAAC,IAAI;AACvD;;;ACFA,SAAwB,WAAW,OAAO,MAAM,OAAO,WAAW;CAChE,IAAI,OAAO,SAAS,OAAO,MAAM,KAAK,GAClC;CACJ,YAAY,gBAAgB,aAAa,OAAO,OAAO,SAAS;CAChE,QAAQ,UAAU,MAAlB;EACE,KAAK;GACH,IAAI,QAAQ,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;GACpD,IAAI,UAAU,aAAa,QAAQ,CAAC,MAAM,YAAYC,wBAAgB,MAAM,KAAK,CAAC,GAAG,UAAU,YAAY;GAC3G,OAAO,aAAa,WAAW,KAAK;EAEtC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;GACH,IAAI,UAAU,aAAa,QAAQ,CAAC,MAAM,YAAYC,uBAAe,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,aAAa,UAAU,SAAS;GAC9K;EAEF,KAAK;EACL,KAAK,KACH,IAAI,UAAU,aAAa,QAAQ,CAAC,MAAM,YAAYC,uBAAe,IAAI,CAAC,GAAG,UAAU,YAAY,aAAa,UAAU,SAAS,OAAO;CAG9I;CACA,OAAO,OAAO,SAAS;AACzB;;;ACvBA,SAAgB,UAAU,OAAO;CAC/B,IAAI,SAAS,MAAM;CAEnB,MAAM,QAAQ,SAAS,OAAO;EAC5B,IAAI,IAAI,OAAO;EACf,OAAO,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,IAAI,SAAS,OAAO,KAAK,KAAK;CAChE;CAEA,MAAM,aAAa,SAAS,OAAO,WAAW;EAC5C,IAAI,IAAI,OAAO;EACf,OAAO,WAAW,EAAE,IAAI,EAAE,EAAE,SAAS,IAAI,SAAS,OAAO,KAAK,OAAO,SAAS;CAChF;CAEA,MAAM,OAAO,SAAS,OAAO;EAC3B,IAAI,SAAS,MAAM,QAAQ;EAE3B,IAAI,IAAI,OAAO;EACf,IAAI,KAAK;EACT,IAAI,KAAK,EAAE,SAAS;EACpB,IAAI,QAAQ,EAAE;EACd,IAAI,OAAO,EAAE;EACb,IAAI;EACJ,IAAI;EACJ,IAAI,UAAU;EAEd,IAAI,OAAO,OAAO;GAChB,OAAO,OAAO,QAAQ,MAAM,OAAO;GACnC,OAAO,IAAI,KAAK,IAAI,KAAK;EAC3B;EAEA,OAAO,YAAY,GAAG;GACpB,OAAO,cAAc,OAAO,MAAM,KAAK;GACvC,IAAI,SAAS,SAAS;IACpB,EAAE,MAAM;IACR,EAAE,MAAM;IACR,OAAO,OAAO,CAAC;GACjB,OAAO,IAAI,OAAO,GAAG;IACnB,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI;IACnC,OAAO,KAAK,KAAK,OAAO,IAAI,IAAI;GAClC,OAAO,IAAI,OAAO,GAAG;IACnB,QAAQ,KAAK,KAAK,QAAQ,IAAI,IAAI;IAClC,OAAO,KAAK,MAAM,OAAO,IAAI,IAAI;GACnC,OACE;GAEF,UAAU;EACZ;EAEA,OAAO;CACT;CAEA,OAAO;AACT;AAEA,SAAwB,SAAS;CAC/B,IAAI,QAAQ,WAAW;CAEvB,MAAM,OAAO,WAAW;EACtB,OAAOC,OAAK,OAAO,OAAO,CAAC;CAC7B;CAEA,UAAU,MAAM,OAAO,SAAS;CAEhC,OAAO,UAAU,KAAK;AACxB;;;AClEA,SAAwB,SAAS,QAAQ;CACvC,IAAI;CAEJ,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,UAAU;CAChD;CAEA,MAAM,SAAS;CAEf,MAAM,SAAS,MAAM,QAAQ,SAAS,GAAG;EACvC,OAAO,UAAU,UAAU,SAAS,MAAM,KAAK,GAAGC,QAAM,GAAG,SAAS,OAAO,MAAM;CACnF;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,SAAS,MAAM,CAAC,CAAC,QAAQ,OAAO;CACzC;CAEA,SAAS,UAAU,SAAS,MAAM,KAAK,QAAQA,QAAM,IAAI,CAAC,GAAG,CAAC;CAE9D,OAAO,UAAU,KAAK;AACxB;;;AC3BA,SAAwB,KAAK,QAAQ,UAAU;CAC7C,SAAS,OAAO,MAAM;CAEtB,IAAI,KAAK,GACL,KAAK,OAAO,SAAS,GACrB,KAAK,OAAO,KACZ,KAAK,OAAO,KACZ;CAEJ,IAAI,KAAK,IAAI;EACX,IAAI,IAAI,KAAK,IAAI,KAAK;EACtB,IAAI,IAAI,KAAK,IAAI,KAAK;CACxB;CAEA,OAAO,MAAM,SAAS,MAAM,EAAE;CAC9B,OAAO,MAAM,SAAS,KAAK,EAAE;CAC7B,OAAO;AACT;;;ACXA,SAAS,aAAa,GAAG;CACvB,OAAO,KAAK,IAAI,CAAC;AACnB;AAEA,SAAS,aAAa,GAAG;CACvB,OAAO,KAAK,IAAI,CAAC;AACnB;AAEA,SAAS,cAAc,GAAG;CACxB,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;AACrB;AAEA,SAAS,cAAc,GAAG;CACxB,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;AACrB;AAEA,SAAS,MAAM,GAAG;CAChB,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI;AACjD;AAEA,SAAS,KAAK,MAAM;CAClB,OAAO,SAAS,KAAK,QACf,SAAS,KAAK,IAAI,KAAK,OACvB,MAAK,KAAK,IAAI,MAAM,CAAC;AAC7B;AAEA,SAAS,KAAK,MAAM;CAClB,OAAO,SAAS,KAAK,IAAI,KAAK,MACxB,SAAS,MAAM,KAAK,SACnB,SAAS,KAAK,KAAK,SAClB,OAAO,KAAK,IAAI,IAAI,IAAG,MAAK,KAAK,IAAI,CAAC,IAAI;AACpD;AAEA,SAAS,QAAQ,GAAG;CAClB,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;AAC3B;AAEA,SAAgB,QAAQ,WAAW;CACjC,MAAM,QAAQ,UAAU,cAAc,YAAY;CAClD,MAAM,SAAS,MAAM;CACrB,IAAI,OAAO;CACX,IAAI;CACJ,IAAI;CAEJ,SAAS,UAAU;EACjB,OAAO,KAAK,IAAI,GAAG,OAAO,KAAK,IAAI;EACnC,IAAI,OAAO,CAAC,CAAC,KAAK,GAAG;GACnB,OAAO,QAAQ,IAAI,GAAG,OAAO,QAAQ,IAAI;GACzC,UAAU,eAAe,aAAa;EACxC,OACE,UAAU,cAAc,YAAY;EAEtC,OAAO;CACT;CAEA,MAAM,OAAO,SAAS,GAAG;EACvB,OAAO,UAAU,UAAU,OAAO,CAAC,GAAG,QAAQ,KAAK;CACrD;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,OAAO,CAAC,GAAG,QAAQ,KAAK,OAAO;CAC5D;CAEA,MAAM,SAAQ,UAAS;EACrB,MAAM,IAAI,OAAO;EACjB,IAAI,IAAI,EAAE;EACV,IAAI,IAAI,EAAE,EAAE,SAAS;EACrB,MAAM,IAAI,IAAI;EAEd,IAAI,GAAG,CAAE,GAAG,KAAK,CAAC,GAAG,CAAC;EAEtB,IAAI,IAAI,KAAK,CAAC;EACd,IAAI,IAAI,KAAK,CAAC;EACd,IAAI;EACJ,IAAI;EACJ,MAAM,IAAI,SAAS,OAAO,KAAK,CAAC;EAChC,IAAI,IAAI,CAAC;EAET,IAAI,EAAE,OAAO,MAAM,IAAI,IAAI,GAAG;GAC5B,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC;GAClC,IAAI,IAAI,GAAG,OAAO,KAAK,GAAG,EAAE,GAC1B,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,GAAG;IACzB,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;IACrC,IAAI,IAAI,GAAG;IACX,IAAI,IAAI,GAAG;IACX,EAAE,KAAK,CAAC;GACV;QACK,OAAO,KAAK,GAAG,EAAE,GACtB,KAAK,IAAI,OAAO,GAAG,KAAK,GAAG,EAAE,GAAG;IAC9B,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;IACrC,IAAI,IAAI,GAAG;IACX,IAAI,IAAI,GAAG;IACX,EAAE,KAAK,CAAC;GACV;GAEF,IAAI,EAAE,SAAS,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;EACzC,OACE,IAAI,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;EAE9C,OAAO,IAAI,EAAE,QAAQ,IAAI;CAC3B;CAEA,MAAM,cAAc,OAAO,cAAc;EACvC,IAAI,SAAS,MAAM,QAAQ;EAC3B,IAAI,aAAa,MAAM,YAAY,SAAS,KAAK,MAAM;EACvD,IAAI,OAAO,cAAc,YAAY;GACnC,IAAI,EAAE,OAAO,OAAO,YAAY,gBAAgB,SAAS,EAAA,CAAG,aAAa,MAAM,UAAU,OAAO;GAChG,YAAY,OAAO,SAAS;EAC9B;EACA,IAAI,UAAU,UAAU,OAAO;EAC/B,MAAM,IAAI,KAAK,IAAI,GAAG,OAAO,QAAQ,MAAM,MAAM,CAAC,CAAC,MAAM;EACzD,QAAO,MAAK;GACV,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;GACpC,IAAI,IAAI,OAAO,OAAO,IAAK,KAAK;GAChC,OAAO,KAAK,IAAI,UAAU,CAAC,IAAI;EACjC;CACF;CAEA,MAAM,aAAa;EACjB,OAAO,OAAO,KAAK,OAAO,GAAG;GAC3B,QAAO,MAAK,KAAK,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;GACpC,OAAM,MAAK,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;EACpC,CAAC,CAAC;CACJ;CAEA,OAAO;AACT;AAEA,SAAwB,MAAM;CAC5B,MAAM,QAAQ,QAAQC,cAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;CACnD,MAAM,aAAaC,OAAK,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC;CACvD,UAAU,MAAM,OAAO,SAAS;CAChC,OAAO;AACT;;;ACvIA,SAAS,gBAAgB,GAAG;CAC1B,OAAO,SAAS,GAAG;EACjB,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC;CAClD;AACF;AAEA,SAAS,gBAAgB,GAAG;CAC1B,OAAO,SAAS,GAAG;EACjB,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,IAAI;CAClD;AACF;AAEA,SAAgB,UAAU,WAAW;CACnC,IAAI,IAAI,GAAG,QAAQ,UAAU,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,CAAC;CAEnE,MAAM,WAAW,SAAS,GAAG;EAC3B,OAAO,UAAU,SAAS,UAAU,gBAAgB,IAAI,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI;CACrF;CAEA,OAAO,UAAU,KAAK;AACxB;AAEA,SAAwB,SAAS;CAC/B,IAAI,QAAQ,UAAUC,cAAY,CAAC;CAEnC,MAAM,OAAO,WAAW;EACtB,OAAOC,OAAK,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CACxD;CAEA,OAAO,UAAU,MAAM,OAAO,SAAS;AACzC;;;AC9BA,SAAS,aAAa,UAAU;CAC9B,OAAO,SAAS,GAAG;EACjB,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,QAAQ,IAAI,KAAK,IAAI,GAAG,QAAQ;CAC/D;AACF;AAEA,SAAS,cAAc,GAAG;CACxB,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7C;AAEA,SAAS,gBAAgB,GAAG;CAC1B,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;AAC9B;AAEA,SAAgB,OAAO,WAAW;CAChC,IAAI,QAAQ,UAAUC,YAAUA,UAAQ,GACpC,WAAW;CAEf,SAAS,UAAU;EACjB,OAAO,aAAa,IAAI,UAAUA,YAAUA,UAAQ,IAC9C,aAAa,KAAM,UAAU,eAAe,eAAe,IAC3D,UAAU,aAAa,QAAQ,GAAG,aAAa,IAAI,QAAQ,CAAC;CACpE;CAEA,MAAM,WAAW,SAAS,GAAG;EAC3B,OAAO,UAAU,UAAU,WAAW,CAAC,GAAG,QAAQ,KAAK;CACzD;CAEA,OAAO,UAAU,KAAK;AACxB;AAEA,SAAwB,MAAM;CAC5B,IAAI,QAAQ,OAAOC,cAAY,CAAC;CAEhC,MAAM,OAAO,WAAW;EACtB,OAAOC,OAAK,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CACrD;CAEA,UAAU,MAAM,OAAO,SAAS;CAEhC,OAAO;AACT;AAEA,SAAgB,OAAO;CACrB,OAAO,IAAI,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,EAAG;AAChD;;;AC5CA,SAAS,OAAO,GAAG;CACjB,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI;AAC5B;AAEA,SAAS,SAAS,GAAG;CACnB,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;AAC7C;AAEA,SAAwB,SAAS;CAC/B,IAAI,UAAU,WAAW,GACrB,QAAQ,CAAC,GAAG,CAAC,GACb,QAAQ,OACR;CAEJ,SAAS,MAAM,GAAG;EAChB,IAAI,IAAI,SAAS,QAAQ,CAAC,CAAC;EAC3B,OAAO,MAAM,CAAC,IAAI,UAAU,QAAQ,KAAK,MAAM,CAAC,IAAI;CACtD;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC;CACjC;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,QAAQ,OAAO,CAAC,GAAG,SAAS,QAAQ,OAAO;CACxE;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,OAAO,QAAQ,MAAM,KAAK,GAAGC,QAAM,EAAA,CAAG,IAAI,MAAM,CAAC,GAAG,SAAS,MAAM,MAAM;CAC9G;CAEA,MAAM,aAAa,SAAS,GAAG;EAC7B,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI;CAClC;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS;CACnD;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,MAAM,CAAC,GAAG,SAAS,QAAQ,MAAM;CACtE;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,OAAO,QAAQ,OAAO,GAAG,KAAK,CAAC,CACjC,MAAM,KAAK,CAAC,CACZ,MAAM,QAAQ,MAAM,CAAC,CAAC,CACtB,QAAQ,OAAO;CACtB;CAEA,UAAU,MAAM,OAAO,SAAS;CAEhC,OAAO,UAAU,KAAK;AACxB;;;AC3DA,SAAwB,WAAW;CACjC,IAAI,SAAS,CAAC,GACV,QAAQ,CAAC,GACT,aAAa,CAAC,GACd;CAEJ,SAAS,UAAU;EACjB,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,MAAM;EACvC,aAAa,IAAI,MAAM,IAAI,CAAC;EAC5B,OAAO,EAAE,IAAI,GAAG,WAAW,IAAI,KAAKC,eAAU,QAAQ,IAAI,CAAC;EAC3D,OAAO;CACT;CAEA,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,UAAU,MAAMC,YAAO,YAAY,CAAC;CAC1E;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,IAAI,IAAI,MAAM,QAAQ,CAAC;EACvB,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAC1B,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,IACnC,IAAI,WAAW,SAAS,WAAW,KAAK,OAAO,OAAO,SAAS,EACjE;CACF;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,IAAI,CAAC,UAAU,QAAQ,OAAO,OAAO,MAAM;EAC3C,SAAS,CAAC;EACV,KAAK,IAAI,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC;EAC/D,OAAO,KAAK,SAAS;EACrB,OAAO,QAAQ;CACjB;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,KAAK,MAAM,MAAM;CAC7E;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,YAAY,WAAW;EAC3B,OAAO,WAAW,MAAM;CAC1B;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,SAAS,CAAC,CACZ,OAAO,MAAM,CAAC,CACd,MAAM,KAAK,CAAC,CACZ,QAAQ,OAAO;CACtB;CAEA,OAAO,UAAU,MAAM,OAAO,SAAS;AACzC;;;ACpDA,SAAwB,WAAW;CACjC,IAAI,KAAK,GACL,KAAK,GACL,IAAI,GACJ,SAAS,CAAC,EAAG,GACb,QAAQ,CAAC,GAAG,CAAC,GACb;CAEJ,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,KAAK,IAAI,MAAMC,YAAO,QAAQ,GAAG,GAAG,CAAC,KAAK;CAChE;CAEA,SAAS,UAAU;EACjB,IAAI,IAAI;EACR,SAAS,IAAI,MAAM,CAAC;EACpB,OAAO,EAAE,IAAI,GAAG,OAAO,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI;EACjE,OAAO;CACT;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,EAAE;CACnF;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,KAAK,QAAQ,MAAM,KAAK,CAAC,EAAA,CAAG,SAAS,GAAG,QAAQ,KAAK,MAAM,MAAM;CAC9F;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,IAAI,IAAI,MAAM,QAAQ,CAAC;EACvB,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAClB,IAAI,IAAI,CAAC,IAAI,OAAO,EAAE,IACtB,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAC3B,CAAC,OAAO,IAAI,IAAI,OAAO,EAAE;CACjC;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,aAAa,WAAW;EAC5B,OAAO,OAAO,MAAM;CACtB;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,SAAS,CAAC,CACZ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAChB,MAAM,KAAK,CAAC,CACZ,QAAQ,OAAO;CACtB;CAEA,OAAO,UAAU,MAAM,UAAU,KAAK,GAAG,SAAS;AACpD;;;ACpDA,SAAwB,YAAY;CAClC,IAAI,SAAS,CAAC,EAAG,GACb,QAAQ,CAAC,GAAG,CAAC,GACb,SACA,IAAI;CAER,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,KAAK,IAAI,MAAMC,YAAO,QAAQ,GAAG,GAAG,CAAC,KAAK;CAChE;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,SAAS,MAAM,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,OAAO,QAAQ,MAAM,SAAS,CAAC,GAAG,SAAS,OAAO,MAAM;CAC1H;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,MAAM,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,OAAO,QAAQ,MAAM,SAAS,CAAC,GAAG,SAAS,MAAM,MAAM;CACxH;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,IAAI,IAAI,MAAM,QAAQ,CAAC;EACvB,OAAO,CAAC,OAAO,IAAI,IAAI,OAAO,EAAE;CAClC;CAEA,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,UAAU,CAAC,CACb,OAAO,MAAM,CAAC,CACd,MAAM,KAAK,CAAC,CACZ,QAAQ,OAAO;CACtB;CAEA,OAAO,UAAU,MAAM,OAAO,SAAS;AACzC;;;ACtCA,MAAM,qBAAK,IAAI,KAAG;AAAG,MAAA,qBAAK,IAAI,KAAG;AAEjC,SAAgB,aAAa,QAAQ,SAAS,OAAO,OAAO;CAE1D,SAAS,SAAS,MAAM;EACtB,OAAO,OAAO,OAAO,UAAU,WAAW,oBAAI,IAAI,KAAG,oBAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG;CAC7E;CAEA,SAAS,SAAS,SAAS;EACzB,OAAO,OAAO,uBAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG;CACzC;CAEA,SAAS,QAAQ,SAAS;EACxB,OAAO,OAAO,uBAAO,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,QAAQ,MAAM,CAAC,GAAG,OAAO,IAAI,GAAG;CAC5E;CAEA,SAAS,SAAS,SAAS;EACzB,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,KAAK,IAAI;EAClD,OAAO,OAAO,KAAK,KAAK,OAAO,KAAK;CACtC;CAEA,SAAS,UAAU,MAAM,SAAS;EAChC,OAAO,QAAQ,uBAAO,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,OAAO,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG;CAC/E;CAEA,SAAS,SAAS,OAAO,MAAM,SAAS;EACtC,MAAM,QAAQ,CAAC;EACf,QAAQ,SAAS,KAAK,KAAK;EAC3B,OAAO,QAAQ,OAAO,IAAI,KAAK,MAAM,IAAI;EACzC,IAAI,EAAE,QAAQ,SAAS,EAAE,OAAO,IAAI,OAAO;EAC3C,IAAI;EACJ;GAAG,MAAM,KAAK,2BAAW,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,OAAO,IAAI,GAAG,OAAO,KAAK;SACvE,WAAW,SAAS,QAAQ;EACnC,OAAO;CACT;CAEA,SAAS,UAAU,SAAS;EAC1B,OAAO,cAAc,SAAS;GAC5B,IAAI,QAAQ,MAAM,OAAO,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,QAAQ,OAAO,CAAC;EAC3E,IAAI,MAAM,SAAS;GACjB,IAAI,QAAQ,MAAM;IAChB,IAAI,OAAO,GAAG,OAAO,EAAE,QAAQ,GAC7B,OAAO,QAAQ,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI;SAC/B,OAAO,EAAE,QAAQ,GACtB,OAAO,QAAQ,MAAM,CAAE,GAAG,CAAC,KAAK,IAAI;GAExC;EACF,CAAC;CACH;CAEA,IAAI,OAAO;EACT,SAAS,SAAS,OAAO,QAAQ;GAC/B,GAAG,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,GAAG;GACnC,OAAO,EAAE,GAAG,OAAO,EAAE;GACrB,OAAO,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC;EACjC;EAEA,SAAS,SAAS,SAAS;GACzB,OAAO,KAAK,MAAM,IAAI;GACtB,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,OAAO,KAAK,OAClC,EAAE,OAAO,KAAK,WACd,SAAS,OAAO,SACX,MAAM,MAAM,CAAC,IAAI,SAAS,KAC1B,MAAM,SAAS,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC;EACpD;CACF;CAEA,OAAO;AACT;;;AClEA,MAAa,cAAc,mBAAmB,CAE9C,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,IAAI;AAC3B,IAAI,OAAO,QAAQ;CACjB,OAAO,MAAM;AACf,CAAC;AAGD,YAAY,SAAS,MAAM;CACzB,IAAI,KAAK,MAAM,CAAC;CAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO;CACrC,IAAI,EAAE,IAAI,IAAI,OAAO;CACrB,OAAO,cAAc,SAAS;EAC5B,KAAK,QAAQ,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC;CACvC,IAAI,MAAM,SAAS;EACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,CAAC;CAC/B,IAAI,OAAO,QAAQ;EACjB,QAAQ,MAAM,SAAS;CACzB,CAAC;AACH;AAE4B,YAAY;;;ACxBxC,MAAa,iBAAiB;AAC9B,MAAa,iBAAiB,iBAAiB;AAC/C,MAAa,eAAe,iBAAiB;AAC7C,MAAa,cAAc,eAAe;AAC1C,MAAa,eAAe,cAAc;AAC1C,MAAa,gBAAgB,cAAc;AAC3C,MAAa,eAAe,cAAc;;;ACH1C,MAAa,SAAS,cAAc,SAAS;CAC3C,KAAK,QAAQ,OAAO,KAAK,gBAAgB,CAAC;AAC5C,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,cAAc;AAC5C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,cAAc;AAC5B,CAAC;AAEsB,OAAO;;;ACV9B,MAAa,aAAa,cAAc,SAAS;CAC/C,KAAK,QAAQ,OAAO,KAAK,gBAAgB,IAAI,KAAK,WAAW,IAAI,cAAc;AACjF,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,cAAc;AAC5C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,WAAW;AACzB,CAAC;AAE0B,WAAW;AAEtC,MAAa,YAAY,cAAc,SAAS;CAC9C,KAAK,cAAc,GAAG,CAAC;AACzB,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,cAAc;AAC5C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,cAAc;AAC5B,CAAC;AAEyB,UAAU;;;ACtBpC,MAAa,WAAW,cAAc,SAAS;CAC7C,KAAK,QAAQ,OAAO,KAAK,gBAAgB,IAAI,KAAK,WAAW,IAAI,iBAAiB,KAAK,WAAW,IAAI,cAAc;AACtH,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,YAAY;AAC1C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,SAAS;AACvB,CAAC;AAEwB,SAAS;AAElC,MAAa,UAAU,cAAc,SAAS;CAC5C,KAAK,cAAc,GAAG,GAAG,CAAC;AAC5B,IAAI,MAAM,SAAS;CACjB,KAAK,QAAQ,CAAC,OAAO,OAAO,YAAY;AAC1C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,YAAY;AAC1B,CAAC;AAEuB,QAAQ;;;ACtBhC,MAAa,UAAU,cACrB,SAAQ,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC,IAC/B,MAAM,SAAS,KAAK,QAAQ,KAAK,QAAQ,IAAI,IAAI,IACjD,OAAO,SAAS,MAAM,SAAS,IAAI,kBAAkB,IAAI,MAAM,kBAAkB,KAAK,kBAAkB,cACzG,SAAQ,KAAK,QAAQ,IAAI,CAC3B;AAEwB,QAAQ;AAEhC,MAAa,SAAS,cAAc,SAAS;CAC3C,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;AAC7B,IAAI,MAAM,SAAS;CACjB,KAAK,WAAW,KAAK,WAAW,IAAI,IAAI;AAC1C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,WAAW,IAAI;AAC7B,CAAC;AAEsB,OAAO;AAE9B,MAAa,UAAU,cAAc,SAAS;CAC5C,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;AAC7B,IAAI,MAAM,SAAS;CACjB,KAAK,WAAW,KAAK,WAAW,IAAI,IAAI;AAC1C,IAAI,OAAO,QAAQ;CACjB,QAAQ,MAAM,SAAS;AACzB,IAAI,SAAS;CACX,OAAO,KAAK,MAAM,OAAO,WAAW;AACtC,CAAC;AAEuB,QAAQ;;;AC/BhC,SAAS,YAAY,GAAG;CACtB,OAAO,cAAc,SAAS;EAC5B,KAAK,QAAQ,KAAK,QAAQ,KAAK,KAAK,OAAO,IAAI,IAAI,KAAK,CAAC;EACzD,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;CAC1B,IAAI,MAAM,SAAS;EACjB,KAAK,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;CACxC,IAAI,OAAO,QAAQ;EACjB,QAAQ,MAAM,SAAS,IAAI,kBAAkB,IAAI,MAAM,kBAAkB,KAAK,kBAAkB;CAClG,CAAC;AACH;AAEA,MAAa,aAAa,YAAY,CAAC;AACvC,MAAa,aAAa,YAAY,CAAC;AACvC,MAAa,cAAc,YAAY,CAAC;AACxC,MAAa,gBAAgB,YAAY,CAAC;AAC1C,MAAa,eAAe,YAAY,CAAC;AACzC,MAAa,aAAa,YAAY,CAAC;AACvC,MAAa,eAAe,YAAY,CAAC;AAEd,WAAW;AACX,WAAW;AACV,YAAY;AACV,cAAc;AACf,aAAa;AACf,WAAW;AACT,aAAa;AAE1C,SAAS,WAAW,GAAG;CACrB,OAAO,cAAc,SAAS;EAC5B,KAAK,WAAW,KAAK,WAAW,KAAK,KAAK,UAAU,IAAI,IAAI,KAAK,CAAC;EAClE,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;CAC7B,IAAI,MAAM,SAAS;EACjB,KAAK,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC;CAC9C,IAAI,OAAO,QAAQ;EACjB,QAAQ,MAAM,SAAS;CACzB,CAAC;AACH;AAEA,MAAa,YAAY,WAAW,CAAC;AACrC,MAAa,YAAY,WAAW,CAAC;AACrC,MAAa,aAAa,WAAW,CAAC;AACtC,MAAa,eAAe,WAAW,CAAC;AACxC,MAAa,cAAc,WAAW,CAAC;AACvC,MAAa,YAAY,WAAW,CAAC;AACrC,MAAa,cAAc,WAAW,CAAC;AAEb,UAAU;AACV,UAAU;AACT,WAAW;AACT,aAAa;AACd,YAAY;AACd,UAAU;AACR,YAAY;;;ACrDxC,MAAa,YAAY,cAAc,SAAS;CAC9C,KAAK,QAAQ,CAAC;CACd,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAC1B,IAAI,MAAM,SAAS;CACjB,KAAK,SAAS,KAAK,SAAS,IAAI,IAAI;AACtC,IAAI,OAAO,QAAQ;CACjB,OAAO,IAAI,SAAS,IAAI,MAAM,SAAS,KAAK,IAAI,YAAY,IAAI,MAAM,YAAY,KAAK;AACzF,IAAI,SAAS;CACX,OAAO,KAAK,SAAS;AACvB,CAAC;AAEyB,UAAU;AAEpC,MAAa,WAAW,cAAc,SAAS;CAC7C,KAAK,WAAW,CAAC;CACjB,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;AAC7B,IAAI,MAAM,SAAS;CACjB,KAAK,YAAY,KAAK,YAAY,IAAI,IAAI;AAC5C,IAAI,OAAO,QAAQ;CACjB,OAAO,IAAI,YAAY,IAAI,MAAM,YAAY,KAAK,IAAI,eAAe,IAAI,MAAM,eAAe,KAAK;AACrG,IAAI,SAAS;CACX,OAAO,KAAK,YAAY;AAC1B,CAAC;AAEwB,SAAS;;;ACxBlC,MAAa,WAAW,cAAc,SAAS;CAC7C,KAAK,SAAS,GAAG,CAAC;CAClB,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAC1B,IAAI,MAAM,SAAS;CACjB,KAAK,YAAY,KAAK,YAAY,IAAI,IAAI;AAC5C,IAAI,OAAO,QAAQ;CACjB,OAAO,IAAI,YAAY,IAAI,MAAM,YAAY;AAC/C,IAAI,SAAS;CACX,OAAO,KAAK,YAAY;AAC1B,CAAC;AAGD,SAAS,SAAS,MAAM;CACtB,OAAO,CAAC,SAAS,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,cAAc,SAAS;EAC9E,KAAK,YAAY,KAAK,MAAM,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC;EACvD,KAAK,SAAS,GAAG,CAAC;EAClB,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;CAC1B,IAAI,MAAM,SAAS;EACjB,KAAK,YAAY,KAAK,YAAY,IAAI,OAAO,CAAC;CAChD,CAAC;AACH;AAEyB,SAAS;AAElC,MAAa,UAAU,cAAc,SAAS;CAC5C,KAAK,YAAY,GAAG,CAAC;CACrB,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;AAC7B,IAAI,MAAM,SAAS;CACjB,KAAK,eAAe,KAAK,eAAe,IAAI,IAAI;AAClD,IAAI,OAAO,QAAQ;CACjB,OAAO,IAAI,eAAe,IAAI,MAAM,eAAe;AACrD,IAAI,SAAS;CACX,OAAO,KAAK,eAAe;AAC7B,CAAC;AAGD,QAAQ,SAAS,MAAM;CACrB,OAAO,CAAC,SAAS,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,cAAc,SAAS;EAC9E,KAAK,eAAe,KAAK,MAAM,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC;EAC7D,KAAK,YAAY,GAAG,CAAC;EACrB,KAAK,YAAY,GAAG,GAAG,GAAG,CAAC;CAC7B,IAAI,MAAM,SAAS;EACjB,KAAK,eAAe,KAAK,eAAe,IAAI,OAAO,CAAC;CACtD,CAAC;AACH;AAEwB,QAAQ;;;ACrChC,SAAS,OAAO,MAAM,OAAO,MAAM,KAAK,MAAM,QAAQ;CAEpD,MAAM,gBAAgB;EACpB;GAAC;GAAS;GAAQ;EAAc;EAChC;GAAC;GAAS;GAAI,IAAI;EAAc;EAChC;GAAC;GAAQ;GAAI,KAAK;EAAc;EAChC;GAAC;GAAQ;GAAI,KAAK;EAAc;EAChC;GAAC;GAAS;GAAQ;EAAc;EAChC;GAAC;GAAS;GAAI,IAAI;EAAc;EAChC;GAAC;GAAQ;GAAI,KAAK;EAAc;EAChC;GAAC;GAAQ;GAAI,KAAK;EAAc;EAChC;GAAG;GAAO;GAAQ;EAAc;EAChC;GAAG;GAAO;GAAI,IAAI;EAAc;EAChC;GAAG;GAAO;GAAI,IAAI;EAAc;EAChC;GAAG;GAAM;GAAI,KAAK;EAAc;EAChC;GAAI;GAAM;GAAQ;EAAc;EAChC;GAAI;GAAM;GAAI,IAAI;EAAc;EAChC;GAAG;GAAO;GAAQ;EAAc;EAChC;GAAE;GAAQ;GAAQ;EAAc;EAChC;GAAE;GAAQ;GAAI,IAAI;EAAc;EAChC;GAAG;GAAO;GAAQ;EAAc;CAClC;CAEA,SAAS,MAAM,OAAO,MAAM,OAAO;EACjC,MAAM,UAAU,OAAO;EACvB,IAAI,SAAS,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK;EACzC,MAAM,WAAW,SAAS,OAAO,MAAM,UAAU,aAAa,QAAQ,aAAa,OAAO,MAAM,KAAK;EACrG,MAAM,QAAQ,WAAW,SAAS,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;EAC7D,OAAO,UAAU,MAAM,QAAQ,IAAI;CACrC;CAEA,SAAS,aAAa,OAAO,MAAM,OAAO;EACxC,MAAM,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI;EACxC,MAAM,IAAI,UAAU,KAAI,UAAU,IAAI,CAAC,CAAC,MAAM,eAAe,MAAM;EACnE,IAAI,MAAM,cAAc,QAAQ,OAAO,KAAK,MAAM,SAAS,QAAQ,cAAc,OAAO,cAAc,KAAK,CAAC;EAC5G,IAAI,MAAM,GAAG,OAAO,YAAY,MAAM,KAAK,IAAI,SAAS,OAAO,MAAM,KAAK,GAAG,CAAC,CAAC;EAC/E,MAAM,CAAC,GAAG,QAAQ,cAAc,SAAS,cAAc,IAAI,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC,KAAK,SAAS,IAAI,IAAI;EAC1G,OAAO,EAAE,MAAM,IAAI;CACrB;CAEA,OAAO,CAAC,OAAO,YAAY;AAC7B;AAEA,MAAM,CAAC,UAAU,mBAAmB,OAAO,SAAS,UAAU,WAAW,SAAS,SAAS,SAAS;AACpG,MAAM,CAAC,WAAW,oBAAoB,OAAO,UAAU,WAAW,YAAY,SAAS,UAAU,UAAU;;;AC1C3G,SAAS,UAAU,GAAG;CACpB,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK;EACzB,IAAI,OAAO,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;EACpD,KAAK,YAAY,EAAE,CAAC;EACpB,OAAO;CACT;CACA,OAAO,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACnD;AAEA,SAAS,QAAQ,GAAG;CAClB,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK;EACzB,IAAI,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;EAC9D,KAAK,eAAe,EAAE,CAAC;EACvB,OAAO;CACT;CACA,OAAO,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D;AAEA,SAAS,QAAQ,GAAG,GAAG,GAAG;CACxB,OAAO;EAAI;EAAM;EAAM;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC;AAClD;AAEA,SAAwB,aAAa,QAAQ;CAC3C,IAAI,kBAAkB,OAAO,UACzB,cAAc,OAAO,MACrB,cAAc,OAAO,MACrB,iBAAiB,OAAO,SACxB,kBAAkB,OAAO,MACzB,uBAAuB,OAAO,WAC9B,gBAAgB,OAAO,QACvB,qBAAqB,OAAO;CAEhC,IAAI,WAAW,SAAS,cAAc,GAClC,eAAe,aAAa,cAAc,GAC1C,YAAY,SAAS,eAAe,GACpC,gBAAgB,aAAa,eAAe,GAC5C,iBAAiB,SAAS,oBAAoB,GAC9C,qBAAqB,aAAa,oBAAoB,GACtD,UAAU,SAAS,aAAa,GAChC,cAAc,aAAa,aAAa,GACxC,eAAe,SAAS,kBAAkB,GAC1C,mBAAmB,aAAa,kBAAkB;CAEtD,IAAI,UAAU;EACZ,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACP;CAEA,IAAI,aAAa;EACf,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACP;CAEA,IAAI,SAAS;EACX,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;CACP;CAGA,QAAQ,IAAI,UAAU,aAAa,OAAO;CAC1C,QAAQ,IAAI,UAAU,aAAa,OAAO;CAC1C,QAAQ,IAAI,UAAU,iBAAiB,OAAO;CAC9C,WAAW,IAAI,UAAU,aAAa,UAAU;CAChD,WAAW,IAAI,UAAU,aAAa,UAAU;CAChD,WAAW,IAAI,UAAU,iBAAiB,UAAU;CAEpD,SAAS,UAAU,WAAW,SAAS;EACrC,OAAO,SAAS,MAAM;GACpB,IAAI,SAAS,CAAC,GACV,IAAI,IACJ,IAAI,GACJ,IAAI,UAAU,QACd,GACA,KACA;GAEJ,IAAI,EAAE,gBAAgB,OAAO,uBAAO,IAAI,KAAK,CAAC,IAAI;GAElD,OAAO,EAAE,IAAI,GACX,IAAI,UAAU,WAAW,CAAC,MAAM,IAAI;IAClC,OAAO,KAAK,UAAU,MAAM,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,UAAU,OAAO,EAAE,CAAC,OAAO,MAAM,IAAI,UAAU,OAAO,EAAE,CAAC;SACxE,MAAM,MAAM,MAAM,MAAM;IAC7B,IAAI,SAAS,QAAQ,IAAI,IAAI,OAAO,MAAM,GAAG;IAC7C,OAAO,KAAK,CAAC;IACb,IAAI,IAAI;GACV;GAGF,OAAO,KAAK,UAAU,MAAM,GAAG,CAAC,CAAC;GACjC,OAAO,OAAO,KAAK,EAAE;EACvB;CACF;CAEA,SAAS,SAAS,WAAW,GAAG;EAC9B,OAAO,SAAS,QAAQ;GACtB,IAAI,IAAI,QAAQ,MAAM,KAAA,GAAW,CAAC,GAC9B,IAAI,eAAe,GAAG,WAAW,UAAU,IAAI,CAAC,GAChD,MAAM;GACV,IAAI,KAAK,OAAO,QAAQ,OAAO;GAG/B,IAAI,OAAO,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC;GACjC,IAAI,OAAO,GAAG,OAAO,IAAI,KAAK,EAAE,IAAI,OAAQ,OAAO,IAAI,EAAE,IAAI,EAAE;GAG/D,IAAI,KAAK,EAAE,OAAO,IAAI,EAAE,IAAI;GAG5B,IAAI,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,IAAI;GAGrC,IAAI,EAAE,MAAM,KAAA,GAAW,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI;GAG9C,IAAI,OAAO,GAAG;IACZ,IAAI,EAAE,IAAI,KAAK,EAAE,IAAI,IAAI,OAAO;IAChC,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI;IACvB,IAAI,OAAO,GAAG;KACZ,OAAO,QAAQ,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,UAAU;KACzD,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,IAAI;KACnE,OAAO,OAAO,OAAO,OAAO,EAAE,IAAI,KAAK,CAAC;KACxC,EAAE,IAAI,KAAK,eAAe;KAC1B,EAAE,IAAI,KAAK,YAAY;KACvB,EAAE,IAAI,KAAK,WAAW,KAAK,EAAE,IAAI,KAAK;IACxC,OAAO;KACL,OAAO,UAAU,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,OAAO;KACxD,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,IAAI;KACrE,OAAO,QAAQ,OAAO,OAAO,EAAE,IAAI,KAAK,CAAC;KACzC,EAAE,IAAI,KAAK,YAAY;KACvB,EAAE,IAAI,KAAK,SAAS;KACpB,EAAE,IAAI,KAAK,QAAQ,KAAK,EAAE,IAAI,KAAK;IACrC;GACF,OAAO,IAAI,OAAO,KAAK,OAAO,GAAG;IAC/B,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,IAAI;IAC3D,MAAM,OAAO,IAAI,QAAQ,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;IAChG,EAAE,IAAI;IACN,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,KAAK;GACzF;GAIA,IAAI,OAAO,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI,MAAM;IACnB,EAAE,KAAK,EAAE,IAAI;IACb,OAAO,QAAQ,CAAC;GAClB;GAGA,OAAO,UAAU,CAAC;EACpB;CACF;CAEA,SAAS,eAAe,GAAG,WAAW,QAAQ,GAAG;EAC/C,IAAI,IAAI,GACJ,IAAI,UAAU,QACd,IAAI,OAAO,QACX,GACA;EAEJ,OAAO,IAAI,GAAG;GACZ,IAAI,KAAK,GAAG,OAAO;GACnB,IAAI,UAAU,WAAW,GAAG;GAC5B,IAAI,MAAM,IAAI;IACZ,IAAI,UAAU,OAAO,GAAG;IACxB,QAAQ,OAAO,KAAK,OAAO,UAAU,OAAO,GAAG,IAAI;IACnD,IAAI,CAAC,UAAW,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,GAAI,OAAO;GACxD,OAAO,IAAI,KAAK,OAAO,WAAW,GAAG,GACnC,OAAO;EAEX;EAEA,OAAO;CACT;CAEA,SAAS,YAAY,GAAG,QAAQ,GAAG;EACjC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,CAAC,CAAC;EACrC,OAAO,KAAK,EAAE,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;CAC7E;CAEA,SAAS,kBAAkB,GAAG,QAAQ,GAAG;EACvC,IAAI,IAAI,eAAe,KAAK,OAAO,MAAM,CAAC,CAAC;EAC3C,OAAO,KAAK,EAAE,IAAI,mBAAmB,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;CACnF;CAEA,SAAS,aAAa,GAAG,QAAQ,GAAG;EAClC,IAAI,IAAI,UAAU,KAAK,OAAO,MAAM,CAAC,CAAC;EACtC,OAAO,KAAK,EAAE,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;CAC9E;CAEA,SAAS,gBAAgB,GAAG,QAAQ,GAAG;EACrC,IAAI,IAAI,aAAa,KAAK,OAAO,MAAM,CAAC,CAAC;EACzC,OAAO,KAAK,EAAE,IAAI,iBAAiB,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;CACjF;CAEA,SAAS,WAAW,GAAG,QAAQ,GAAG;EAChC,IAAI,IAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC;EACpC,OAAO,KAAK,EAAE,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;CAC5E;CAEA,SAAS,oBAAoB,GAAG,QAAQ,GAAG;EACzC,OAAO,eAAe,GAAG,iBAAiB,QAAQ,CAAC;CACrD;CAEA,SAAS,gBAAgB,GAAG,QAAQ,GAAG;EACrC,OAAO,eAAe,GAAG,aAAa,QAAQ,CAAC;CACjD;CAEA,SAAS,gBAAgB,GAAG,QAAQ,GAAG;EACrC,OAAO,eAAe,GAAG,aAAa,QAAQ,CAAC;CACjD;CAEA,SAAS,mBAAmB,GAAG;EAC7B,OAAO,qBAAqB,EAAE,OAAO;CACvC;CAEA,SAAS,cAAc,GAAG;EACxB,OAAO,gBAAgB,EAAE,OAAO;CAClC;CAEA,SAAS,iBAAiB,GAAG;EAC3B,OAAO,mBAAmB,EAAE,SAAS;CACvC;CAEA,SAAS,YAAY,GAAG;EACtB,OAAO,cAAc,EAAE,SAAS;CAClC;CAEA,SAAS,aAAa,GAAG;EACvB,OAAO,eAAe,EAAE,EAAE,SAAS,KAAK;CAC1C;CAEA,SAAS,cAAc,GAAG;EACxB,OAAO,IAAI,CAAC,EAAE,EAAE,SAAS,IAAI;CAC/B;CAEA,SAAS,sBAAsB,GAAG;EAChC,OAAO,qBAAqB,EAAE,UAAU;CAC1C;CAEA,SAAS,iBAAiB,GAAG;EAC3B,OAAO,gBAAgB,EAAE,UAAU;CACrC;CAEA,SAAS,oBAAoB,GAAG;EAC9B,OAAO,mBAAmB,EAAE,YAAY;CAC1C;CAEA,SAAS,eAAe,GAAG;EACzB,OAAO,cAAc,EAAE,YAAY;CACrC;CAEA,SAAS,gBAAgB,GAAG;EAC1B,OAAO,eAAe,EAAE,EAAE,YAAY,KAAK;CAC7C;CAEA,SAAS,iBAAiB,GAAG;EAC3B,OAAO,IAAI,CAAC,EAAE,EAAE,YAAY,IAAI;CAClC;CAEA,OAAO;EACL,QAAQ,SAAS,WAAW;GAC1B,IAAI,IAAI,UAAU,aAAa,IAAI,OAAO;GAC1C,EAAE,WAAW,WAAW;IAAE,OAAO;GAAW;GAC5C,OAAO;EACT;EACA,OAAO,SAAS,WAAW;GACzB,IAAI,IAAI,SAAS,aAAa,IAAI,KAAK;GACvC,EAAE,WAAW,WAAW;IAAE,OAAO;GAAW;GAC5C,OAAO;EACT;EACA,WAAW,SAAS,WAAW;GAC7B,IAAI,IAAI,UAAU,aAAa,IAAI,UAAU;GAC7C,EAAE,WAAW,WAAW;IAAE,OAAO;GAAW;GAC5C,OAAO;EACT;EACA,UAAU,SAAS,WAAW;GAC5B,IAAI,IAAI,SAAS,aAAa,IAAI,IAAI;GACtC,EAAE,WAAW,WAAW;IAAE,OAAO;GAAW;GAC5C,OAAO;EACT;CACF;AACF;AAEA,IAAI,OAAO;CAAC,KAAK;CAAI,KAAK;CAAK,KAAK;AAAG;AACnC,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,YAAY;AAEhB,SAAS,IAAI,OAAO,MAAM,OAAO;CAC/B,IAAI,OAAO,QAAQ,IAAI,MAAM,IACzB,UAAU,OAAO,CAAC,QAAQ,SAAS,IACnC,SAAS,OAAO;CACpB,OAAO,QAAQ,SAAS,QAAQ,IAAI,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,SAAS;AACtF;AAEA,SAAS,QAAQ,GAAG;CAClB,OAAO,EAAE,QAAQ,WAAW,MAAM;AACpC;AAEA,SAAS,SAAS,OAAO;CACvB,OAAO,IAAI,OAAO,SAAS,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,GAAG;AACpE;AAEA,SAAS,aAAa,OAAO;CAC3B,OAAO,IAAI,IAAI,MAAM,KAAK,MAAM,MAAM,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC;AAChE;AAEA,SAAS,yBAAyB,GAAG,QAAQ,GAAG;CAC9C,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,yBAAyB,GAAG,QAAQ,GAAG;CAC9C,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,sBAAsB,GAAG,QAAQ,GAAG;CAC3C,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,mBAAmB,GAAG,QAAQ,GAAG;CACxC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,sBAAsB,GAAG,QAAQ,GAAG;CAC3C,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,cAAc,GAAG,QAAQ,GAAG;CACnC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,UAAU,GAAG,QAAQ,GAAG;CAC/B,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,KAAK,OAAO,MAAO,IAAI,EAAE,EAAE,CAAC,UAAU;AAC3E;AAEA,SAAS,UAAU,GAAG,QAAQ,GAAG;CAC/B,IAAI,IAAI,+BAA+B,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAClE,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,IAAI,EAAE,EAAE,CAAC,UAAU;AAC5E;AAEA,SAAS,aAAa,GAAG,QAAQ,GAAG;CAClC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;AACrD;AAEA,SAAS,iBAAiB,GAAG,QAAQ,GAAG;CACtC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;AACjD;AAEA,SAAS,gBAAgB,GAAG,QAAQ,GAAG;CACrC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,eAAe,GAAG,QAAQ,GAAG;CACpC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AACvD;AAEA,SAAS,YAAY,GAAG,QAAQ,GAAG;CACjC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,aAAa,GAAG,QAAQ,GAAG;CAClC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,aAAa,GAAG,QAAQ,GAAG;CAClC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,kBAAkB,GAAG,QAAQ,GAAG;CACvC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,kBAAkB,GAAG,QAAQ,GAAG;CACvC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE,KAAK,GAAI,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU;AAChE;AAEA,SAAS,oBAAoB,GAAG,QAAQ,GAAG;CACzC,IAAI,IAAI,UAAU,KAAK,OAAO,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7C,OAAO,IAAI,IAAI,EAAE,EAAE,CAAC,SAAS;AAC/B;AAEA,SAAS,mBAAmB,GAAG,QAAQ,GAAG;CACxC,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,CAAC,CAAC;CACrC,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,0BAA0B,GAAG,QAAQ,GAAG;CAC/C,IAAI,IAAI,SAAS,KAAK,OAAO,MAAM,CAAC,CAAC;CACrC,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU;AAC9C;AAEA,SAAS,iBAAiB,GAAG,GAAG;CAC9B,OAAO,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC;AAC9B;AAEA,SAAS,aAAa,GAAG,GAAG;CAC1B,OAAO,IAAI,EAAE,SAAS,GAAG,GAAG,CAAC;AAC/B;AAEA,SAAS,aAAa,GAAG,GAAG;CAC1B,OAAO,IAAI,EAAE,SAAS,IAAI,MAAM,IAAI,GAAG,CAAC;AAC1C;AAEA,SAAS,gBAAgB,GAAG,GAAG;CAC7B,OAAO,IAAI,IAAI,QAAQ,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACpD;AAEA,SAAS,mBAAmB,GAAG,GAAG;CAChC,OAAO,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC;AACtC;AAEA,SAAS,mBAAmB,GAAG,GAAG;CAChC,OAAO,mBAAmB,GAAG,CAAC,IAAI;AACpC;AAEA,SAAS,kBAAkB,GAAG,GAAG;CAC/B,OAAO,IAAI,EAAE,SAAS,IAAI,GAAG,GAAG,CAAC;AACnC;AAEA,SAAS,cAAc,GAAG,GAAG;CAC3B,OAAO,IAAI,EAAE,WAAW,GAAG,GAAG,CAAC;AACjC;AAEA,SAAS,cAAc,GAAG,GAAG;CAC3B,OAAO,IAAI,EAAE,WAAW,GAAG,GAAG,CAAC;AACjC;AAEA,SAAS,0BAA0B,GAAG;CACpC,IAAI,MAAM,EAAE,OAAO;CACnB,OAAO,QAAQ,IAAI,IAAI;AACzB;AAEA,SAAS,uBAAuB,GAAG,GAAG;CACpC,OAAO,IAAI,WAAW,MAAM,SAAS,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AACvD;AAEA,SAAS,KAAK,GAAG;CACf,IAAI,MAAM,EAAE,OAAO;CACnB,OAAQ,OAAO,KAAK,QAAQ,IAAK,aAAa,CAAC,IAAI,aAAa,KAAK,CAAC;AACxE;AAEA,SAAS,oBAAoB,GAAG,GAAG;CACjC,IAAI,KAAK,CAAC;CACV,OAAO,IAAI,aAAa,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,IAAI,GAAG,CAAC;AACpF;AAEA,SAAS,0BAA0B,GAAG;CACpC,OAAO,EAAE,OAAO;AAClB;AAEA,SAAS,uBAAuB,GAAG,GAAG;CACpC,OAAO,IAAI,WAAW,MAAM,SAAS,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AACvD;AAEA,SAAS,WAAW,GAAG,GAAG;CACxB,OAAO,IAAI,EAAE,YAAY,IAAI,KAAK,GAAG,CAAC;AACxC;AAEA,SAAS,cAAc,GAAG,GAAG;CAC3B,IAAI,KAAK,CAAC;CACV,OAAO,IAAI,EAAE,YAAY,IAAI,KAAK,GAAG,CAAC;AACxC;AAEA,SAAS,eAAe,GAAG,GAAG;CAC5B,OAAO,IAAI,EAAE,YAAY,IAAI,KAAO,GAAG,CAAC;AAC1C;AAEA,SAAS,kBAAkB,GAAG,GAAG;CAC/B,IAAI,MAAM,EAAE,OAAO;CACnB,IAAK,OAAO,KAAK,QAAQ,IAAK,aAAa,CAAC,IAAI,aAAa,KAAK,CAAC;CACnE,OAAO,IAAI,EAAE,YAAY,IAAI,KAAO,GAAG,CAAC;AAC1C;AAEA,SAAS,WAAW,GAAG;CACrB,IAAI,IAAI,EAAE,kBAAkB;CAC5B,QAAQ,IAAI,IAAI,OAAO,KAAK,IAAI,QAC1B,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,IACtB,IAAI,IAAI,IAAI,KAAK,CAAC;AAC1B;AAEA,SAAS,oBAAoB,GAAG,GAAG;CACjC,OAAO,IAAI,EAAE,WAAW,GAAG,GAAG,CAAC;AACjC;AAEA,SAAS,gBAAgB,GAAG,GAAG;CAC7B,OAAO,IAAI,EAAE,YAAY,GAAG,GAAG,CAAC;AAClC;AAEA,SAAS,gBAAgB,GAAG,GAAG;CAC7B,OAAO,IAAI,EAAE,YAAY,IAAI,MAAM,IAAI,GAAG,CAAC;AAC7C;AAEA,SAAS,mBAAmB,GAAG,GAAG;CAChC,OAAO,IAAI,IAAI,OAAO,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAClD;AAEA,SAAS,sBAAsB,GAAG,GAAG;CACnC,OAAO,IAAI,EAAE,mBAAmB,GAAG,GAAG,CAAC;AACzC;AAEA,SAAS,sBAAsB,GAAG,GAAG;CACnC,OAAO,sBAAsB,GAAG,CAAC,IAAI;AACvC;AAEA,SAAS,qBAAqB,GAAG,GAAG;CAClC,OAAO,IAAI,EAAE,YAAY,IAAI,GAAG,GAAG,CAAC;AACtC;AAEA,SAAS,iBAAiB,GAAG,GAAG;CAC9B,OAAO,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC;AACpC;AAEA,SAAS,iBAAiB,GAAG,GAAG;CAC9B,OAAO,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC;AACpC;AAEA,SAAS,6BAA6B,GAAG;CACvC,IAAI,MAAM,EAAE,UAAU;CACtB,OAAO,QAAQ,IAAI,IAAI;AACzB;AAEA,SAAS,0BAA0B,GAAG,GAAG;CACvC,OAAO,IAAI,UAAU,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AACrD;AAEA,SAAS,QAAQ,GAAG;CAClB,IAAI,MAAM,EAAE,UAAU;CACtB,OAAQ,OAAO,KAAK,QAAQ,IAAK,YAAY,CAAC,IAAI,YAAY,KAAK,CAAC;AACtE;AAEA,SAAS,uBAAuB,GAAG,GAAG;CACpC,IAAI,QAAQ,CAAC;CACb,OAAO,IAAI,YAAY,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,GAAG,CAAC;AACpF;AAEA,SAAS,6BAA6B,GAAG;CACvC,OAAO,EAAE,UAAU;AACrB;AAEA,SAAS,0BAA0B,GAAG,GAAG;CACvC,OAAO,IAAI,UAAU,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AACrD;AAEA,SAAS,cAAc,GAAG,GAAG;CAC3B,OAAO,IAAI,EAAE,eAAe,IAAI,KAAK,GAAG,CAAC;AAC3C;AAEA,SAAS,iBAAiB,GAAG,GAAG;CAC9B,IAAI,QAAQ,CAAC;CACb,OAAO,IAAI,EAAE,eAAe,IAAI,KAAK,GAAG,CAAC;AAC3C;AAEA,SAAS,kBAAkB,GAAG,GAAG;CAC/B,OAAO,IAAI,EAAE,eAAe,IAAI,KAAO,GAAG,CAAC;AAC7C;AAEA,SAAS,qBAAqB,GAAG,GAAG;CAClC,IAAI,MAAM,EAAE,UAAU;CACtB,IAAK,OAAO,KAAK,QAAQ,IAAK,YAAY,CAAC,IAAI,YAAY,KAAK,CAAC;CACjE,OAAO,IAAI,EAAE,eAAe,IAAI,KAAO,GAAG,CAAC;AAC7C;AAEA,SAAS,gBAAgB;CACvB,OAAO;AACT;AAEA,SAAS,uBAAuB;CAC9B,OAAO;AACT;AAEA,SAAS,oBAAoB,GAAG;CAC9B,OAAO,CAAC;AACV;AAEA,SAAS,2BAA2B,GAAG;CACrC,OAAO,KAAK,MAAM,CAAC,IAAI,GAAI;AAC7B;;;ACtrBA,IAAI;AACJ,IAAW;AAEX,IAAW;AAGX,cAAc;CACZ,UAAU;CACV,MAAM;CACN,MAAM;CACN,SAAS,CAAC,MAAM,IAAI;CACpB,MAAM;EAAC;EAAU;EAAU;EAAW;EAAa;EAAY;EAAU;CAAU;CACnF,WAAW;EAAC;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;CAAK;CAC3D,QAAQ;EAAC;EAAW;EAAY;EAAS;EAAS;EAAO;EAAQ;EAAQ;EAAU;EAAa;EAAW;EAAY;CAAU;CACjI,aAAa;EAAC;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;EAAO;CAAK;AAClG,CAAC;AAED,SAAwB,cAAc,YAAY;CAChD,SAAS,aAAa,UAAU;CAChC,aAAa,OAAO;CACpB,AAAY,OAAO;CACnB,YAAY,OAAO;CACnB,AAAW,OAAO;CAClB,OAAO;AACT;;;ACpBA,SAAS,KAAK,GAAG;CACf,OAAO,IAAI,KAAK,CAAC;AACnB;AAEA,SAAS,OAAO,GAAG;CACjB,OAAO,aAAa,OAAO,CAAC,IAAI,iBAAC,IAAI,KAAK,CAAC,CAAC;AAC9C;AAEA,SAAgB,SAAS,OAAO,cAAc,MAAM,OAAO,MAAM,KAAK,MAAM,QAAQ,QAAQ,QAAQ;CAClG,IAAI,QAAQ,WAAW,GACnB,SAAS,MAAM,QACf,SAAS,MAAM;CAEnB,IAAI,oBAAoB,OAAO,KAAK,GAChC,eAAe,OAAO,KAAK,GAC3B,eAAe,OAAO,OAAO,GAC7B,aAAa,OAAO,OAAO,GAC3B,YAAY,OAAO,OAAO,GAC1B,aAAa,OAAO,OAAO,GAC3B,cAAc,OAAO,IAAI,GACzB,aAAa,OAAO,IAAI;CAE5B,SAAS,WAAW,MAAM;EACxB,QAAQ,OAAO,IAAI,IAAI,OAAO,oBACxB,OAAO,IAAI,IAAI,OAAO,eACtB,KAAK,IAAI,IAAI,OAAO,eACpB,IAAI,IAAI,IAAI,OAAO,aACnB,MAAM,IAAI,IAAI,OAAQ,KAAK,IAAI,IAAI,OAAO,YAAY,aACtD,KAAK,IAAI,IAAI,OAAO,cACpB,WAAA,CAAY,IAAI;CACxB;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC;CAC3B;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,SAAS,OAAO,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI;CAC7E;CAEA,MAAM,QAAQ,SAAS,UAAU;EAC/B,IAAI,IAAI,OAAO;EACf,OAAO,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,IAAI,YAAY,OAAO,KAAK,QAAQ;CACtE;CAEA,MAAM,aAAa,SAAS,OAAO,WAAW;EAC5C,OAAO,aAAa,OAAO,aAAa,OAAO,SAAS;CAC1D;CAEA,MAAM,OAAO,SAAS,UAAU;EAC9B,IAAI,IAAI,OAAO;EACf,IAAI,CAAC,YAAY,OAAO,SAAS,UAAU,YAAY,WAAW,aAAa,EAAE,IAAI,EAAE,EAAE,SAAS,IAAI,YAAY,OAAO,KAAK,QAAQ;EACtI,OAAO,WAAW,OAAO,KAAK,GAAG,QAAQ,CAAC,IAAI;CAChD;CAEA,MAAM,OAAO,WAAW;EACtB,OAAOC,OAAK,OAAO,SAAS,OAAO,cAAc,MAAM,OAAO,MAAM,KAAK,MAAM,QAAQ,QAAQ,MAAM,CAAC;CACxG;CAEA,OAAO;AACT;AAEA,SAAwB,OAAO;CAC7B,OAAO,UAAU,MAAM,SAAS,WAAW,kBAAkB,UAAU,WAAWC,YAAU,SAAS,UAAU,YAAYC,QAAY,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,KAAM,GAAG,CAAC,GAAG,IAAI,KAAK,KAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS;AACpN;;;ACjEA,SAAwB,UAAU;CAChC,OAAO,UAAU,MAAM,SAAS,UAAU,iBAAiB,SAAS,UAAUC,WAAS,QAAQ,SAAS,WAAWC,QAAW,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,KAAM,GAAG,CAAC,GAAG,KAAK,IAAI,KAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS;AAC1M;;;ACCA,SAASC,gBAAc;CACrB,IAAI,KAAK,GACL,KAAK,GACL,IACA,IACA,KACA,WACA,eAAeC,YACf,QAAQ,OACR;CAEJ,SAAS,MAAM,GAAG;EAChB,OAAO,KAAK,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,UAAU,aAAa,QAAQ,IAAI,MAAO,KAAK,UAAU,CAAC,IAAI,MAAM,KAAK,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;CACvJ;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,CAAC,IAAI,MAAM,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,GAAG,MAAM,OAAO,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS,CAAC,IAAI,EAAE;CACpJ;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS;CACnD;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,eAAe,GAAG,SAAS;CACxD;CAEA,SAAS,MAAM,aAAa;EAC1B,OAAO,SAAS,GAAG;GACjB,IAAI,IAAI;GACR,OAAO,UAAU,UAAU,CAAC,IAAI,MAAM,GAAG,eAAe,YAAY,IAAI,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;EACzH;CACF;CAEA,MAAM,QAAQ,MAAMC,aAAW;CAE/B,MAAM,aAAa,MAAMC,aAAgB;CAEzC,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,OAAO,SAAS,GAAG;EACjB,YAAY,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAAM,OAAO,KAAK,IAAI,KAAK,KAAK;EACvE,OAAO;CACT;AACF;AAEA,SAAgB,KAAK,QAAQ,QAAQ;CACnC,OAAO,OACF,OAAO,OAAO,OAAO,CAAC,CAAC,CACvB,aAAa,OAAO,aAAa,CAAC,CAAC,CACnC,MAAM,OAAO,MAAM,CAAC,CAAC,CACrB,QAAQ,OAAO,QAAQ,CAAC;AAC/B;AAEA,SAAwB,aAAa;CACnC,IAAI,QAAQ,UAAUH,cAAY,CAAC,CAACC,UAAQ,CAAC;CAE7C,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,WAAW,CAAC;CACjC;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,gBAAgB;CAC9B,IAAI,QAAQ,QAAQD,cAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;CAEjD,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC;CACvD;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,mBAAmB;CACjC,IAAI,QAAQ,UAAUA,cAAY,CAAC;CAEnC,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,iBAAiB,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CAClE;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,gBAAgB;CAC9B,IAAI,QAAQ,OAAOA,cAAY,CAAC;CAEhC,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CAC/D;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,iBAAiB;CAC/B,OAAO,cAAc,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,EAAG;AAC1D;;;ACtGA,SAAwB,qBAAqB;CAC3C,IAAI,SAAS,CAAC,GACV,eAAeI;CAEnB,SAAS,MAAM,GAAG;EAChB,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,cAAcC,YAAO,QAAQ,GAAG,CAAC,IAAI,MAAM,OAAO,SAAS,EAAE;CACvG;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,IAAI,CAAC,UAAU,QAAQ,OAAO,OAAO,MAAM;EAC3C,SAAS,CAAC;EACV,KAAK,IAAI,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC;EAC/D,OAAO,KAAK,SAAS;EACrB,OAAO;CACT;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,eAAe,GAAG,SAAS;CACxD;CAEA,MAAM,QAAQ,WAAW;EACvB,OAAO,OAAO,KAAK,GAAG,MAAM,aAAa,KAAK,OAAO,SAAS,EAAE,CAAC;CACnE;CAEA,MAAM,YAAY,SAAS,GAAG;EAC5B,OAAO,MAAM,KAAK,EAAC,QAAQ,IAAI,EAAC,IAAI,GAAG,MAAMC,WAAS,QAAQ,IAAI,CAAC,CAAC;CACtE;CAEA,MAAM,OAAO,WAAW;EACtB,OAAO,mBAAmB,YAAY,CAAC,CAAC,OAAO,MAAM;CACvD;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;;;AC5BA,SAAS,cAAc;CACrB,IAAI,KAAK,GACL,KAAK,IACL,KAAK,GACL,IAAI,GACJ,IACA,IACA,IACA,KACA,KACA,eAAeC,YACf,WACA,QAAQ,OACR;CAEJ,SAAS,MAAM,GAAG;EAChB,OAAO,MAAM,IAAI,CAAC,CAAC,IAAI,WAAW,IAAI,OAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,OAAO,IAAI,IAAI,IAAI,KAAK,MAAM,MAAM,aAAa,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;CAC7J;CAEA,MAAM,SAAS,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,CAAC,IAAI,IAAI,MAAM,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,GAAG,MAAM,OAAO,KAAK,IAAI,MAAO,KAAK,KAAK,MAAM,OAAO,KAAK,IAAI,MAAO,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,SAAS;GAAC;GAAI;GAAI;EAAE;CACrP;CAEA,MAAM,QAAQ,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS;CACnD;CAEA,MAAM,eAAe,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,eAAe,GAAG,SAAS;CACxD;CAEA,SAAS,MAAM,aAAa;EAC1B,OAAO,SAAS,GAAG;GACjB,IAAI,IAAI,IAAI;GACZ,OAAO,UAAU,UAAU,CAAC,IAAI,IAAI,MAAM,GAAG,eAAe,UAAU,aAAa;IAAC;IAAI;IAAI;GAAE,CAAC,GAAG,SAAS;IAAC,aAAa,CAAC;IAAG,aAAa,EAAG;IAAG,aAAa,CAAC;GAAC;EACjK;CACF;CAEA,MAAM,QAAQ,MAAMC,aAAW;CAE/B,MAAM,aAAa,MAAMC,aAAgB;CAEzC,MAAM,UAAU,SAAS,GAAG;EAC1B,OAAO,UAAU,UAAU,UAAU,GAAG,SAAS;CACnD;CAEA,OAAO,SAAS,GAAG;EACjB,YAAY,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAAM,OAAO,KAAK,IAAI,MAAO,KAAK,KAAK,MAAM,OAAO,KAAK,IAAI,MAAO,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK;EACpJ,OAAO;CACT;AACF;AAEA,SAAwB,YAAY;CAClC,IAAI,QAAQ,UAAU,YAAY,CAAC,CAACF,UAAQ,CAAC;CAE7C,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,UAAU,CAAC;CAChC;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,eAAe;CAC7B,IAAI,QAAQ,QAAQ,YAAY,CAAC,CAAC,CAAC,OAAO;EAAC;EAAK;EAAG;CAAE,CAAC;CAEtD,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC;CACtD;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,kBAAkB;CAChC,IAAI,QAAQ,UAAU,YAAY,CAAC;CAEnC,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,gBAAgB,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CACjE;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,eAAe;CAC7B,IAAI,QAAQ,OAAO,YAAY,CAAC;CAEhC,MAAM,OAAO,WAAW;EACtB,OAAO,KAAK,OAAO,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;CAC9D;CAEA,OAAO,iBAAiB,MAAM,OAAO,SAAS;AAChD;AAEA,SAAgB,gBAAgB;CAC9B,OAAO,aAAa,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,EAAG;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AErGA,SAAS,mBAAmB,eAAe;CACzC,IAAI,SAASG;CACb,IAAI,iBAAiB,UAAU,OAAO,OAAO,mBAAmB,YAC9D,OAAO,OAAO,cAAc,CAAC;CAE/B,IAAI,OAAO,QAAQ,OAAO,WAAW,aAAa,CAAC;CACnD,IAAI,QAAQ,UAAU,OAAO,OAAO,UAAU,YAC5C,OAAO,OAAO,KAAK,CAAC;AAGxB;;;;;;;AASA,SAAgB,+BAA+B,OAAO,YAAY,WAAW;CAC3E,IAAI,OAAO,UAAU,YACnB,OAAO,MAAM,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,SAAS;CAExD,IAAI,SAAS,MACX;CAEF,IAAI,kBAAkB,mBAAmB,KAAK;CAC9C,IAAI,mBAAmB,MACrB;CAEF,gBAAgB,OAAO,UAAU,CAAC,CAAC,MAAM,SAAS;CAClD,OAAO;AACT;AACA,SAAgB,uBAAuB,MAAM,eAAe,YAAY,WAAW;CACjF,IAAI,cAAc,QAAQ,aAAa,MACrC;CAEF,IAAI,OAAO,KAAK,UAAU,YACxB,OAAO,+BAA+B,KAAK,OAAO,YAAY,SAAS;CAEzE,OAAO,+BAA+B,eAAe,YAAY,SAAS;AAC5E;;;ACzCA,SAAS,eAAe,MAAM;CAC5B,OAAO,QAAQ,OAAO,WAAW,IAAI,CAAC;AACxC;AACA,SAAS,qBAAqB,MAAM;CAClC,OAAO,eAAe,IAAI,KAAKC;AACjC;AACA,IAAW,wBAAwB,YAAY,QAAQ,cAAc;CACnE,IAAI,cAAc,MAChB;CAEF,IAAI,QAAQ,WAAW,OACrB,OAAO,WAAW;CACpB,IAAI,UAAU,QAAQ;EACpB,IAAI,SAAS,cAAc,cAAc,UAAU,QAAQ,WAAW,KAAK,KAAK,UAAU,QAAQ,WAAW,KAAK,KAAK,UAAU,QAAQ,eAAe,KAAK,KAAK,CAAC,SACjK,OAAO;EAET,IAAI,SAAS,YACX,OAAO;EAET,OAAO;CACT;CACA,IAAI,OAAO,UAAU,UACnB,OAAO,qBAAqB,KAAK,IAAI,QAAQ;AAGjD;;;;;;;;;;;;;ACjBA,SAAgB,OAAO,UAAU,QAAQ;CACvC,IAAI,KAAK;CACT,IAAI,KAAK,SAAS;CAClB,IAAI,YAAY,SAAS,KAAK,SAAS,SAAS,SAAS;CACzD,OAAO,KAAK,IAAI;EACd,IAAI,MAAM,KAAK,OAAO,KAAK,MAAM,CAAC;EAClC,IAAI,YAAY,SAAS,OAAO,SAAS,SAAS,OAAO,QACvD,KAAK,MAAM;OAEX,KAAK;CAET;CACA,OAAO;AACT;;;;;AAMA,SAAgB,yBAAyB,OAAO,qBAAqB;CACnE,IAAI,CAAC,OACH;CAEF,IAAI,SAAS,wBAAwB,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB,MAAM,OAAO;CAGjH,IAAI,iBAAiB,OAAO,KAAI,MAAK;EACnC,IAAI;EACJ,QAAQ,SAAS,MAAM,CAAC,OAAO,QAAQ,WAAW,KAAK,IAAI,SAAS;CACtE,CAAC;CACD,IAAI,QAAQ,MAAM,MAAM;CACxB,IAAI,OAAO,WAAW,KAAK,MAAM,SAAS,GACxC;CAEF,QAAO,eAAc;EACnB,IAAI,iBAAiB;EAErB,IAAI,QAAQ,OAAO,gBAAgB,UAAU;EAG7C,IAAI,SAAS,GACX,OAAO,OAAO;EAEhB,IAAI,SAAS,OAAO,QAClB,OAAO,OAAO,OAAO,SAAS;EAIhC,IAAI,aAAa,kBAAkB,eAAe,QAAQ,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB;EACzH,IAAI,cAAc,wBAAwB,eAAe,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;EACxI,IAAI,KAAK,IAAI,aAAa,SAAS,KAAK,KAAK,IAAI,aAAa,UAAU,GACtE,OAAO,OAAO,QAAQ;EAExB,OAAO,OAAO;CAChB;AACF;;;AChEA,SAAgB,4BAA4B,iBAAiB;CAC3D,IAAI,mBAAmB,MACrB;CAEF,IAAI,YAAY,mBAAmB,OAAO,gBAAgB,WAAW,YACnE,OAAO,gBAAgB,OAAO,KAAK,eAAe;CAEpD,OAAO,yBAAyB,iBAAiB,KAAA,CAAS;AAC5D;;;ACTA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAiC9D,IAAW,uBAAuB,CAAC,GAAG,MAAM;;;;;;AAM5C,IAAW,gBAAgB;CACzB,mBAAmB;CACnB,eAAe;CACf,yBAAyB;CACzB,OAAO;CACP,SAAS,KAAA;CACT,QAAQ,KAAA;CACR,QAAQ;CACR,MAAM;CACN,IAAI;CACJ,eAAe;CACf,UAAU;CACV,YAAY;CACZ,QAAQ;CACR,MAAM,KAAA;CACN,aAAa;CACb,SAAS;EACP,MAAM;EACN,OAAO;CACT;CACA,UAAU;CACV,OAAO;CACP,MAAM;CACN,WAAW;CACX,eAAe,KAAA;CACf,OAAO,KAAA;CACP,MAAM;CACN,MAAM,KAAA;CACN,WAAW;AACb;AACA,IAAW,iCAAiC,OAAO,WAAW;CAC5D,OAAO,MAAM,cAAc,MAAM;AACnC;AACA,IAAW,uBAAuB,OAAO,WAAW;CAClD,IAAI,OAAO,8BAA8B,OAAO,MAAM;CACtD,IAAI,QAAQ,MACV,OAAO;CAET,OAAO;AACT;;;;;;AAOA,IAAW,gBAAgB;CACzB,mBAAmB;CACnB,eAAe;CACf,yBAAyB;CACzB,OAAO;CACP,SAAS,KAAA;CACT,QAAQ;CACR,MAAM;CACN,IAAI;CACJ,eAAe;CACf,UAAU;CACV,YAAY;CACZ,QAAQ;CACR,MAAM,KAAA;CACN,aAAa;CACb,SAAS;EACP,KAAK;EACL,QAAQ;CACV;CACA,UAAU;CACV,OAAO;CACP,MAAM;CACN,WAAW;CACX,eAAe,KAAA;CACf,OAAO,KAAA;CACP,MAAM;CACN,MAAM,KAAA;CACN,WAAW;CACX,OAAA;AACF;AACA,IAAW,iCAAiC,OAAO,WAAW;CAC5D,OAAO,MAAM,cAAc,MAAM;AACnC;AACA,IAAW,uBAAuB,OAAO,WAAW;CAClD,IAAI,OAAO,8BAA8B,OAAO,MAAM;CACtD,IAAI,QAAQ,MACV,OAAO;CAET,OAAO;AACT;AACA,IAAW,gBAAgB;CACzB,QAAQ,CAAC,GAAG,MAAM;CAClB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,yBAAyB;CACzB,SAAS,KAAA;CACT,IAAI;CACJ,MAAM;CACN,OAAO,CAAC,IAAI,EAAE;CACd,OAAO;CACP,MAAM;CACN,MAAM;AACR;AACA,IAAW,uBAAuB,OAAO,WAAW;CAClD,IAAI,OAAO,MAAM,cAAc,MAAM;CACrC,IAAI,QAAQ,MACV,OAAO;CAET,OAAO;AACT;AACA,IAAW,kBAAkB,OAAO,UAAU,WAAW;CACvD,QAAQ,UAAR;EACE,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,aAED,OAAO,gBAAgB,OAAO,MAAM;EAExC,KAAK,cAED,OAAO,iBAAiB,OAAO,MAAM;EAEzC,SACE,MAAM,IAAI,MAAM,yBAAyB,OAAO,QAAQ,CAAC;CAC7D;AACF;AACA,IAAI,+BAA+B,OAAO,UAAU,WAAW;CAC7D,QAAQ,UAAR;EACE,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,SACE,MAAM,IAAI,MAAM,yBAAyB,OAAO,QAAQ,CAAC;CAC7D;AACF;;;;;;;;AASA,IAAW,gCAAgC,OAAO,UAAU,WAAW;CACrE,QAAQ,UAAR;EACE,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,SAED,OAAO,oBAAoB,OAAO,MAAM;EAE5C,KAAK,aAED,OAAO,gBAAgB,OAAO,MAAM;EAExC,KAAK,cAED,OAAO,iBAAiB,OAAO,MAAM;EAEzC,SACE,MAAM,IAAI,MAAM,yBAAyB,OAAO,QAAQ,CAAC;CAC7D;AACF;;;;;AAMA,IAAW,gBAAe,UAAS,MAAM,eAAe,eAAe,MAAK,SAAQ,KAAK,SAAS,KAAK,KAAK,MAAM,eAAe,WAAW,MAAK,SAAQ,KAAK,SAAS,WAAW;;;;;;;;AASlL,SAAgB,kBAAkB,UAAU,QAAQ;CAClD,QAAO,SAAQ;EACb,QAAQ,UAAR;GACE,KAAK,SAEH,OAAO,aAAa,QAAQ,KAAK,YAAY;GAC/C,KAAK,SACH,OAAO,aAAa,QAAQ,KAAK,YAAY;GAC/C,KAAK,SACH,OAAO,aAAa,QAAQ,KAAK,YAAY;GAC/C,KAAK,aACH,OAAO,iBAAiB,QAAQ,KAAK,gBAAgB;GACvD,KAAK,cACH,OAAO,kBAAkB,QAAQ,KAAK,iBAAiB;GACzD,SACE,OAAO;EACX;CACF;AACF;AAGA,IAAW,kCAAiC,UAAS,MAAM,eAAe;AAC1E,IAAI,sBAAsB,eAAe,CAAC,cAAc,UAAU,GAAG,iBAAiB;AACtF,IAAW,iCAAiC,gBAAgB,cAAc,kBAAkB,eAAe,OAAO,aAAa,CAAC,CAAC,QAAO,SAAQ;CAC9I,KAAK,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,mBAAmB,MAC/F,OAAO;CAET,OAAO,CAAC,KAAK;AACf,CAAC;AACD,IAAW,+BAA+B,eAAe;CAAC;CAAgC;CAAgB;AAAmB,GAAG,+BAA+B,EAC7J,gBAAgB,EACd,qBAAqB,yBACvB,EACF,CAAC;AACD,IAAW,sCAAsC,eAAe,CAAC,4BAA4B,IAAG,mBAAkB;CAChH,OAAO,eAAe,QAAO,SAAQ,KAAK,SAAS,UAAU,KAAK,SAAS,KAAK,CAAC,CAAC,OAAO,SAAS;AACpG,CAAC;AACD,IAAW,kCAAiC,mBAAkB,eAAe,QAAO,SAAQ,EAAE,aAAa,SAAS,KAAK,YAAY,KAAA,CAAS;AAC9I,IAAI,4CAA4C,eAAe,CAAC,4BAA4B,GAAG,8BAA8B;AAC7H,IAAW,6BAA4B,mBAAkB,eAAe,KAAI,SAAQ,KAAK,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC;;;;;;AAOrH,IAAW,uCAAuC,eAAe,CAAC,4BAA4B,IAAG,UAAS,MAAM,MAAK,SAAQ,CAAC,KAAK,IAAI,CAAC;;;;;;;AAQxI,IAAW,oCAAoC,eAAe,CAAC,4BAA4B,GAAG,2BAA2B,EACvH,gBAAgB,EACd,qBAAqB,yBACvB,EACF,CAAC;AACD,IAAW,wBAAwB,oBAAoB,SAAS;CAC9D,IAAI,iBAAiB,KAAK,WACxB,YAAY,mBAAmB,KAAK,IAAI,CAAC,IAAI,gBAC7C,iBAAiB,KAAK,gBACtB,eAAe,KAAK;CACtB,IAAI,mBAAmB,SAAS,GAgB9B,OAAO;CAET,OAAO,UAAU,MAAM,gBAAgB,eAAe,CAAC;AACzD;;;;;;;;AASA,IAAW,sBAAsB,eAAe,CAAC,mCAAmC,kDAAkD,GAAG,oBAAoB;AAC7J,IAAW,wBAAwB,MAAM,cAAc,UAAU;CAC/D,KAAK,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,YAAY,MACxF,OAAO,KAAK,KAAI,UAAS,EACvB,OAAO,kBAAkB,MAAM,aAAa,OAAO,EACrD,EAAE;CAEJ,IAAI,MAAM,SAAS,GACjB,OAAO,MAAM,KAAI,SAAQ,KAAK,OAAO,CAAC,CAAC,SAAQ,YAAW,KAAK,KAAI,WAAU,EAC3E,OAAO,kBAAkB,OAAO,OAAO,EACzC,EAAE,CAAC;CAEL,OAAO,KAAK,KAAI,WAAU,EACxB,OAAO,MACT,EAAE;AACJ;;;;;;;;;;;AAYA,IAAW,2BAA2B,eAAe,cAAc,OAAO,OAAO,sBAAsB,uBAAuB;CAC5H,IAAI,kBAAkB,MAAM,WAC1B,YAAY,oBAAoB,KAAK,IAAI,CAAC,IAAI,iBAC9C,iBAAiB,MAAM,gBACvB,eAAe,MAAM;CACvB,IAAI,gBAAgB,qBAAqB,eAAe,cAAc,KAAK;CAC3E,IAAI,yBAAyB,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,YAAY,QAAQ,mBAAmB,SAAS,GAKpJ,OAAO,CAAC,GAJa,UAAU,MAAM,gBAAgB,eAAe,CAC9B,CAAC,CAAC,KAAI,UAAS,EACnD,OAAO,kBAAkB,MAAM,aAAa,OAAO,EACrD,EAAE,CAAC,CAAC,QAAO,OAAM,GAAG,SAAS,IACD,GAAG,GAAG,aAAa;CAEjD,OAAO;AACT;;;;;;;AAQA,IAAW,yBAAyB,eAAe;CAAC;CAAqB;CAAgB;CAA8B;CAAoD;CAAsC;AAAiC,GAAG,uBAAuB;AAC5Q,SAAS,WAAW,KAAK;CACvB,IAAI,WAAW,GAAG,KAAK,eAAe,MAAM;EAC1C,IAAI,IAAI,OAAO,GAAG;EAClB,IAAI,oBAAoB,CAAC,GACvB,OAAO;CAEX;AAEF;AACA,SAAS,WAAW,KAAK;CACvB,IAAI,MAAM,QAAQ,GAAG,GAAG;EACtB,IAAI,UAAU,CAAC,WAAW,IAAI,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;EACrD,IAAI,yBAAyB,OAAO,GAClC,OAAO;EAET;CACF;CACA,IAAI,IAAI,WAAW,GAAG;CACtB,IAAI,KAAK,MACP;CAEF,OAAO,CAAC,GAAG,CAAC;AACd;AACA,SAAS,iBAAiB,MAAM;CAC9B,OAAO,KAAK,IAAI,UAAU,CAAC,CAAC,OAAO,QAAQ;AAC7C;AACA,SAAS,OAAO,GAAG,GAAG;CACpB,IAAI,OAAO,WAAW,CAAC;CACvB,IAAI,OAAO,WAAW,CAAC;CACvB,IAAI,QAAQ,QAAQ,QAAQ,MAC1B,OAAO;CAET,IAAI,QAAQ,MACV,OAAO;CAET,IAAI,QAAQ,MACV,OAAO;CAET,OAAO,OAAO;AAChB;AACA,IAAW,yBAAyB,eAAe,CAAC,sBAAsB,IAAG,gBAAe;CAC1F,OAAO,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,KAAI,SAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM;AAClH,CAAC;AACD,SAAgB,8BAA8B,UAAU,UAAU;CAChE,QAAQ,UAAR;EACE,KAAK,SACH,OAAO,SAAS,cAAc;EAChC,KAAK,SACH,OAAO,SAAS,cAAc;EAChC,SACE,OAAO;CACX;AACF;;;;;;;AAOA,SAAgB,wBAAwB,OAAO,cAAc,mBAAmB;CAC9E,IAAI,CAAC,mBACH,OAAO,CAAC;CAEV,IAAI,CAAC,kBAAkB,QACrB,OAAO,CAAC;CAEV,IAAI;CACJ,IAAI,OAAO,iBAAiB,YAAY,CAAC,MAAM,YAAY,GACzD,sBAAsB;MACjB,IAAI,MAAM,QAAQ,YAAY,GAAG;EACtC,IAAI,qBAAqB,iBAAiB,YAAY;EACtD,IAAI,mBAAmB,SAAS,GAC9B,sBAAsB,KAAK,IAAI,GAAG,kBAAkB;CAExD;CACA,IAAI,uBAAuB,MACzB,OAAO,CAAC;CAEV,OAAO,iBAAiB,kBAAkB,SAAQ,OAAM;EACtD,IAAI,aAAa,kBAAkB,OAAO,GAAG,OAAO;EACpD,IAAI,UAAU;EACd,IAAI,MAAM,QAAQ,UAAU,GAAG;GAC7B,IAAI,cAAcD,kBAAe,YAAY,CAAC;GAC9C,WAAW,YAAY;GACvB,YAAY,YAAY;EAC1B,OACE,WAAW,YAAY;EAEzB,IAAI,CAAC,oBAAoB,QAAQ,KAAK,CAAC,oBAAoB,SAAS,GAClE;EAEF,OAAO,CAAC,sBAAsB,UAAU,sBAAsB,SAAS;CACzE,CAAC,CAAC;AACJ;AACA,IAAW,qBAAoB,UAAS;CAGtC,OAAO,6BAA6B,OAFrB,sBAAsB,KAEa,GADrC,oBAAoB,KACyB,CAAC;AAC7D;AACA,IAAW,2BAA2B,eAAe,CAAC,iBAAiB,IAAG,SAAQ,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,OAAO;AAC1I,IAAW,6BAA6B,eAAe;CAAC;CAAqC;CAAoD;AAAiB,GAAG,2BAA2B;AAChM,IAAW,sBAAsB,eAAe,OAAO,iBAAiB,sBAAsB;CAE5F,IAAI,aAAa,MAAM,QAAQ,KAAK,SAAS;EAC3C,IAAI,KAAK,WAAW,MAClB,OAAO;EAET,IAAI,QAAQ,IAAI,KAAK;EACrB,IAAI,SAAS,MACX,QAAQ,CAAC;EAEX,MAAM,KAAK,IAAI;EACf,IAAI,KAAK,WAAW;EACpB,OAAO;CACT,GAAG,CAAiB,CAAC;CACrB,OAAO,OAAO,YAAY,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAI,UAAS;EAChE,IAAI,QAAQA,kBAAe,OAAO,CAAC,GACjC,UAAU,MAAM,IAChB,iBAAiB,MAAM;EACzB,IAAI,wBAAwB,oBAAoB,CAAC,GAAG,cAAc,CAAC,CAAC,QAAQ,IAAI;EAEhF,OAAO,CAAC,SAAS;GAEf,aAAa,eAAe,eAHf,sBAAsB,IAAI,wBAGI,GAAU,eAAe;GACpE,gBAAgB;EAClB,CAAC;CACH,CAAC,CAAC;AACJ;;;;;;AAOA,IAAW,oBAAoB,eAAe;CAAC;CAA4B;CAAqC;CAAuB;AAAuB,GAAG,kBAAkB;AACnL,IAAW,8BAA8B,aAAa,OAAO,UAAU,6BAA6B;CAClG,IAAI,iBAAiB,MAAM,gBACzB,eAAe,MAAM;CACvB,IAAI,4BAA4B,MAE9B;CAEF,IAAI,aAAa,SAEf;CAEF,OAAO,uBAAuB,aAAa,gBAAgB,YAAY;AACzE;AACA,IAAI,2BAA2B,eAAe,CAAC,cAAc,IAAG,iBAAgB,aAAa,iBAAiB;AAC9G,IAAW,uBAAsB,iBAAgB;CAC/C,IAAI;CACJ,IAAI,gBAAgB,QAAQ,EAAE,YAAY,eACxC,OAAO;CAET,IAAI,aAAa,UAAU,MACzB,OAAO,aAAa;CAEtB,IAAI,WAAW,gBAAgB,aAAa,SAAS,MAAM;EACzD,IAAI,aAAa,SAAS,UAAU;GAClC,IAAI,YAAY,iBAAiB,aAAa,KAAK;GACnD,OAAO,CAAC,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC;EACxD;EACA,IAAI,aAAa,SAAS,YACxB,OAAO,aAAa,MAAM,IAAI,MAAM;CAExC;CACA,QAAQ,uBAAuB,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,YAAY,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB;AACvL;AACA,IAAW,yBAAyB,eAAe,CAAC,cAAc,GAAG,mBAAmB;;;;;;;;;;;;;;AAexF,IAAW,iCAAiC,eAAe,CAAC,wBAAwB,wBAAwB,GAAG,4CAA4C;AAC3J,IAAW,4BAA4B,eAAe;CAAC;CAAmB;CAA4B;CAAc;AAA8B,GAAG,4BAA4B,EAC/K,gBAAgB,EACd,qBAAqB,0BACvB,EACF,CAAC;AACD,IAAW,6BAA4B,UAAS,MAAM;AACtD,IAAI,mCAAmC,wBAAwB,qBAAqB,aAAa;CAC/F,OAAO,uBAAuB,SAAQ,SAAQ;EAC5C,OAAO,oBAAoB,KAAK;CAClC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,QAAO,MAAK;EAC7B,OAAO,8BAA8B,UAAU,CAAC;CAClD,CAAC;AACH;AACA,IAAW,eAAe,SAAS,eAAe;CAChD,KAAK,IAAI,OAAO,UAAU,QAAQ,UAAU,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAClF,QAAQ,QAAQ,UAAU;CAE5B,IAAI,aAAa,QAAQ,OAAO,OAAO;CACvC,IAAI,WAAW,WAAW,GACxB;CAEF,IAAI,YAAY,WAAW,KAAK;CAGhC,OAAO,CAFG,KAAK,IAAI,GAAG,SAEZ,GADA,KAAK,IAAI,GAAG,SACP,CAAC;AAClB;AACA,IAAW,+DAA+D,SAAS,6DAA6D,eAAe,cAAc,OAAO,WAAW,UAAU;CACvM,IAAI,iBAAiB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC;CAC1F,IAAI,UAAU;CACd,IAAI,MAAM,SAAS,GAQjB,MAAM,SAAQ,SAAQ;EACpB,IAAI;EACJ,IAAI,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI;EACpD,IAAI,qBAAqB,qBAAqB,UAAU,KAAK,SAAS,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,QAAO,aAAY,8BAA8B,UAAU,QAAQ,CAAC;EAC9M,SAAS,SAAQ,UAAS;GACxB,IAAI;GACJ,IAAI,iBAAiB,kBAAkB,QAAQ,wBAAwB,aAAa,aAAa,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,KAAK,OAAO;GAChL,IAAI,cAAc,wBAAwB,OAAO,gBAAgB,iBAAiB;GAClF,IAAI,YAAY,UAAU,GAAG;IAC3B,IAAI,aAAa,KAAK,IAAI,GAAG,WAAW;IACxC,IAAI,aAAa,KAAK,IAAI,GAAG,WAAW;IACxC,IAAI,YAAY,QAAQ,aAAa,UACnC,WAAW;IAEb,IAAI,YAAY,QAAQ,aAAa,UACnC,WAAW;GAEf;GACA,IAAI,kBAAkB,WAAW,cAAc;GAC/C,IAAI,mBAAmB,MAAM;IAC3B,WAAW,YAAY,OAAO,gBAAgB,KAAK,KAAK,IAAI,UAAU,gBAAgB,EAAE;IACxF,WAAW,YAAY,OAAO,gBAAgB,KAAK,KAAK,IAAI,UAAU,gBAAgB,EAAE;GAC1F;EACF,CAAC;CACH,CAAC;CAEH,KAAK,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,YAAY,QAAQ,MAAM,WAAW,GAEjH,cAAc,SAAQ,SAAQ;EAC5B,IAAI,kBAAkB,WAAW,kBAAkB,MAAM,aAAa,OAAO,CAAC;EAC9E,IAAI,mBAAmB,MAAM;GAC3B,WAAW,YAAY,OAAO,gBAAgB,KAAK,KAAK,IAAI,UAAU,gBAAgB,EAAE;GACxF,WAAW,YAAY,OAAO,gBAAgB,KAAK,KAAK,IAAI,UAAU,gBAAgB,EAAE;EAC1F;CACF,CAAC;CAEH,IAAI,oBAAoB,QAAQ,KAAK,oBAAoB,QAAQ,GAC/D,OAAO,CAAC,UAAU,QAAQ;AAG9B;AACA,IAAIM,gEAA8D,eAAe;CAAC;CAAqB;CAAgB;CAA2C;CAA2B;CAAc;AAAmC,GAAG,8DAA8D,EAC7S,gBAAgB,EACd,qBAAqB,0BACvB,EACF,CAAC;AACD,SAAS,mCAAmC,MAAM;CAChD,IAAI,QAAQ,KAAK;CACjB,IAAI,WAAW,KAAK,KAAK,iBAAiB,MACxC,OAAO;AAGX;AACA,IAAI,+BAA+B,iBAAiB,cAAc,kBAAkB;CAClF,IAAI,oBAAoB,gBAAgB,IAAI,kCAAkC,CAAC,CAAC,QAAO,MAAK,KAAK,IAAI;CACrG,IAAI,kBAAkB,aAAa,WAAW,QAAQ,aAAa,2BAA2B,aAAa,iBAAiB,IAK1H,OAAOC,QAAM,GAAG,gBAAgB,MAAM;CAExC,IAAI,aAAa,yBACf,OAAO;CAET,OAAO,MAAM,KAAK,IAAI,IAAI,iBAAiB,CAAC;AAC9C;AACA,IAAW,uBAAsB,UAAS,MAAM,kBAAkB;AAClE,IAAW,2BAA2B,UAAU,UAAU,WAAW;CACnE,OAAO,SAAS,QAAO,OAAM,GAAG,eAAe,cAAc,CAAC,CAAC,QAAO,OAAM;EAC1E,IAAI,aAAa,SACf,OAAO,GAAG,YAAY;EAExB,OAAO,GAAG,YAAY;CACxB,CAAC;AACH;AACA,IAAW,4BAA4B,eAAe;CAAC;CAAqB;CAAc;AAAU,GAAG,uBAAuB;AAC9H,IAAW,wBAAuB,UAAS,MAAM,kBAAkB;AACnE,IAAW,6BAA6B,eAAe;CAAC;CAAsB;CAAc;AAAU,GAAG,uBAAuB;AAChI,IAAW,wBAAuB,UAAS,MAAM,kBAAkB;AACnE,IAAW,6BAA6B,eAAe;CAAC;CAAsB;CAAc;AAAU,GAAG,uBAAuB;AAChI,IAAW,qBAAqB,MAAM,aAAa;CACjD,IAAI,QAAQ,MACV;CAEF,IAAI,YAAY,iBAAiB,KAAK,KAAI,QAAO,aAAa,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC;CACtF,IAAI,UAAU,WAAW,GACvB;CAEF,OAAO,CAAC,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC;AACxD;AACA,IAAI,4BAA4B,eAAe,2BAA2B,cAAc,iBAAiB;AACzG,IAAW,sBAAsB,OAAO,aAAa;CACnD,IAAI,SAAS,MACX;CAEF,IAAI,YAAY,iBAAiB,MAAM,SAAQ,SAAQ,CAAC,aAAa,UAAU,KAAK,KAAK,KAAK,IAAI,aAAa,UAAU,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;CAC5I,IAAI,UAAU,WAAW,GACvB;CAEF,OAAO,CAAC,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC;AACxD;AACA,IAAI,6BAA6B,eAAe,CAAC,4BAA4B,YAAY,GAAG,kBAAkB;AAC9G,SAAS,oBAAoB,MAAM;CACjC,IAAI;CACJ,IAAI,KAAK,KAAK,MACZ,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAElC,IAAI,sBAAsB,gBAAgB,KAAK,aAAa,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,KAAI,MAAK,EAAE,CAAC;CAClI,IAAI,sBAAsB,QAAQ,mBAAmB,WAAW,GAC9D,OAAO,CAAC;CAEV,OAAO,iBAAiB,kBAAkB;AAC5C;AACA,SAAS,oBAAoB,MAAM;CACjC,IAAI;CACJ,IAAI,KAAK,KAAK,MACZ,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAElC,IAAI,sBAAsB,iBAAiB,KAAK,aAAa,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,KAAI,MAAK,EAAE,CAAC;CACrI,IAAI,sBAAsB,QAAQ,mBAAmB,WAAW,GAC9D,OAAO,CAAC;CAEV,OAAO,iBAAiB,kBAAkB;AAC5C;AACA,IAAW,sBAAsB,OAAO,aAAa;CACnD,IAAI,SAAS,MACX;CAEF,IAAI,YAAY,MAAM,SAAQ,SAAQ,aAAa,UAAU,oBAAoB,IAAI,IAAI,oBAAoB,IAAI,CAAC;CAClH,IAAI,UAAU,WAAW,GACvB;CAEF,OAAO,CAAC,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC;AACxD;AAEA,IAAI,gCAAgC,eAAe,2BADlB,eAAe,CAAC,4BAA4B,YAAY,GAAG,kBACd,GAA4B,6BAA6B,YAAY,aAAa,gBAAgB;CAC9K,OAAO,aAAa,YAAY,aAAa,WAAW;AAC1D,CAAC;AACD,IAAW,0BAA0B,cAAc,kBAAkB,0BAA0B,qBAAqB,wBAAwB,yBAAyB,QAAQ,UAAU,uBAAuB;CAC5M,IAAI,4BAA4B,MAE9B,OAAO;CAGT,IAAI,gBADmC,WAAW,cAAc,aAAa,WAAW,WAAW,gBAAgB,aAAa,UACzE,aAAa,qBAAqB,yBAAyB,sBAAsB,IAAI,aAAa,yBAAyB,sBAAsB;CACxM,IAAI,eAAe,yBAAyB,kBAAkB,eAAe,aAAa,iBAAiB;CAC3G,IAAI,gBAAgB,MAClB,OAAO;CAcT,IAAI,aAAa,qBAAqB,iBAAiB,QAAQ,sBAAsB,MACnF,OAAO;CAET,OAAO;AACT;;;;;;;;AASA,IAAW,6BAA4B,iBAAgB;CACrD,IAAI,gBAAgB,QAAQ,aAAa,SAAS,YAAY,EAAE,WAAW,iBAAiB,aAAa,SAAS,MAChH;CAEF,IAAI,eAAe,iBAAiB,aAAa,KAAK;CACtD,IAAI,aAAa,WAAW,GAC1B;CAEF,OAAO,CAAC,KAAK,IAAI,GAAG,YAAY,GAAG,KAAK,IAAI,GAAG,YAAY,CAAC;AAC9D;AAMA,IAAW,wBAAwB,eAAe;CAAC;CAAgB;CAAwB;CAAgC;CAA2BD;CAA6D;CAA+B;CAAmB;CAL/N,eAAe,CAAC,cAAc,GAAG,2BAA2B,EAChG,gBAAgB,EACd,qBAAqB,0BACvB,EACF,CACmR;AAAwB,GAAG,wBAAwB,EACpU,gBAAgB,EACd,qBAAqB,0BACvB,EACF,CAAC;;;;;;AAOD,IAAI,eAAe,CAAC,GAAG,CAAC;AACxB,IAAW,qBAAqB,cAAc,QAAQ,eAAe,kBAAkB,iBAAiB,UAAU,oBAAoB;CACpI,KAAK,gBAAgB,QAAQ,iBAAiB,QAAQ,cAAc,WAAW,MAAM,oBAAoB,KAAA,GACvG;CAEF,IAAI,UAAU,aAAa,SACzB,OAAO,aAAa;CACtB,IAAI,gBAAgB,kBAAkB,QAAQ,QAAQ;CACtD,IAAI,iBAAiB,WAAW,MAAM;EACpC,IAAI;EACJ,OAAOC,QAAM,IAAI,wBAAwB,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC;CACvM;CACA,IAAI,SAAS,YACX,OAAO,4BAA4B,kBAAkB,cAAc,aAAa;CAElF,IAAI,oBAAoB,YAAY,CAAC,eACnC,OAAO;CAET,OAAO;AACT;AACA,IAAW,mBAAmB,eAAe;CAAC;CAAgB;CAAmB;CAAqB;CAAwB;CAAuB;CAAc;AAAqB,GAAG,iBAAiB;AAC5M,IAAW,sBAAsB,eAAe;CAAC;CAAgB;CAAc;AAAe,GAAG,oBAAoB;AACrH,IAAW,oBAAoB,YAAY,cAAc,kBAAkB;CACzE,IAAI,YAAY,aAAa;CAC7B,IAAI,cAAc,QAChB;CAEF,IAAI,mBAAmB,oBAAoB,YAAY;CACvD,IAAI,uBAAuB,MAAM,QAAQ,gBAAgB,MAAM,iBAAiB,OAAO,UAAU,iBAAiB,OAAO;CACzH,KAAK,cAAc,aAAa,cAAc,eAAe,gBAAgB,QAAQ,aAAa,aAAa,yBAAyB,UAAU,GAAG;EACnJ,IAAI,sBACF,OAAO,kBAAkB,YAAY,aAAa,WAAW,aAAa,eAAe,SAAS;EAEpG,IAAI,aAAa,SAAS,UACxB,OAAO,yBAAyB,YAAY,aAAa,WAAW,aAAa,eAAe,SAAS;CAE7G;CACA,IAAI,cAAc,UAAU,kBAAkB,YAAY,gBAAgB,QAAQ,aAAa,WAAW;EAIxG,IAAI,wBAAwB,yBAAyB,UAAU,GAC7D,OAAO,kBAAkB,YAAY,aAAa,WAAW,aAAa,eAAe,UAAU;EAErG,IAAI,aAAa,SAAS,YAAY,yBAAyB,UAAU,GACvE,OAAO,yBAAyB,YAAY,aAAa,WAAW,aAAa,eAAe,UAAU;CAE9G;AAEF;AACA,IAAW,kBAAkB,eAAe;CAAC;CAAkB;CAA8B;AAAmB,GAAG,gBAAgB;AACnI,IAAW,kCAAkC,cAAc,QAAQ,WAAW,aAAa;CACzF,IAOA,aAAa,gBAAgB,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,UAAU,YAAY,yBAAyB,MAAM,KAAK,MAAM,QAAQ,SAAS,KAAK,UAAU,SAAS,GAAG;EAChN,IAAI,aAAa;EACjB,IAAI,gBAAgB,OAAO;EAC3B,IAAI,gBAAgB,cAAc,UAAU,QAAQ,QAAQ,gBAAgB,KAAK,IAAI,cAAc;EACnG,IAAI,gBAAgB,OAAO;EAC3B,IAAI,gBAAgB,aAAa,UAAU,UAAU,SAAS,QAAQ,QAAQ,eAAe,KAAK,IAAI,aAAa;EACnH,OAAO,CAAC,KAAK,IAAI,eAAe,YAAY,GAAG,KAAK,IAAI,eAAe,YAAY,CAAC;CACtF;CACA,OAAO;AACT;AACA,IAAW,qCAAqC,eAAe;CAAC;CAAgB;CAAkB;CAAiB;AAAY,GAAG,8BAA8B;AAmChK,IAAI,0BAA0B,eA3BmB,eAAe,wBAAwB,iBAAiB,iBAAiB,iBAAiB;CACzI,IAAI,CAAC,gBAAgB,aAAa,SAAS,UACzC;CAEF,IAAI,gCAAgC;CACpC,IAAI,eAAe,MAAM,KAAK,iBAAiB,gBAAgB,KAAI,MAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC;CACvG,IAAI,QAAQ,aAAa;CACzB,IAAI,OAAO,aAAa,aAAa,SAAS;CAC9C,IAAI,SAAS,QAAQ,QAAQ,MAC3B,OAAO;CAET,IAAI,OAAO,OAAO;CAClB,IAAI,SAAS,GACX,OAAO;CAGT,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,SAAS,GAAG,KAAK;EAChD,IAAI,OAAO,aAAa;EACxB,IAAI,OAAO,aAAa,IAAI;EAC5B,IAAI,QAAQ,QAAQ,QAAQ,MAC1B;EAEF,IAAI,WAAW,OAAO;EACtB,gCAAgC,KAAK,IAAI,+BAA+B,QAAQ;CAClF;CACA,OAAO,gCAAgC;AACzC,CAC6C,GAAqC,mBAAmB,sBAAsB,4BAA4B,IAAI,IAAI,IAAI,IAAI,YAAY,UAAU,2BAA2B,QAAQ,gBAAgB,QAAQ,YAAY;CAClQ,IAAI,CAAC,oBAAoB,yBAAyB,GAChD,OAAO;CAET,IAAI,aAAa,WAAW,aAAa,OAAO,SAAS,OAAO;CAChE,IAAI,YAAY,OACd,OAAO,4BAA4B,aAAa;CAElD,IAAI,YAAY,UAAU;EACxB,IAAI,MAAM,gBAAgB,gBAAgB,4BAA4B,UAAU;EAChF,IAAI,WAAW,4BAA4B,aAAa;EACxD,OAAO,WAAW,OAAO,WAAW,OAAO,aAAa;CAC1D;CACA,OAAO;AACT,CAAC;AACD,IAAW,gCAAgC,OAAO,QAAQ,eAAe;CACvE,IAAI,gBAAgB,oBAAoB,OAAO,MAAM;CACrD,IAAI,iBAAiB,QAAQ,OAAO,cAAc,YAAY,UAC5D,OAAO;CAET,OAAO,wBAAwB,OAAO,SAAS,QAAQ,YAAY,cAAc,OAAO;AAC1F;AACA,IAAW,gCAAgC,OAAO,QAAQ,eAAe;CACvE,IAAI,gBAAgB,oBAAoB,OAAO,MAAM;CACrD,IAAI,iBAAiB,QAAQ,OAAO,cAAc,YAAY,UAC5D,OAAO;CAET,OAAO,wBAAwB,OAAO,SAAS,QAAQ,YAAY,cAAc,OAAO;AAC1F;AACA,IAAI,qBAAqB,eAAe,qBAAqB,+BAA+B,eAAe,eAAe;CACxH,IAAI,eAAe;CACnB,IAAI,iBAAiB,MACnB,OAAO;EACL,MAAM;EACN,OAAO;CACT;CAEF,IAAI,UAAU,cAAc;CAC5B,IAAI,OAAO,YAAY,UACrB,OAAO;EACL,MAAM;EACN,OAAO;CACT;CAEF,OAAO;EACL,QAAQ,gBAAgB,QAAQ,UAAU,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,KAAK;EAClG,SAAS,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;CACzG;AACF,CAAC;AACD,IAAI,qBAAqB,eAAe,qBAAqB,+BAA+B,eAAe,eAAe;CACxH,IAAI,cAAc;CAClB,IAAI,iBAAiB,MACnB,OAAO;EACL,KAAK;EACL,QAAQ;CACV;CAEF,IAAI,UAAU,cAAc;CAC5B,IAAI,OAAO,YAAY,UACrB,OAAO;EACL,KAAK;EACL,QAAQ;CACV;CAEF,OAAO;EACL,OAAO,eAAe,QAAQ,SAAS,QAAQ,iBAAiB,KAAK,IAAI,eAAe,KAAK;EAC7F,UAAU,kBAAkB,QAAQ,YAAY,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,KAAK;CAC9G;AACF,CAAC;AACD,IAAW,mBAAmB,eAAe;CAAC;CAA2B;CAAoB;CAAuB;EAAsB,QAAQ,SAAS,eAAe;AAAU,IAAI,QAAQ,SAAS,iBAAiB,OAAO,eAAe;CAC9O,IAAI,eAAe,MAAM;CACzB,IAAI,YACF,OAAO,CAAC,aAAa,MAAM,gBAAgB,QAAQ,aAAa,KAAK;CAEvE,OAAO,CAAC,OAAO,OAAO,QAAQ,MAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,KAAK;AAChF,CAAC;AACD,IAAW,mBAAmB,eAAe;CAAC;CAA2B;CAAmB;CAAoB;CAAuB;EAAsB,QAAQ,SAAS,eAAe;AAAU,IAAI,QAAQ,QAAQ,SAAS,iBAAiB,OAAO,eAAe;CACzQ,IAAI,eAAe,MAAM;CACzB,IAAI,YACF,OAAO,CAAC,gBAAgB,SAAS,aAAa,QAAQ,aAAa,GAAG;CAExE,IAAI,WAAW,cACb,OAAO,CAAC,OAAO,MAAM,OAAO,SAAS,QAAQ,QAAQ,OAAO,MAAM,QAAQ,GAAG;CAE/E,OAAO,CAAC,OAAO,MAAM,QAAQ,KAAK,OAAO,MAAM,OAAO,SAAS,QAAQ,MAAM;AAC/E,CAAC;AACD,IAAW,mBAAmB,OAAO,UAAU,QAAQ,eAAe;CACpE,IAAI;CACJ,QAAQ,UAAR;EACE,KAAK,SACH,OAAO,iBAAiB,OAAO,QAAQ,UAAU;EACnD,KAAK,SACH,OAAO,iBAAiB,OAAO,QAAQ,UAAU;EACnD,KAAK,SACH,QAAQ,uBAAuB,oBAAoB,OAAO,MAAM,OAAO,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB;EACjJ,KAAK,aACH,OAAO,qBAAqB,KAAK;EACnC,KAAK,cACH,OAAO,sBAAsB,OAAO,MAAM;EAC5C,SACE;CACJ;AACF;AACA,IAAW,6BAA6B,eAAe,CAAC,gBAAgB,eAAe,GAAG,2BAA2B;AAErH,IAAI,wBAAwB,eAAe;CAAC;CAAgB;CADvB,eAAe,CAAC,qBAAqB,kCAAkC,GAAG,oBAC9B;CAAyB;AAA0B,GAAG,sBAAsB;AAC7J,IAAW,4BAA4B,QAAQ,eAAe,MAAM,aAAa;CAC/E,IAAI,QAAQ,QAAQ,KAAK,WAAW,MAClC;CAEF,IAAI,OAAO,KAAK,MACd,QAAQ,KAAK;CAEf,IADoB,kBAAkB,QAAQ,QAC9B,MAAM,SAAS,YAAY,UAAU,SACnD,OAAO,cAAc,KAAI,MAAK,EAAE,KAAK;AAGzC;AACA,IAAW,0BAA0B,eAAe;CAAC;CAAmB;CAAwB;CAA8B;AAAY,GAAG,wBAAwB;AACrK,IAAW,kBAAkB,eAAe,CAAC,qBAAqB,GAAG,oBAAoB;AACrD,eAAe,CAAC,qBAAqB,GAAG,2BAA2B;AAC3D,eAAe,CAAC,uBAAuB,sBAAsB,GAAG,wBAAwB;AAC/F,eAAe;CAAC;CAA8B;CAA2B;AAAY,GAAG,+BAA+B;AAC5J,SAAS,WAAW,GAAG,GAAG;CACxB,IAAI,EAAE,KAAK,EAAE,IACX,OAAO;CAET,IAAI,EAAE,KAAK,EAAE,IACX,OAAO;CAET,OAAO;AACT;AACA,IAAI,uBAAuB,QAAQ,gBAAgB;AACnD,IAAI,cAAc,QAAQ,cAAc,WAAW;AACnD,IAAI,+BAA+B,eAAe,gBAAgB,qBAAqB,aAAa,SAAS,aAAa,WAAW,QAAQ,QAAO,SAAQ,KAAK,gBAAgB,WAAW,CAAC,CAAC,QAAO,SAAQ,KAAK,WAAW,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC;AACrP,IAAI,+BAA+B,eAAe,gBAAgB,qBAAqB,aAAa,SAAS,aAAa,WAAW,QAAQ,QAAO,SAAQ,KAAK,gBAAgB,WAAW,CAAC,CAAC,QAAO,SAAQ,KAAK,WAAW,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC;AACrP,IAAI,gBAAgB,QAAQ,iBAAiB;CAC3C,IAAI,SAAS,OAAO,aAAa,WAAW,WAAW,aAAa,SAAA;CACpE,OAAO;EACL,OAAO,OAAO;EACd;CACF;AACF;AACA,IAAI,gBAAgB,QAAQ,iBAAiB;CAE3C,OAAO;EACL,OAFU,OAAO,aAAa,UAAU,WAAW,aAAa,QAAA;EAGhE,QAAQ,OAAO;CACjB;AACF;AACA,IAAW,kBAAkB,eAAe,2BAA2B,qBAAqB,YAAY;AACxG,IAAI,qCAAqC,QAAQ,aAAa,gBAAgB;CAC5E,QAAQ,aAAR;EACE,KAAK,OACH,OAAO,OAAO;EAChB,KAAK,UACH,OAAO,cAAc,OAAO;EAC9B,SACE,OAAO;CACX;AACF;AACA,IAAI,qCAAqC,QAAQ,aAAa,eAAe;CAC3E,QAAQ,aAAR;EACE,KAAK,QACH,OAAO,OAAO;EAChB,KAAK,SACH,OAAO,aAAa,OAAO;EAC7B,SACE,OAAO;CACX;AACF;AACA,IAAW,4BAA4B,eAAe,mBAAmB,2BAA2B,8BAA8B,qBAAqB,aAAa,aAAa,QAAQ,2BAA2B,aAAa,WAAW;CAC1O,IAAI,QAAQ,CAAC;CACb,IAAI;CACJ,0BAA0B,SAAQ,SAAQ;EACxC,IAAI,WAAW,aAAa,QAAQ,IAAI;EACxC,IAAI,YAAY,MACd,WAAW,kCAAkC,QAAQ,aAAa,WAAW;EAE/E,IAAI,YAAY,gBAAgB,SAAS,CAAC,UAAU,gBAAgB,YAAY;EAChF,MAAM,KAAK,MAAM,WAAW,OAAO,SAAS,IAAI,SAAS;EACzD,aAAa,YAAY,KAAK,KAAK,SAAS;CAC9C,CAAC;CACD,OAAO;AACT,CAAC;AACD,IAAW,4BAA4B,eAAe,kBAAkB,2BAA2B,8BAA8B,qBAAqB,aAAa,YAAY,QAAQ,2BAA2B,aAAa,WAAW;CACxO,IAAI,QAAQ,CAAC;CACb,IAAI;CACJ,0BAA0B,SAAQ,SAAQ;EACxC,IAAI,WAAW,aAAa,QAAQ,IAAI;EACxC,IAAI,YAAY,MACd,WAAW,kCAAkC,QAAQ,aAAa,UAAU;EAE9E,IAAI,YAAY,gBAAgB,UAAU,CAAC,UAAU,gBAAgB,WAAW;EAChF,MAAM,KAAK,MAAM,WAAW,OAAO,SAAS,IAAI,SAAS;EACzD,aAAa,YAAY,KAAK,KAAK,SAAS;CAC9C,CAAC;CACD,OAAO;AACT,CAAC;AACD,IAAI,0BAA0B,OAAO,WAAW;CAC9C,IAAI,eAAe,oBAAoB,OAAO,MAAM;CACpD,IAAI,gBAAgB,MAClB;CAEF,OAAO,0BAA0B,OAAO,aAAa,aAAa,aAAa,MAAM;AACvF;AACA,IAAW,sBAAsB,eAAe;CAAC;CAA2B;CAAqB;EAAyB,GAAG,WAAW;AAAM,IAAI,QAAQ,cAAc,UAAU,WAAW;CAC3L,IAAI,gBAAgB,MAClB;CAEF,IAAI,iBAAiB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;CAClF,IAAI,kBAAkB,MACpB,OAAO;EACL,GAAG,OAAO;EACV,GAAG;CACL;CAEF,OAAO;EACL,GAAG,OAAO;EACV,GAAG;CACL;AACF,CAAC;AACD,IAAI,0BAA0B,OAAO,WAAW;CAC9C,IAAI,eAAe,oBAAoB,OAAO,MAAM;CACpD,IAAI,gBAAgB,MAClB;CAEF,OAAO,0BAA0B,OAAO,aAAa,aAAa,aAAa,MAAM;AACvF;AACA,IAAW,sBAAsB,eAAe;CAAC;CAA2B;CAAqB;EAAyB,GAAG,WAAW;AAAM,IAAI,QAAQ,cAAc,UAAU,WAAW;CAC3L,IAAI,gBAAgB,MAClB;CAEF,IAAI,iBAAiB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;CAClF,IAAI,kBAAkB,MACpB,OAAO;EACL,GAAG;EACH,GAAG,OAAO;CACZ;CAEF,OAAO;EACL,GAAG;EACH,GAAG,OAAO;CACZ;AACF,CAAC;AACD,IAAW,kBAAkB,eAAe,2BAA2B,sBAAsB,QAAQ,iBAAiB;CAEpH,OAAO;EACL,OAFU,OAAO,aAAa,UAAU,WAAW,aAAa,QAAA;EAGhE,QAAQ,OAAO;CACjB;AACF,CAAC;AACD,IAAW,2BAA2B,OAAO,UAAU,WAAW;CAChE,QAAQ,UAAR;EACE,KAAK,SAED,OAAO,gBAAgB,OAAO,MAAM,CAAC,CAAC;EAE1C,KAAK,SAED,OAAO,gBAAgB,OAAO,MAAM,CAAC,CAAC;EAE1C,SAEI;CAEN;AACF;AACA,IAAW,0BAA0B,aAAa,eAAe,MAAM,aAAa;CAClF,IAAI,QAAQ,MACV;CAEF,IAAI,0BAA0B,KAAK,yBACjC,OAAO,KAAK,MACZ,UAAU,KAAK;CACjB,IAAI,gBAAgB,kBAAkB,aAAa,QAAQ;CAC3D,IAAI,UAAU,cAAc,KAAI,OAAM,GAAG,KAAK;CAC9C,IAAI,YAAY,QAAQ,QAAO,MAAK,KAAK,IAAI;CAC7C,IAAI,WAAW,iBAAiB,SAAS,cAAc,2BAA2B,aAAa,SAAS,GACtG,OAAO;AAGX;AACA,IAAW,wBAAwB,eAAe;CAAC;CAAmB;CAAwB;CAAgB;AAAY,GAAG,sBAAsB;AACnJ,IAAW,sDAAsD,eAAe;CAAC;CAAmB;CAA6B;CAAqB;CAAiB;CAAuB;CAAyB;CAAiB;CAAiB;AAAY,IAAI,QAAQ,MAAM,eAAe,OAAO,iBAAiB,mBAAmB,WAAW,WAAW,aAAa;CAClX,IAAI,QAAQ,MACV;CAEF,IAAI,gBAAgB,kBAAkB,QAAQ,QAAQ;CACtD,OAAO;EACL,OAAO,KAAK;EACZ,UAAU,KAAK;EACf,YAAY,KAAK;EACjB,aAAa,KAAK;EAClB,MAAM,KAAK;EACX,WAAW,KAAK;EAChB,eAAe,KAAK;EACpB,OAAO,KAAK;EACZ,MAAM,KAAK;EACX,MAAM,KAAK;EACX;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;CACF;AACF,CAAC;;;;;;;;;AAUD,IAAW,oBAAoB,QAAQ,MAAM,eAAe,OAAO,WAAW,WAAW,iBAAiB,mBAAmB,aAAa;CACxI,IAAI,QAAQ,QAAQ,SAAS,MAC3B;CAEF,IAAI,gBAAgB,kBAAkB,QAAQ,QAAQ;CACtD,IAAI,OAAO,KAAK,MACd,QAAQ,KAAK,OACb,YAAY,KAAK;CACnB,IAAI,gBAEJ,kBAAkB,eAAe,OAAO,MAAM,cAAc,aAAa,MAAM,UAAU,IAAI,IAAI;CACjG,IAAI,SAAS,SAAS,cAAc,MAAM,YAAY,MAAM,UAAU,IAAI,gBAAgB;CAC1F,SAAS,aAAa,eAAe,aAAa,QAAQ,UAAU,UAAU,IAAI,SAAS,UAAU,KAAK,UAAU,EAAE,IAAI,IAAI,SAAS;CAGvI,IAAI,mBAAmB,SAAS;CAChC,IAAI,kBACF,OAAO,iBAAiB,KAAK,OAAO,UAAU;EAC5C,IAAI,eAAe,kBAAkB,gBAAgB,QAAQ,KAAK,IAAI;EACtE,IAAI,SAAS,MAAM,IAAI,YAAY;EACnC,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL;GACA,YAAY,SAAS;GACrB,OAAO;GACP;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAMpB,IAAI,iBAAiB,mBACnB,OAAO,kBAAkB,KAAK,OAAO,UAAU;EAC7C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAEpB,IAAI,MAAM,OACR,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAAK,OAAO,UAAU;EAClD,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAIpB,OAAO,MAAM,OAAO,CAAC,CAAC,KAAK,OAAO,UAAU;EAC1C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GAErB,OAAO,kBAAkB,gBAAgB,SAAS;GAClD;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;AACpB;AACA,IAAW,oBAAoB,eAAe;CAAC;CAAmB;CAA8B;CAAqB;CAAiB;CAAiB;CAAiB;CAAuB;CAAyB;AAAY,GAAG,gBAAgB;;;;;;;;;AAUvP,IAAW,6BAA6B,QAAQ,MAAM,OAAO,WAAW,iBAAiB,mBAAmB,aAAa;CACvH,IAAI,QAAQ,QAAQ,SAAS,QAAQ,aAAa,QAAQ,UAAU,OAAO,UAAU,IACnF;CAEF,IAAI,gBAAgB,kBAAkB,QAAQ,QAAQ;CACtD,IAAI,YAAY,KAAK;CACrB,IAAI,SAAS;CACb,SAAS,aAAa,gBAAgB,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,WAAW,IAAI,SAAS,UAAU,KAAK,UAAU,EAAE,IAAI,IAAI,SAAS;CAG1K,IAAI,iBAAiB,mBACnB,OAAO,kBAAkB,KAAK,OAAO,UAAU;EAC7C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAEpB,IAAI,MAAM,OACR,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAAK,OAAO,UAAU;EAClD,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAIpB,OAAO,MAAM,OAAO,CAAC,CAAC,KAAK,OAAO,UAAU;EAC1C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GAErB,OAAO,kBAAkB,gBAAgB,SAAS;GAClD;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;AACpB;AACA,IAAW,6BAA6B,eAAe;CAAC;CAAmB;CAA8B;CAAiB;CAAiB;CAAuB;CAAyB;AAAY,GAAG,yBAAyB;;;;;;AAQnO,IAAW,sBAAsB,eAAe,gBAAgB,kBAAkB,MAAM,UAAU;CAChG,IAAI,QAAQ,QAAQ,SAAS,MAC3B;CAEF,OAAOX,iBAAcA,iBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAChD,MACF,CAAC;AACH,CAAC;AAGiC,gBAAgB,OAAO,WAAW,WAAW,oBAAoB,OAAO,MAAM,GADzF,eAAe,CADL,eAAe;CAAC;CAAgB;CAAqB;CAAkB;AAA0B,GAAG,sBAC9F,CAA0B,GAAG,oBAC+C,IAAmB,MAAM,UAAU;CACpJ,IAAI,QAAQ,QAAQ,SAAS,MAC3B;CAEF,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAChD,MACF,CAAC;AACH,CAAC;;;;AAMD,IAAW,uBAAuB,eAAe;CAAC;CAAmB;CAAgB;AAAc,IAAI,QAAQ,UAAU,aAAa;CACpI,QAAQ,QAAR;EACE,KAAK,cAED,OAAO,SAAS,MAAK,SAAQ,KAAK,QAAQ,IAAI,kBAAkB;EAEpE,KAAK,YAED,OAAO,SAAS,MAAK,SAAQ,KAAK,QAAQ,IAAI,kBAAkB;EAIpE,KAAK;EACL,KAAK,UAED,OAAO;EAEX,SAEI;CAEN;AACF,CAAC;AACD,IAAW,6BAA6B,OAAO,UAAU,WAAW;CAClE,IAAI;CACJ,QAAQ,wBAAwB,MAAM,cAAc,eAAe,QAAQ,0BAA0B,KAAK,IAAI,KAAK,IAAI,sBAAsB;AAC/I;AAC4C,eAAe,CAAC,yBAAyB,IAAG,UAAS;CAC/F,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B;CAEF,QAAO,eAAc;EACnB,IAAI;EAEJ,IAAI,cAAc;EAClB,IAAI,cAAc,MAAM;EACxB,KAAK,IAAI,QAAQ,OAAO;GACtB,IAAI,WAAW,KAAK,IAAI,KAAK,aAAa,UAAU;GACpD,IAAI,WAAW,aAAa;IAC1B,cAAc;IACd,cAAc;GAChB;EACF;EACA,QAAQ,eAAe,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa;CAClG;AACF,CAAC;;;ACr6CD,IAAW,iCAAgC,UAAS,MAAM,QAAQ;AAClE,IAAW,mCAAkC,UAAS,MAAM,QAAQ;AACpE,SAAgB,wBAAwB,QAAQ,yBAAyB,2BAA2B;CAClG,IAAI,UAAU,MACZ,OAAO;CAET,IAAI,YAAY,SAAS,SAAS;CAClC,IAAI,6BAA6B,MAC/B,OAAO;CAET,OAAO,0BAA0B,SAAS,SAAS,IAAI,YAAY;AACrE;AACA,SAAgBY,yBAAuB,OAAO,QAAQ;CAGpD,OAAO,wBAAwB,QAFD,8BAA8B,KAEC,GAD7B,gCAAgC,KACwB,CAAC;AAC3F;AACA,SAAgB,oBAAoB,QAAQ;CAC1C,OAAO,gBAAe,UAASA,yBAAuB,OAAO,MAAM,CAAC;AACtE;;;ACnBA,IAAW,sBAAsB,cAAc,gBAAgB;CAC7D,IAAI;CACJ,IAAI,IAAI,OAAO,WAAW;CAC1B,IAAI,MAAM,CAAC,KAAK,eAAe,MAC7B;CAEF,OAAO,KAAK,IAAI,iBAAiB,QAAQ,iBAAiB,KAAK,MAAM,kBAAkB,aAAa,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,QAAQ,KAAA;AACpL;;;ACRA,IAAW,yBAAwB,UAAS,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACwD1D,IAAW,gBAAgB;CACzB,QAAQ;CACR,OAAO;CACP,SAAS,KAAA;CACT,iBAAiB,KAAA;CACjB,YAAY,KAAA;AACd;;;;;;;;;AAiDA,IAAI,eAAe,YAAY;CAC7B,MAAM;CACN,cAAA;EAxCA,iBAAiB;GACf,OAAO;GACP,OAAO;EACT;EACA,iBAAiB;GACf,OAAO;GACP,OAAO;EACT;EACA,qBAAqB;EACrB,iBAAiB;GACf,QAAQ;GACR,OAAO;GACP,SAAS,KAAA;GACT,OAAO,KAAA;GACP,YAAY,KAAA;GACZ,eAAe,KAAA;GACf,iBAAiB,KAAA;EACnB;EACA,qBAAqB,CAAC;EACtB,UAAU;GACR,QAAQ,KAAA;GACR,SAAS;GACT,QAAQ;GACR,QAAQ;GACR,cAAc,KAAA;EAChB;CAeA;CACA,UAAU;EACR,yBAAyB;GACvB,QAAQ,OAAO,QAAQ;IACrB,MAAM,oBAAoB,KAAK,UAAU,OAAO,OAAO,CAAC;GAC1D;GACA,SAAS,mBAAmB;EAC9B;EACA,6BAA6B;GAC3B,QAAQ,OAAO,QAAQ;IACrB,IAAI,kBAAkB,OAAO,SAC3B,OAAO,gBAAgB,MACvB,OAAO,gBAAgB;IACzB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,oBAAoB,QAAQ,UAAU,IAAI,CAAC;IACtE,IAAI,QAAQ,IACV,MAAM,oBAAoB,SAAS,UAAU,IAAI;GAErD;GACA,SAAS,mBAAmB;EAC9B;EACA,4BAA4B;GAC1B,QAAQ,OAAO,QAAQ;IACrB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,oBAAoB,QAAQ,UAAU,OAAO,OAAO,CAAC;IAChF,IAAI,QAAQ,IACV,MAAM,oBAAoB,OAAO,OAAO,CAAC;GAE7C;GACA,SAAS,mBAAmB;EAC9B;EACA,wBAAwB,OAAO,QAAQ;GACrC,MAAM,WAAW,OAAO;EAC1B;EACA,4BAA4B,OAAO,QAAQ;GACzC,MAAM,gBAAgB,SAAS;GAC/B,MAAM,gBAAgB,gBAAgB,KAAA;GACtC,MAAM,oBAAoB,SAAS;GACnC,MAAM,gBAAgB,MAAM,SAAS;GACrC,MAAM,gBAAgB,MAAM,QAAQ,OAAO,QAAQ;GACnD,MAAM,gBAAgB,MAAM,UAAU,OAAO,QAAQ;GACrD,MAAM,gBAAgB,MAAM,kBAAkB,OAAO,QAAQ;GAC7D,MAAM,gBAAgB,MAAM,aAAa,OAAO,QAAQ;EAC1D;EACA,gBAAgB,OAAO;GAQrB,MAAM,gBAAgB,MAAM,SAAS;GACrC,MAAM,gBAAgB,MAAM,SAAS;EACvC;EACA,eAAe,OAAO;GACpB,MAAM,gBAAgB,MAAM,SAAS;EACvC;EACA,wBAAwB,OAAO,QAAQ;GACrC,MAAM,gBAAgB,SAAS;GAC/B,MAAM,gBAAgB,gBAAgB,KAAA;GACtC,MAAM,gBAAgB,MAAM,SAAS;GACrC,MAAM,oBAAoB,SAAS;GACnC,MAAM,gBAAgB,MAAM,QAAQ,OAAO,QAAQ;GACnD,MAAM,gBAAgB,MAAM,UAAU,OAAO,QAAQ;GACrD,MAAM,gBAAgB,MAAM,kBAAkB,OAAO,QAAQ;GAC7D,MAAM,gBAAgB,MAAM,aAAa,OAAO,QAAQ;EAC1D;EACA,sBAAsB,OAAO,QAAQ;GACnC,MAAM,gBAAgB,SAAS;GAC/B,MAAM,gBAAgB,gBAAgB,KAAA;GACtC,MAAM,gBAAgB,MAAM,SAAS;GACrC,MAAM,oBAAoB,SAAS;GACnC,MAAM,gBAAgB,MAAM,QAAQ,OAAO,QAAQ;GACnD,MAAM,gBAAgB,MAAM,UAAU,OAAO,QAAQ;GACrD,MAAM,gBAAgB,MAAM,aAAa,OAAO,QAAQ;EAC1D;EACA,uBAAuB,OAAO,QAAQ;GACpC,MAAM,gBAAgB,SAAS;GAC/B,MAAM,gBAAgB,gBAAgB,KAAA;GACtC,MAAM,oBAAoB,SAAS;GACnC,MAAM,gBAAgB,MAAM,SAAS;GACrC,MAAM,gBAAgB,MAAM,QAAQ,OAAO,QAAQ;GACnD,MAAM,gBAAgB,MAAM,UAAU,OAAO,QAAQ;GACrD,MAAM,gBAAgB,MAAM,aAAa,OAAO,QAAQ;EAC1D;EACA,mBAAmB,OAAO,QAAQ;GAChC,MAAM,kBAAkB,OAAO;EACjC;EACA,uBAAuB,OAAO,QAAQ;GACpC,MAAM,oBAAoB,SAAS,OAAO,QAAQ;GAClD,MAAM,oBAAoB,QAAQ,OAAO,QAAQ;GACjD,MAAM,oBAAoB,aAAa,OAAO,QAAQ;EACxD;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,aAAa;AACvC,IAAA,0BAA0B,sBAAsB;AAChD,IAAA,8BAA8B,sBAAsB;AACpD,IAAA,6BAA6B,sBAAsB;AACnD,IAAA,0BAA0B,sBAAsB;AAChD,IAAA,8BAA8B,sBAAsB;AACpD,IAAA,iBAAiB,sBAAsB;AACvC,IAAA,kBAAkB,sBAAsB;AACxC,IAAA,0BAA0B,sBAAsB;AAChD,IAAA,wBAAwB,sBAAsB;AAC9C,IAAA,yBAAyB,sBAAsB;AAC/C,IAAA,qBAAqB,sBAAsB;AAC3C,IAAA,yBAAyB,sBAAsB;AAEjD,IAAW,iBAAiB,aAAa;;;AC7NzC,SAASE,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAEvT,SAAS,kCAAkC,cAAc,kBAAkB,SAAS;CAClF,IAAI,qBAAqB,QAAQ;EAC/B,IAAI,YAAY,SACd,OAAO,aAAa,gBAAgB;EAEtC,OAAO,aAAa,gBAAgB;CACtC;CACA,IAAI,YAAY,SACd,OAAO,aAAa,gBAAgB;CAEtC,OAAO,aAAa,gBAAgB;AACtC;AACA,SAAS,wBAAwB,yBAAyB;CACxD,OAAO,wBAAwB,SAAS;AAC1C;AACA,IAAW,kCAAkC,cAAc,kBAAkB,SAAS,iBAAiB;CACrG,IAAI,oBAAoB,MACtB,OAAO;CAET,IAAI,8BAA8B,kCAAkC,cAAc,kBAAkB,OAAO;CAC3G,IAAI,+BAA+B,MACjC,OAAO;CAET,IAAI,4BAA4B,QAC9B,OAAO;CAET,IAAI,aAAa,oBAAoB,QACnC,OAAO,aAAa;CAEtB,IAAI,aAAa,gBAAgB,UAAU,aAAa,gBAAgB,SAAS,MAC/E,OAAO,aAAa;CAEtB,IAAI,kBAAkB,aAAa,SAAS,WAAW;CACvD,IAAI,wBAAwB,2BAA2B,GACjD;MAAA,iBACF,OAAOH,iBAAcA,iBAAc,CAAC,GAAG,2BAA2B,GAAG,CAAC,GAAG,EACvE,QAAQ,KACV,CAAC;CAAA,OAEE,IAAI,gBAAgB,MACzB,OAAO;EACL,QAAQ;EACR,YAAY,KAAA;EACZ,SAAS,KAAA;EACT,OAAO;EACP,iBAAiB,KAAA;CACnB;CAEF,OAAOA,iBAAcA,iBAAc,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,EACzD,YAAY,4BAA4B,WAC1C,CAAC;AACH;;;ACtDA,SAAS,eAAe,OAAO;CAC7B,IAAI,OAAO,UAAU,UACnB,OAAO,OAAO,SAAS,KAAK,IAAI,QAAQ,KAAA;CAE1C,IAAI,iBAAiB,MAAM;EACzB,IAAI,eAAe,MAAM,QAAQ;EACjC,OAAO,OAAO,SAAS,YAAY,IAAI,eAAe,KAAA;CACxD;CACA,IAAI,SAAS,OAAO,KAAK;CACzB,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS,KAAA;AAC5C;AACA,SAAS,0BAA0B,OAAO,QAAQ;CAChD,IAAI,eAAe,eAAe,KAAK;CACvC,IAAI,aAAa,OAAO;CACxB,IAAI,aAAa,OAAO;CACxB,IAAI,iBAAiB,KAAA,GACnB,OAAO;CAIT,OAAO,gBAFG,KAAK,IAAI,YAAY,UAEN,KAAK,gBADpB,KAAK,IAAI,YAAY,UACiB;AAClD;AACA,SAAS,oBAAoB,OAAO,aAAa,QAAQ;CACvD,IAAI,UAAU,QAAQ,eAAe,MACnC,OAAO;CAET,IAAI,QAAQ,kBAAkB,OAAO,WAAW;CAChD,IAAI,SAAS,MACX,OAAO;CAET,IAAI,CAAC,yBAAyB,MAAM,GAClC,OAAO;CAET,OAAO,0BAA0B,OAAO,MAAM;AAChD;AACA,IAAW,6BAA6B,oBAAoB,WAAW,aAAa,WAAW;CAC7F,IAAI,eAAe,uBAAuB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB;CAC9G,IAAI,gBAAgB,MAClB,OAAO;CAET,IAAI,gBAAgB,OAAO,YAAY;CACvC,IAAI,CAAC,oBAAoB,aAAa,GAEpC,OAAO;CAOT,IAAI,aAAa;CACjB,IAAI,aAAa;CACjB,IAAI,UAAU,SAAS,GACrB,aAAa,UAAU,SAAS;CAIlC,IAAI,eAAe,KAAK,IAAI,YAAY,KAAK,IAAI,eAAe,UAAU,CAAC;CAC3E,IAAI,QAAQ,UAAU;CACtB,IAAI,SAAS,MACX,OAAO,OAAO,YAAY;CAE5B,IAAI,CAAC,oBAAoB,OAAO,aAAa,MAAM,GACjD,OAAO;CAET,OAAO,OAAO,YAAY;AAC5B;;;ACrEA,IAAW,oCAAoC,OAAO,QAAQ,QAAQ,QAAQ,cAAc,cAAc,0BAA0B;CAClI,IAAI,gBAAgB,MAClB;CAOF,IAAI,qBAAqB,sBAAsB;CAC/C,IAAI,gBAAgB,uBAAuB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,YAAY,YAAY;CACvI,IAAI,iBAAiB,MACnB,OAAO;CAET,IAAI,OAAO,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,OAAO,YAAY;CACvG,IAAI,CAAC,MACH;CAEF,QAAQ,QAAR;EACE,KAAK,cAED,OAAO;GACL,GAAG,KAAK;GACR,IAAI,OAAO,MAAM,UAAU;EAC7B;EAEJ,SAGI,OAAO;GACL,IAAI,OAAO,OAAO,SAAS;GAC3B,GAAG,KAAK;EACV;CAEN;AACF;;;ACnCA,IAAW,uCAAuC,cAAc,kBAAkB,SAAS,iBAAiB;CAE1G,IAAI,qBAAqB,QACvB,OAAO,aAAa;CAMtB,IAAI,aAAa,oBAAoB,WAAW,GAE9C,OAAO,CAAC;CAEV,IAAI;CACJ,IAAI,YAAY,SACd,0BAA0B,aAAa,gBAAgB,MAAM;MAE7D,0BAA0B,aAAa,gBAAgB,MAAM;CAE/D,IAAI,aAAa,gBAAgB,UAAU,2BAA2B,MAOpE,OAAO,aAAa;CAEtB,IAAI,2BAA2B,SAAS,gBAAgB,QAAQ,aAAa,oBAAoB,SAAS;EAMxG,IAAI,mBAAmB,aAAa,oBAAoB;EACxD,IAAI,oBAAoB,MACtB,OAAO,CAAC,gBAAgB;EAE1B,OAAO,CAAC;CACV;CACA,OAAO,aAAa,oBAAoB,QAAO,QAAO;EACpD,IAAI;EACJ,SAAS,gBAAgB,IAAI,cAAc,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,qBAAqB;CAC5H,CAAC;AACH;;;AC5CA,IAAW,gCAA+B,UAAS,MAAM,QAAQ;;;ACAjE,IAAW,sBAAqB,UAAS,MAAM;;;ACA/C,SAASI,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAIvT,SAAS,UAAU,OAAO;CACxB,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAChD,OAAO;AAGX;AACA,SAAS,UAAU,OAAO;CACxB,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAC7E,OAAO;AAGX;AACA,SAAS,aAAa,OAAO;CAC3B,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAChD,OAAO;CAET,IAAI,OAAO,UAAU,YACnB,QAAO,QAAO,MAAM,GAAG;AAG3B;AACA,SAAS,WAAW,OAAO;CACzB,IAAI,OAAO,UAAU,UACnB,OAAO;AAGX;AACA,SAAS,wBAAwB,MAAM;CACrC,IAAI,QAAQ,QAAQ,OAAO,SAAS,UAClC;CAQF,OAAO;EACL,MAPS,UAAU,OAAO,UAAU,KAAK,IAAI,IAAI,KAAA;EAQjD,MAPS,UAAU,OAAO,UAAU,KAAK,IAAI,IAAI,KAAA;EAQjD,SAPY,aAAa,OAAO,aAAa,KAAK,OAAO,IAAI,KAAA;EAQ7D,SAPY,aAAa,OAAO,KAAK,UAAU,KAAA;EAQ/C,OAPU,WAAW,OAAO,WAAW,KAAK,KAAK,IAAI,KAAA;EAQrD,MAPS,UAAU,OAAO,WAAW,KAAK,IAAI,IAAI,KAAA;CAQpD;AACF;AACA,SAAS,gBAAgB,mBAAmB,oBAAoB;CAK9D,IAAI,qBAAqB,MACvB,OAAO;CAET,OAAO;AACT;AACA,IAAW,yBAAyB,8BAA8B,aAAa,gBAAgB,oBAAoB,aAAa,wBAAwB,qBAAqB;CAC3K,IAAI,eAAe,QAAQ,0BAA0B,MACnD;CAEF,IAAI,YAAY,eAAe,WAC7B,eAAe,eAAe,cAC9B,iBAAiB,eAAe,gBAChC,eAAe,eAAe;CAEhC,OAAO,6BAA6B,QAAQ,KAAK,SAAS;EACxD,IAAI;EACJ,IAAI,oBAAoB,KAAK,mBAC3B,WAAW,KAAK;EAClB,IAAI,YAAY,gBAAgB,mBAAmB,SAAS;EAC5D,IAAI,SAAS,MAAM,QAAQ,SAAS,IAAI,UAAU,WAAW,gBAAgB,YAAY,IAAI;EAC7F,IAAI,gBAAgB,oBAAoB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,aAAa,QAAQ,sBAAsB,KAAK,IAAI,oBAAoB;EAE7K,IAAI,eAAe,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;EAChF,IAAI;EACJ,IAAI,sBAAsB,MAAM,QAAQ,MAAM,KAQ9C,CAAC,MAAM,QAAQ,OAAO,EAAE,KAexB,qBAAqB,QAAQ;GAC3B,iBAAiB,iBAAiB,QAAQ,oBAAoB,WAAW;GAUzE,IAAI,kBAAkB,MACpB,iBAAiB,uBAAuB,QAAQ,aAAa,cAAc,YAAY;EAE3F,OAOE,iBAAiB,uBAAuB,QAAQ,aAAa,cAAc,YAAY;EAEzF,IAAI,MAAM,QAAQ,cAAc,GAC9B,eAAe,SAAQ,SAAQ;GAC7B,IAAI,mBAAmB;GACvB,IAAI,aAAa,wBAAwB,IAAI;GAC7C,IAAI,WAAW,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;GAClF,IAAI,cAAc,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;GACrF,IAAI,cAAc,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;GACrF,IAAI,cAAcH,iBAAcA,iBAAc,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG;IAC/D,MAAM;IACN,MAAM,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;IAEzE,QAAQ,oBAAoB,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,WAAW,QAAQ,sBAAsB,KAAK,IAAI,oBAAoB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;IAClO,OAAO,mBAAmB,eAAe,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,QAAQ,qBAAqB,KAAK,IAAI,mBAAmB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;GAC/N,CAAC;GACD,IAAI,KAAK,gBAAgB;IACvB,sBAAsB;IACtB,SAAS;IACT,SAAS;IACT,OAAO,kBAAkB,aAAa,WAAW;IACjD,MAAM,YAAY,OAAO,KAAA,IAAY,OAAO,QAAQ;GACtD,CAAC,CAAC;EACJ,CAAC;OACI;GACL,IAAI;GAEJ,IAAI,KAAK,gBAAgB;IACvB,sBAAsB;IACtB,SAAS;IACT,SAAS;IAET,OAAO,kBAAkB,gBAAgB,YAAY;IAErD,OAAO,qBAAqB,kBAAkB,gBAAgB,YAAY,OAAO,QAAQ,uBAAuB,KAAK,IAAI,qBAAqB,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;GAC7M,CAAC,CAAC;EACJ;EACA,OAAO;CACT,GAAG,CAAG,CAAC;AACT;;;ACvIA,IAAW,iCAAiC,eAAe;CAAC;CAAmB;CAAc;AAAe,GAAG,oBAAoB;AAGnI,IAAW,kCAAkC,eAAe;CAFb,eAAe,EAAC,UAAS,MAAM,eAAe,iBAAgB,UAAS,MAAM,eAAe,UAAU,IAAI,gBAAgB,eAAe,CAAC,GAAG,gBAAgB,GAAG,UAAU,CAE5J;CAAmC;CAD/D,eAAe,CAAC,uBAAuB,mBAAmB,GAAG,iBACqB;AAA0B,GAAG,+BAA+B,EAC7K,gBAAgB,EACd,qBAAqB,yBACvB,EACF,CAAC;AACD,IAAI,yCAAyC,eAAe,CAAC,+BAA+B,IAAG,mBAAkB,eAAe,OAAO,SAAS,CAAC;AACjJ,IAAW,kCAAkC,eAAe,CAAC,+BAA+B,GAAG,2BAA2B,EACxH,gBAAgB,EACd,qBAAqB,yBACvB,EACF,CAAC;AACD,IAAI,oCAAoC,eAAe,CAAC,+BAA+B,IAAG,UAAS,MAAM,MAAK,SAAQ,CAAC,KAAK,IAAI,CAAC;;;;;;;AAQjI,IAAW,6BAA6B,eAAe,CAAC,iCAAiC,0BAA0B,GAAG,oBAAoB;AAC1I,IAAI,2BAA2B,eAAe;CAAC;CAAwC;CAA4B;AAAiB,GAAG,2BAA2B;AAClK,IAAI,gCAAgC,eAAe;CAAC;CAA4B;CAAmB;CAAiC;CAA4B;CAAmC;AAA+B,GAAG,uBAAuB;AAC5P,IAAI,oCAAoC,eAAe,CAAC,iBAAiB,GAAG,mBAAmB;AAE/F,IAAI,yCAAyC,eAAe,CAAC,mCAD7B,eAAe,CAAC,iBAAiB,IAAG,iBAAgB,aAAa,iBACD,CAAyB,GAAG,4CAA4C;AAGxK,IAAI,mCAAmC,eAAe;CADvB,eAAe;EAAC;EADV,eAAe,CAAC,+BAA+B,IAAG,mBAAkB,eAAe,OAAO,SAAS,CAC/D;EAAgC;EAAuB;CAAuB,GAAG,kBACnG;CAA0B;CAA4B;CAAuB;AAAsC,GAAG,0BAA0B;AAEvM,IAAI,8DAA8D,eAAe;CAAC;CAA4B;CADhE,eAAe,CAAC,+BAA+B,GAAG,8BACiC;CAAyC;CAA2B;CAAuB;AAA+B,GAAG,8DAA8D,EAC1T,gBAAgB,EACd,qBAAqB,0BACvB,EACF,CAAC;AAED,IAAI,mCAAmC,eAAe,CADf,eAAe;CAAC;CAAqB;CAAuB;AAAmB,GAAG,uBAClE,GAAkC,qBAAqB,GAAG,iBAAiB;AAElI,IAAI,oCAAoC,eAAe,CADf,eAAe;CAAC;CAAsB;CAAuB;AAAmB,GAAG,uBACnE,GAAmC,qBAAqB,GAAG,kBAAkB;AAKrI,IAAW,0BAA0B,eAAe;CAAC;CAAmB;CAAmB;CAA4B;CAA+B;CAAuB;CAD1I,eAAe;EAAC;EAAmB;EAAmC;EAAwC;EAAkC;EADxI,eAAe;GAAC;GADnB,eAAe,CADf,eAAe;IAAC;IAAsB;IAAuB;GAAmB,GAAG,uBACnE,GAAmC,qBAAqB,GAAG,kBACtB;GAAmC;EAAiC,GAAG,YAC4E;EAAsC;EAAmB;CAAqB,GAAG,sBAC7H;AAA4B,GAAG,iBAAiB;AAEpP,IAAW,4CAA4C,eAAe;CAAC;CAAmB;CAD7D,eAAe;EAAC;EAAyB;EAAmB;CAA8B,GAAG,gBACP;CAAwB;AAAqB,GAAG,8BAA8B;AACjM,IAAI,0BAAyB,UAAS;CAIpC,OAAO,gBAAgB,OAHR,sBAAsB,KAGP,GAFjB,oBAAoB,KAEO,GAAQ,KAAU;AAC5D;AACA,IAAW,oCAAoC,eAAe,CAAC,mBAAmB,sBAAsB,GAAG,2BAA2B;AAEtI,IAAW,yBAAyB,eAAe,CADhB,eAAe;CAAC;CAAmB;CAAgC;CAA2C;AAAiC,GAAG,sBACjI,CAA4B,GAAG,oBAAoB;AACvG,IAAI,+BAA+B,eAAe;CAAC;CAAmB;CAA+B;CAAmB;AAAqB,GAAG,sBAAsB;AACtK,IAAW,iCAAiC,eAAe;CAAC;CAAmB;CAA+B;CAAmB;AAAqB,GAAG,wBAAwB;AACjL,IAAI,6BAA6B,QAAQ,MAAM,eAAe,OAAO,OAAO,iBAAiB,mBAAmB,aAAa;CAC3H,IAAI,CAAC,MACH;CAEF,IAAI,OAAO,KAAK;CAChB,IAAI,gBAAgB,kBAAkB,QAAQ,QAAQ;CACtD,IAAI,CAAC,OACH;CAEF,IAAI,gBAAgB,kBAAkB,eAAe,MAAM,YAAY,MAAM,UAAU,IAAI,IAAI;CAC/F,IAAI,SAAS,SAAS,cAAc,MAAM,YAAY,MAAM,UAAU,IAAI,gBAAgB;CAC1F,SAAS,aAAa,eAAe,SAAS,SAAS,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,WAAW,IAAI,SAAS,MAAM,KAAK,MAAM,EAAE,IAAI,IAAI,SAAS;CAGvK,IAAI,iBAAiB,mBACnB,OAAO,kBAAkB,KAAK,OAAO,UAAU;EAC7C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GACrB,OAAO;GACP;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;CAIpB,OAAO,MAAM,OAAO,CAAC,CAAC,KAAK,OAAO,UAAU;EAC1C,IAAI,SAAS,MAAM,IAAI,KAAK;EAC5B,IAAI,CAAC,oBAAoB,MAAM,GAC7B,OAAO;EAET,OAAO;GACL,YAAY,SAAS;GAErB,OAAO,kBAAkB,gBAAgB,SAAS;GAClD;GACA;EACF;CACF,CAAC,CAAC,CAAC,OAAO,QAAQ;AACpB;;;;;;;;;AAUA,IAAW,yBAAyB,eAAe;CAAC;CAAmB;CAAmB;CAAgC;CAAwB;CAAwB;CAA8B;CAAgC;AAAqB,GAAG,yBAAyB;AACzR,IAAI,yBAAyB,eAAe;CAAC;CAA+B;CAAiC;AAAqB,IAAI,yBAAyB,0BAA0B,aAAa,wBAAwB,SAAS,QAAQ,yBAAyB,wBAAwB,CAAC;AACjS,IAAI,wBAAuB,UAAS,MAAM,QAAQ,SAAS;AAC3D,IAAI,sBAAqB,UAAS,MAAM,QAAQ,SAAS;AACzD,IAAII,kCAAgC,eAAe;CAAC;CAAoB;CAAwB;CAAsB;AAAkB,GAAG,8BAA8B;AACzK,IAAW,2BAA2B,eAAe;CAACA;CAA+B;CAA4B;CAA0B;AAAuB,GAAG,yBAAyB;AAC9L,IAAWC,sBAAoB,eAAe,CAAC,wBAAwB,wBAAwB,GAAG,kBAAkB;AACpH,IAAW,6BAA6B,eAAe,CAACD,+BAA6B,IAAG,uBAAsB;CAC5G,IAAI,CAAC,oBACH;CAEF,OAAO,mBAAmB;AAC5B,CAAC;AACD,IAAW,qCAAqC,eAAe,CAACA,+BAA6B,IAAG,uBAAsB;CACpH,IAAI,CAAC,oBACH;CAEF,OAAO,mBAAmB;AAC5B,CAAC;AACD,IAAIE,uCAAqC,eAAe;CAAC;CAAoB;CAAwB;CAAsB;AAAkB,GAAG,mCAAmC;AAEnL,IAAW,gCAAgC,eAAe,CAACF,iCADd,eAAe;CAAC;CAAkB;CAAmB;CAAmB;CAA2B;CAAwB;CAAoBE;AAAkC,GAAG,gCACvI,CAAsC,IAAI,yBAAyB,2BAA2B;CACtL,IAAI,4BAA4B,QAAQ,4BAA4B,KAAK,KAAK,wBAAwB,YACpG,OAAO,wBAAwB;CAEjC,OAAO;AACT,CAAC;AACD,IAAWC,0BAAwB,eAAe,CAACH,+BAA6B,IAAG,4BAA2B;CAC5G,IAAI;CACJ,QAAQ,wBAAwB,4BAA4B,QAAQ,4BAA4B,KAAK,IAAI,KAAK,IAAI,wBAAwB,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;AAC3N,CAAC;AAE0C,eAAe,CADlB,eAAe;CAACE;CAAoC;CAA0B;CAA4B;CAA0BD;CAAmB;CAA8B;AAAsB,GAAG,qBAC3L,CAA0B,IAAG,YAAW;CACjG,IAAI,WAAW,MACb;CAEF,IAAI,aAAa,QAAQ,KAAI,MAAK,EAAE,OAAO,CAAC,CAAC,QAAO,MAAK,KAAK,IAAI;CAClE,OAAO,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC;AACvC,CAAC;;;ACrLD,SAASG,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAKvT,IAAW,uBAAuB,eAAe,iBAAiB;AAClE,IAAW,+BAA+B;CACxC,IAAI,cAAc,eAAe;CACjC,IAAI,eAAe,eAAe,sBAAsB;CACxD,IAAI,mBAAmB,eAAe,sBAAsB;CAC5D,IAAI,CAAC,eAAe,CAAC,kBACnB,OAAO,kBAAkB,KAAA,GAAW,YAAY;CAElD,OAAO,kBAAkBH,iBAAcA,iBAAc,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,EACzE,OAAO,iBACT,CAAC,GAAG,YAAY;AAClB;;;ACpBA,SAASI,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAGvT,IAAW,gCAAgC,QAAQ,cAAc,aAAa,YAAY;CACxF,IAAI,QAAQ,aAAa,MAAK,SAAQ,QAAQ,KAAK,UAAU,WAAW;CACxE,IAAI,OAAO;EACT,IAAI,WAAW,cACb,OAAO;GACL,GAAG,MAAM;GACT,GAAG,QAAQ;EACb;EAEF,IAAI,WAAW,YACb,OAAO;GACL,GAAG,QAAQ;GACX,GAAG,MAAM;EACX;CAEJ;CACA,OAAO;EACL,GAAG;EACH,GAAG;CACL;AACF;;;;;;;;;;;;;AAcA,IAAW,4BAA4B,QAAQ,cAAc,aAAa,aAAa;CACrF,IAAI,QAAQ,aAAa,MAAK,SAAQ,QAAQ,KAAK,UAAU,WAAW;CACxE,IAAI,OAAO;EACT,IAAI,WAAW,WAAW;GACxB,IAAI,SAAS,MAAM;GACnB,IAAI,UAAU,SAAS;GACvB,OAAOH,iBAAcA,iBAAcA,iBAAc,CAAC,GAAG,QAAQ,GAAG,iBAAiB,SAAS,IAAI,SAAS,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG;IAChI,OAAO;IACP,QAAQ;GACV,CAAC;EACH;EACA,IAAI,SAAS,MAAM;EACnB,IAAI,QAAQ,SAAS;EACrB,OAAOA,iBAAcA,iBAAcA,iBAAc,CAAC,GAAG,QAAQ,GAAG,iBAAiB,SAAS,IAAI,SAAS,IAAI,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG;GAC9H;GACA;EACF,CAAC;CACH;CACA,OAAO;EACL,OAAO;EACP,WAAW;EACX,IAAI;EACJ,IAAI;EACJ,UAAU;EACV,aAAa;EACb,aAAa;EACb,QAAQ;EACR,YAAY;EACZ,GAAG;EACH,GAAG;CACL;AACF;AACA,SAAgB,mBAAmB,SAAS,QAAQ;CAClD,IAAI,IAAI,QAAQ,WACd,IAAI,QAAQ;CACd,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAO,OAAO,OAAO,SAAS,KAAK,OAAO,OAAO,KAAK,OAAO,MAAM,OAAO;AAC5G;AACA,IAAW,4BAA4B,YAAY,OAAO,eAAe,UAAU,UAAU;CAC3F,IAAI;CACJ,IAAI,OAAO,gBAAgB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,YAAY,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB;CAG9I,IAAI,OAAO,KAAK,cAAc,MAC5B,OAAO;CAET,IAAI,aAAa,eAAe,SAAS,QAAQ,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,IAAI,GAAG,KAAK,MAAM;EAEtG,IAAI,OAAO,MAAM,KAAK,MAAM;EAS5B,IAAI,YAAY,YAAY,YAAY,mBAAmB;GAAC;GAAY,aAAa;GAAM,aAAa;EAAI,CAAC,CAAC,MAAK,OAAM,iBAAiB,KAAK,aAAa,IAAI,eAAe,KAAK,UAAU;EAC9L,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;GAC5B,IAAI,gBAAgB,iBAAiB,kBAAkB,iBAAiB;GACxE,IAAI,SAAS,IAAI,KAAK,iBAAiB,cAAc,IAAI,QAAQ,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,cAAc,kBAAkB,cAAc,MAAM,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;GACvP,IAAI,OAAO,mBAAmB,cAAc,QAAQ,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB;GACpH,IAAI,QAAQ,KAAK,MAAM,KAAK,kBAAkB,cAAc,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,cAAc,kBAAkB,cAAc,IAAI,QAAQ,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;GAC1P,IAAI,qBAAqB,KAAK;GAC9B,IAAI,UAAU,QAAQ,OAAO,QAAQ,SAAS,MAC5C;GAEF,IAAI,SAAS,MAAM,MAAM,MAAM,SAAS,QAAQ,GAAG,GAAG;IACpD,IAAI,eAAe,CAAC;IACpB,IAAI,SAAS,QAAQ,GAAG,MAAM,SAAS,MAAM,KAAK,MAAM,EAAE,GAAG;KAC3D,qBAAqB;KACrB,IAAI,aAAa,MAAM,MAAM,KAAK,MAAM;KACxC,aAAa,KAAK,KAAK,IAAI,aAAa,aAAa,UAAU,CAAC;KAChE,aAAa,KAAK,KAAK,IAAI,aAAa,aAAa,UAAU,CAAC;IAClE,OAAO;KACL,qBAAqB;KACrB,IAAI,eAAe,QAAQ,MAAM,KAAK,MAAM;KAC5C,aAAa,KAAK,KAAK,IAAI,MAAM,eAAe,OAAO,CAAC;KACxD,aAAa,KAAK,KAAK,IAAI,MAAM,eAAe,OAAO,CAAC;IAC1D;IACA,IAAI,eAAe,CAAC,KAAK,IAAI,MAAM,qBAAqB,OAAO,CAAC,GAAG,KAAK,IAAI,MAAM,qBAAqB,OAAO,CAAC,CAAC;IAChH,IAAI,SAAS,aAAa,IAAI,aAAa,IAAI,KAAK,KAAK,SAAS,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG;KACzG,IAAI;KACJ,QAAQ,oBAAoB,cAAc,QAAQ,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB;IACtH;GACF,OAAO;IACL,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;IACrC,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;IACrC,IAAI,UAAU,WAAW,OAAO,IAAI,WAAW,OAAO,GAAG,KAAK,GAAG;KAC/D,IAAI;KACJ,QAAQ,oBAAoB,cAAc,QAAQ,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB;IACtH;GACF;EACF;CACF,OAAO,IAAI,OAET,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,MAAM;EAC/B,IAAI,OAAO,MAAM;EACjB,IAAI,QAAQ,MACV;EAEF,IAAI,OAAO,MAAM,KAAK;EACtB,IAAI,OAAO,MAAM,KAAK;EACtB,IAAI,OAAO,KAAK,QAAQ,QAAQ,eAAe,KAAK,aAAa,KAAK,cAAc,GAClF,OAAO,KAAK;EAEd,IAAI,OAAO,MAAM,KAAK,QAAQ,QAAQ,cAAc,KAAK,aAAa,KAAK,cAAc,GACvF,OAAO,KAAK;EAEd,IAAI,KAAK,KAAK,KAAK,MAAM,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,cAAc,KAAK,aAAa,KAAK,cAAc,KAAK,eAAe,KAAK,aAAa,KAAK,cAAc,GACxK,OAAO,KAAK;CAEhB;CAEF,OAAO;AACT;;;ACtIA,IAAW,qBAAqB;CAC9B,OAAO,eAAe,eAAe;AACvC;AACA,IAAI,wBAAwB,QAAQ,qBAAqB;AACzD,IAAI,eAAe,QAAQ,mBAAmB,YAAY;AAC1D,IAAI,oBAAoB,QAAQ,mBAAmB,UAAU,iBAAiB;AAC9E,IAAW,4BAA4B,eAAe,yBAAwB,UAASI,SAAO,QAAO,MAAK,EAAE,UAAU,CAAC;AACvH,IAAW,gCAAgC,eAAe;CAAC;CAAoB;CAAsB;CAAa;AAAgB,GAAG,8BAA8B;AACnK,IAAW,oBAAoB,eAAe;CAAC;CAA+B;CAA4B;CAA0B;AAAuB,GAAG,yBAAyB;AACvL,IAAW,wBAAwB,OAAO,kBAAkB,YAAY;CACtE,IAAI,oBAAoB,MACtB;CAEF,IAAI,eAAe,mBAAmB,KAAK;CAC3C,IAAI,qBAAqB,QAAQ;EAC/B,IAAI,YAAY,SACd,OAAO,aAAa,gBAAgB,MAAM;EAE5C,OAAO,aAAa,gBAAgB,MAAM;CAC5C;CACA,IAAI,YAAY,SACd,OAAO,aAAa,gBAAgB,MAAM;CAE5C,OAAO,aAAa,gBAAgB,MAAM;AAC5C;AACA,IAAW,qCAAqC,eAAe;CAAC;CAAoB;CAAsB;CAAa;AAAgB,GAAG,mCAAmC;AAC7K,IAAW,kCAAkC,eAAe;CAAC;CAAkB;CAAmB;CAAmB;CAA2B;CAAwB;CAAkB;AAAkC,GAAG,gCAAgC;AAC/P,IAAW,yBAAyB,eAAe,CAAC,+BAA+B,+BAA+B,IAAI,yBAAyB,2BAA2B;CACxK,IAAI;CACJ,QAAQ,wBAAwB,wBAAwB,gBAAgB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;AAC7I,CAAC;AACD,IAAW,oBAAoB,eAAe,CAAC,wBAAwB,iBAAiB,GAAG,kBAAkB;AAC7G,IAAW,uBAAuB,eAAe;CAAC;CAAoC;CAAmB;CAA4B;CAA0B;CAAmB;CAA8B;AAAoB,GAAG,qBAAqB;AAC5P,IAAW,wBAAwB,eAAe,CAAC,+BAA+B,iBAAiB,IAAI,yBAAyB,gBAAgB;CAC9I,OAAO;EACL,UAAU,wBAAwB,UAAU,eAAe;EAC3D;CACF;AACF,CAAC;AACD,IAAI,+BAA+B,YAAY,QAAQ,iBAAiB,kBAAkB,cAAc,qBAAqB,WAAW;CACtI,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,cAC3D;CAEF,IAAI,CAAC,mBAAmB,YAAY,MAAM,GACxC;CAGF,IAAI,cAAc,yBADR,6BAA6B,YAAY,MACR,GAAK,qBAAqB,cAAc,iBAAiB,gBAAgB;CACpH,IAAI,mBAAmB,6BAA6B,QAAQ,cAAc,aAAa,UAAU;CACjG,OAAO;EACL,aAAa,OAAO,WAAW;EAC/B;CACF;AACF;AACA,IAAI,2BAA2B,YAAY,QAAQ,cAAc,iBAAiB,kBAAkB,cAAc,wBAAwB;CACxI,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,cAC5E;CAEF,IAAI,WAAW,gBAAgB,YAAY,YAAY;CACvD,IAAI,CAAC,UACH;CAGF,IAAI,cAAc,yBADR,yBAAyB,UAAU,MACF,GAAK,qBAAqB,cAAc,iBAAiB,gBAAgB;CACpH,IAAI,mBAAmB,yBAAyB,QAAQ,cAAc,aAAa,QAAQ;CAC3F,OAAO;EACL,aAAa,OAAO,WAAW;EAC/B;CACF;AACF;AACA,IAAW,sBAAsB,YAAY,QAAQ,cAAc,iBAAiB,kBAAkB,cAAc,qBAAqB,WAAW;CAClJ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,cACtE;CAEF,IAAI,WAAW,gBAAgB,WAAW,YACxC,OAAO,4BAA4B,YAAY,QAAQ,iBAAiB,kBAAkB,cAAc,qBAAqB,MAAM;CAErI,OAAO,wBAAwB,YAAY,QAAQ,cAAc,iBAAiB,kBAAkB,cAAc,mBAAmB;AACvI;;;;;;;;;ACzFA,IAAW,4BAA4B,gBAAe,UAAS,MAAM,OAAO,YAAY,GAAG,WAAW,SAAS,GAAG,SAAS,eAAe,aAAa,WAAW,QAAQ,eAAe;CACvL,IAAI,UAAU,MACZ;CAEF,IAAI,QAAQ,UAAU;CACtB,IAAI,SAAS,MACX;CAEF,IAAI,YACF,OAAO,MAAM;CAEf,OAAO,MAAM;AACf,CAAC;AACD,IAAW,8BAA8B,gBAAe,UAAS,MAAM,OAAO,YAAW,cAAa;CACpG,IAAI,aAAa,OAAO,KAAK,SAAS,CAAC,CAAC,KAAI,cAAa,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,OAAO,eAAe,CAAC;CAEvH,OADoB,MAAM,KAAK,IAAI,IAAI,UAAU,CAC9B,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC;AAC3C,GAAG,EACD,gBAAgB,EACd,qBAAqB,2BACvB,EACF,CAAC;;;;;;;AC/BD,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AASvT,IAAIC,iBAAe,EACjB,WAAW,OAAO,OAAO,eAAe,CAAC,CAAC,QAAQ,KAAK,YAAYJ,iBAAcA,iBAAc,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAC1G,UAAU;CACT,SAAS,KAAA;CACT,iBAAiB,KAAA;CACjB,WAAW;AACb,EACF,CAAC,GAAG,CAAG,CAAC,EACV;AACA,IAAI,mBAAmB,IAAI,IAAI,OAAO,OAAO,eAAe,CAAC;AAC7D,SAAS,gBAAgB,QAAQ;CAC/B,OAAO,iBAAiB,IAAI,MAAM;AACpC;AACA,IAAI,cAAc,YAAY;CAC5B,MAAM;CACN,cAAA;CACA,UAAU;EACR,sBAAsB;GACpB,UAAU,OAAO,WAAW;IAC1B,IAAI,SAAS,OAAO,QAAQ;IAC5B,IAAI,MAAM,UAAU,SAClB,MAAM,UAAU,OAAO,CAAC,aAAa;SAErC,MAAM,UAAU,UAAU;KACxB,WAAW;KACX,SAAS,KAAA;KACT,iBAAiB,KAAA;IACnB;GAEJ;GACA,SAAS,mBAAmB;EAC9B;EACA,wBAAwB;GACtB,UAAU,OAAO,WAAW;IAC1B,IAAI,SAAS,OAAO,QAAQ;IAC5B,IAAI,MAAM,UAAU,SAAS;KAC3B,MAAM,UAAU,OAAO,CAAC,aAAa;KAQrC,IAAI,MAAM,UAAU,OAAO,CAAC,aAAa,KAAK,CAAC,gBAAgB,MAAM,GACnE,OAAO,MAAM,UAAU;IAE3B;GACF;GACA,SAAS,mBAAmB;EAC9B;EACA,6BAA6B;GAC3B,UAAU,OAAO,WAAW;IAC1B,IAAI,kBAAkB,OAAO,SAC3B,SAAS,gBAAgB,QACzB,UAAU,gBAAgB,SAC1B,aAAa,gBAAgB;IAC/B,IAAI,MAAM,UAAU,SAAS;KAC3B,IAAI,YACF,MAAM,UAAU,OAAO,CAAC,kBAAkB,UAAU,OAAO;UAE3D,MAAM,UAAU,OAAO,CAAC,UAAU,UAAU,OAAO;IAEvD,OACE,MAAM,UAAU,UAAU;KACxB,WAAW;KACX,SAAS,aAAa,KAAA,IAAY,UAAU,OAAO;KACnD,iBAAiB,aAAa,UAAU,OAAO,IAAI,KAAA;IACrD;GAEJ;GACA,SAAS,mBAAmB;EAC9B;EACA,+BAA+B;GAC7B,UAAU,OAAO,WAAW;IAC1B,IAAI,SAAS,OAAO,QAAQ;IAC5B,IAAI,MAAM,UAAU,SAAS;KAC3B,IAAI,OAAO,QAAQ,YACjB,MAAM,UAAU,OAAO,CAAC,kBAAkB,KAAA;UAE1C,MAAM,UAAU,OAAO,CAAC,UAAU,KAAA;IAEtC;GACF;GACA,SAAS,mBAAmB;EAC9B;CACF;AACF,CAAC;AACD,IAAI,uBAAuB,YAAY;AACrC,IAAA,uBAAuB,qBAAqB;AAC5C,IAAA,yBAAyB,qBAAqB;AAC9C,IAAA,8BAA8B,qBAAqB;AACnD,IAAA,gCAAgC,qBAAqB;AAEvD,IAAW,gBAAgB,YAAY;;;;;;;;;;;;;;;;;;;AClFvC,SAAgB,YAAY,MAAM;CAChC,IAAI,SAAS,KAAK,QAChB,WAAW,KAAK;CAWlB,IAAI,uBANmB,oBAMmB,KAAK,WAAW,KAAA,KAAa,WAAW;CAClF,IAAI,aAAa,cAAc;;;;;;;;;;;CAY/B,IAAI,uBAAuB,OAAO,KAAA,CAAS;CAC3C,IAAI,wBAAwB,uBAAO,IAAI,IAAI,CAAC;CAC5C,IAAI,WAAW,eAAe;CAC9B,IAAI,gBAAgB,gBAAe,UAAS,0BAA0B,OAAO,QAAQ,UAAU,CAAC;CAYhG,sBAAsB;EACpB,IAAI,CAAC,sBAAsB;GAEzB,IAAI,aAAa,sBAAsB;GACvC,WAAW,SAAQ,MAAK;IACtB,SAAS,uBAAuB,EAC9B,QAAQ,EACV,CAAC,CAAC;GACJ,CAAC;GACD,WAAW,MAAM;GACjB,qBAAqB,UAAU,KAAA;GAC/B;EACF;EASA,IAAI,CAAC,sBAAsB,QAAQ,IAAI,MAAM,GAAG;GAC9C,SAAS,qBAAqB,EAC5B,OACF,CAAC,CAAC;GACF,sBAAsB,QAAQ,IAAI,MAAM;EAC1C;EAGA,IAAI,eAAe;GACjB,qBAAqB,UAAU;GAC/B,IAAI,cAAc,sBAAsB;GACxC,YAAY,SAAQ,MAAK;IACvB,IAAI,MAAM,QAAQ;KAChB,SAAS,uBAAuB,EAC9B,QAAQ,EACV,CAAC,CAAC;KACF,YAAY,OAAO,CAAC;IACtB;GACF,CAAC;EACH;CACF,GAAG;EAAC;EAAU;EAAQ;EAAsB;CAAa,CAAC;CAG1D,sBAAsB;EACpB,IAAI,aAAa,sBAAsB;EACvC,aAAa;GACX,WAAW,SAAQ,MAAK;IACtB,SAAS,uBAAuB,EAC9B,QAAQ,EACV,CAAC,CAAC;GACJ,CAAC;GACD,WAAW,MAAM;EACnB;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,IAAI,CAAC,sBACH,OAAO;CAIT,IAAI,gBAAgB,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,qBAAqB;CAC9G,IAAI,CAAC,eAEH,OAAO;CAET,OAAoB,2BAAa,UAAU,aAAa;AAC1D;;;ACpIA,SAASK,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;;;AAyBvT,SAAS,aAAa,MAAM;CAC1B,IAAI,SAAS,KAAK,QAChB,aAAa,KAAK,YAClB,cAAc,KAAK;CACrB,IAAiB,6BAAe,MAAM,GACpC,OAAoB,2BAAa,QAAQ,WAAW;CAEtD,OAAoB,4BAAc,YAAY,WAAW;AAC3D;AACA,SAAgB,eAAe,OAAO;CACpC,IAAI;CACJ,IAAI,aAAa,MAAM,YACrB,UAAU,MAAM,SAChB,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,sBAAsB,MAAM,qBAC5B,SAAS,MAAM,QACf,SAAS,MAAM,QACf,mBAAmB,MAAM,kBACzB,YAAY,MAAM;CAGpB,IAAI,mBAAmB;CACvB,IAAI,gBAAgB;CACpB,IAAI,qBAAqB;CACzB,IAAI,CAAC,UAAU,CAAC,oBAAoB,cAAc,kBAAkB,qBAAqB,QACvF,OAAO;CAET,IAAI,WAAW,YAAY;CAC3B,IAAI,cAAc,gBAAgB;EAChC,YAAY;EACZ,aAAa;EACb,kBAAkB,gBAAgB;CACpC,OAAO,IAAI,cAAc,YAAY;EACnC,YAAY,mBAAmB,QAAQ,kBAAkB,QAAQ,mBAAmB;EACpF,aAAa;EACb,kBAAkB,gBAAgB;CACpC,OAAO,IAAI,WAAW,YAAY,kBAAkB,gBAAgB,GAAG;EACrE,IAAI,wBAAwB,sBAAsB,gBAAgB,GAChE,KAAK,sBAAsB,IAC3B,KAAK,sBAAsB,IAC3B,SAAS,sBAAsB;EAGjC,YAAY;GACV;GACA;GACA,YALa,sBAAsB;GAMnC,UALW,sBAAsB;GAMjC,aAAa;GACb,aAAa;EACf;EACA,aAAa;EACb,kBAAkB,gBAAgB;CACpC,OAAO;EACL,YAAY,EACV,QAAQ,gBAAgB,QAAQ,kBAAkB,MAAM,EAC1D;EACA,aAAa;EACb,kBAAkB,gBAAgB;CACpC;CACA,IAAI,iBAAiB,OAAO,WAAW,YAAY,eAAe,SAAS,OAAO,YAAY,KAAA;CAC9F,IAAI,cAAcH,iBAAcA,iBAAcA,iBAAcA,iBAAc;EACxE,QAAQ;EACR,eAAe;CACjB,GAAG,MAAM,GAAG,SAAS,GAAG,iCAAiC,MAAM,CAAC,GAAG,CAAC,GAAG;EACrE,SAAS;EACT,cAAc;EACd,WAAW,KAAK,2BAA2B,cAAc;CAC3D,CAAC;CACD,OAAoB,sBAAM,cAAc,aAAa,EACnD,SAAS,gBAAgB,MAAM,YAAY,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,gBAChG,GAAgB,sBAAM,cAAc,cAAc;EACxC;EACI;EACC;CACf,CAAC,CAAC;AACJ;AAUA,SAAgB,OAAO,OAAO;CAC5B,IAAI,sBAAsB,uBAAuB;CACjD,IAAI,SAAS,kBAAkB;CAC/B,IAAI,SAAS,eAAe;CAC5B,IAAI,YAAY,aAAa;CAC7B,IAAI,uBAAuB,QAAQ,UAAU,QAAQ,UAAU,QAAQ,aAAa,MAClF,OAAO;CAET,OAAoB,sBAAM,cAAc,gBAAgBF,YAAS,CAAC,GAAG,OAAO;EAClE;EACA;EACa;EACV;CACb,CAAC,CAAC;AACJ;;;AClIA,IAAW,uBAAoC,4BAAc,IAAI;AACjE,IAAW,yBAAyB,WAAW,oBAAoB;AECnE,IAAA,yBAAeM;CDDf,IAAI,MAAM,OAAO,UAAU;CACvB,IAAA,SAAS;;;;;;;;CASb,SAAS,SAAS,CAAC;CASnB,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,OAAO,OAAO,IAAI;EAMrC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,SAAS;CACxC;;;;;;;;;;CAWA,SAAS,GAAG,IAAI,SAAS,MAAM;EAC7B,KAAK,KAAK;EACV,KAAK,UAAU;EACf,KAAK,OAAO,QAAQ;CACtB;;;;;;;;;;;;CAaA,SAAS,YAAY,SAAS,OAAO,IAAI,SAAS,MAAM;EACtD,IAAI,OAAO,OAAO,YAChB,MAAM,IAAI,UAAU,iCAAiC;EAGvD,IAAI,WAAW,IAAI,GAAG,IAAI,WAAW,SAAS,IAAI,GAC9C,MAAM,SAAS,SAAS,QAAQ;EAEpC,IAAI,CAAC,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,OAAO,UAAU,QAAQ;OAC/D,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,IAAI,QAAQ,QAAQ,IAAI,CAAC,KAAK,QAAQ;OAChE,QAAQ,QAAQ,OAAO,CAAC,QAAQ,QAAQ,MAAM,QAAQ;EAE3D,OAAO;CACT;;;;;;;;CASA,SAAS,WAAW,SAAS,KAAK;EAChC,IAAI,EAAE,QAAQ,iBAAiB,GAAG,QAAQ,UAAU,IAAI,OAAO;OAC1D,OAAO,QAAQ,QAAQ;CAC9B;;;;;;;;CASA,SAAS,eAAe;EACtB,KAAK,UAAU,IAAI,OAAO;EAC1B,KAAK,eAAe;CACtB;;;;;;;;CASA,aAAa,UAAU,aAAa,SAAS,aAAa;EACxD,IAAI,QAAQ,CAAC,GACT,QACA;EAEJ,IAAI,KAAK,iBAAiB,GAAG,OAAO;EAEpC,KAAK,QAAS,SAAS,KAAK,SAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,MAAM,KAAK,SAAS,KAAK,MAAM,CAAC,IAAI,IAAI;EAGtE,IAAI,OAAO,uBACT,OAAO,MAAM,OAAO,OAAO,sBAAsB,MAAM,CAAC;EAG1D,OAAO;CACT;;;;;;;;CASA,aAAa,UAAU,YAAY,SAAS,UAAU,OAAO;EAC3D,IAAI,MAAM,SAAS,SAAS,QAAQ,OAChC,WAAW,KAAK,QAAQ;EAE5B,IAAI,CAAC,UAAU,OAAO,CAAC;EACvB,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE;EAEpC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAC7D,GAAG,KAAK,SAAS,EAAE,CAAC;EAGtB,OAAO;CACT;;;;;;;;CASA,aAAa,UAAU,gBAAgB,SAAS,cAAc,OAAO;EACnE,IAAI,MAAM,SAAS,SAAS,QAAQ,OAChC,YAAY,KAAK,QAAQ;EAE7B,IAAI,CAAC,WAAW,OAAO;EACvB,IAAI,UAAU,IAAI,OAAO;EACzB,OAAO,UAAU;CACnB;;;;;;;;CASA,aAAa,UAAU,OAAO,SAAS,KAAK,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI;EACrE,IAAI,MAAM,SAAS,SAAS,QAAQ;EAEpC,IAAI,CAAC,KAAK,QAAQ,MAAM,OAAO;EAE/B,IAAI,YAAY,KAAK,QAAQ,MACzB,MAAM,UAAU,QAChB,MACA;EAEJ,IAAI,UAAU,IAAI;GAChB,IAAI,UAAU,MAAM,KAAK,eAAe,OAAO,UAAU,IAAI,KAAA,GAAW,IAAI;GAE5E,QAAQ,KAAR;IACE,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,OAAO,GAAG;IACrD,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,SAAS,EAAE,GAAG;IACzD,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAI,EAAE,GAAG;IAC7D,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAI,IAAI,EAAE,GAAG;IACjE,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAI,IAAI,IAAI,EAAE,GAAG;IACrE,KAAK,GAAG,OAAO,UAAU,GAAG,KAAK,UAAU,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG;GAC3E;GAEA,KAAK,IAAI,GAAG,OAAO,IAAI,MAAM,MAAK,CAAC,GAAG,IAAI,KAAK,KAC7C,KAAK,IAAI,KAAK,UAAU;GAG1B,UAAU,GAAG,MAAM,UAAU,SAAS,IAAI;EAC5C,OAAO;GACL,IAAI,SAAS,UAAU,QACnB;GAEJ,KAAK,IAAI,GAAG,IAAI,QAAQ,KAAK;IAC3B,IAAI,UAAU,EAAE,CAAC,MAAM,KAAK,eAAe,OAAO,UAAU,EAAE,CAAC,IAAI,KAAA,GAAW,IAAI;IAElF,QAAQ,KAAR;KACE,KAAK;MAAG,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,OAAO;MAAG;KACpD,KAAK;MAAG,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,SAAS,EAAE;MAAG;KACxD,KAAK;MAAG,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,SAAS,IAAI,EAAE;MAAG;KAC5D,KAAK;MAAG,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;MAAG;KAChE;MACE,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,OAAO,IAAI,MAAM,MAAK,CAAC,GAAG,IAAI,KAAK,KACxD,KAAK,IAAI,KAAK,UAAU;MAG1B,UAAU,EAAE,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC,SAAS,IAAI;IACpD;GACF;EACF;EAEA,OAAO;CACT;;;;;;;;;;CAWA,aAAa,UAAU,KAAK,SAAS,GAAG,OAAO,IAAI,SAAS;EAC1D,OAAO,YAAY,MAAM,OAAO,IAAI,SAAS,KAAK;CACpD;;;;;;;;;;CAWA,aAAa,UAAU,OAAO,SAAS,KAAK,OAAO,IAAI,SAAS;EAC9D,OAAO,YAAY,MAAM,OAAO,IAAI,SAAS,IAAI;CACnD;;;;;;;;;;;CAYA,aAAa,UAAU,iBAAiB,SAAS,eAAe,OAAO,IAAI,SAAS,MAAM;EACxF,IAAI,MAAM,SAAS,SAAS,QAAQ;EAEpC,IAAI,CAAC,KAAK,QAAQ,MAAM,OAAO;EAC/B,IAAI,CAAC,IAAI;GACP,WAAW,MAAM,GAAG;GACpB,OAAO;EACT;EAEA,IAAI,YAAY,KAAK,QAAQ;EAE7B,IAAI,UAAU,IAEV;OAAA,UAAU,OAAO,OAChB,CAAC,QAAQ,UAAU,UACnB,CAAC,WAAW,UAAU,YAAY,UAEnC,WAAW,MAAM,GAAG;EAAA,OAEjB;GACL,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,UAAU,QAAQ,IAAI,QAAQ,KAClE,IACE,UAAU,EAAE,CAAC,OAAO,MACnB,QAAQ,CAAC,UAAU,EAAE,CAAC,QACtB,WAAW,UAAU,EAAE,CAAC,YAAY,SAErC,OAAO,KAAK,UAAU,EAAE;GAO5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,OAAO,OAAO,WAAW,IAAI,OAAO,KAAK;QACpE,WAAW,MAAM,GAAG;EAC3B;EAEA,OAAO;CACT;;;;;;;;CASA,aAAa,UAAU,qBAAqB,SAAS,mBAAmB,OAAO;EAC7E,IAAI;EAEJ,IAAI,OAAO;GACT,MAAM,SAAS,SAAS,QAAQ;GAChC,IAAI,KAAK,QAAQ,MAAM,WAAW,MAAM,GAAG;EAC7C,OAAO;GACL,KAAK,UAAU,IAAI,OAAO;GAC1B,KAAK,eAAe;EACtB;EAEA,OAAO;CACT;CAKA,aAAa,UAAU,MAAM,aAAa,UAAU;CACpD,aAAa,UAAU,cAAc,aAAa,UAAU;CAK5D,aAAa,WAAW;CAKxB,aAAa,eAAe;CAK5B,IAAI,gBAAgB,OAAO,QACzB,OAAO,UAAU;SC3UJA,EAAAA,CAAAA;;;ACFf,IAAI,cAAc,IAAIC,sBAAa;AAEnC,IAAW,qBAAqB;AAChC,IAAW,mBAAmB;;;;;;;;;;;;;ACU9B,IAAW,wBAAwB,MAAM,aAAa;CACpD,IAAI,CAAC,UAAU,OAAO,KAAA;CACtB,IAAI,CAAC,MAAM,QAAQ,IAAI,GAAG,OAAO,KAAA;CACjC,IAAI,WAAW,OAAO,SAAS,UAAU,EAAE;CAC3C,IAAI,MAAM,QAAQ,GAChB;CAEF,OAAO,KAAK;AACd;AAOA,IAAI,eAAe,YAAY;CAC7B,MAAM;CACN,cAAA;EAPA,WAAW;EACX,8BAA8B,KAAA;EAC9B,cAAc,KAAA;EACd,yBAAyB;CAId;CACX,UAAU,EACR,qBAAoB,UAAS;EAC3B,IAAI,MAAM,gBAAgB,MACxB,MAAM,eAAe,OAAO,sBAAsB;CAEtD,EACF;AACF,CAAC;AACD,IAAW,iBAAiB,aAAa;AACzC,IAAI,qBAAqB,aAAa,QAAQ;;;ACzC9C,SAAgB,+BAA+B,OAAO;CACpD,OAAO,MAAM,QAAQ;AACvB;AC0BA,IAAI,iBAAiB,YAAY;CAC/B,MAAM;CACN,cAAc;EAPd,WAAW,KAAA;EACX,cAAc,KAAA;EACd,gBAAgB;EAChB,cAAc;CAIA;CACd,UAAU;EACR,aAAa,OAAO,QAAQ;GAC1B,MAAM,YAAY,UAAU,OAAO,OAAO;GAC1C,IAAI,OAAO,WAAW,MAAM;IAC1B,MAAM,iBAAiB;IACvB,MAAM,eAAe;IACrB;GACF;GACA,IAAI,OAAO,QAAQ,SAAS,KAAK,MAAM,iBAAiB,OAAO,QAAQ,SAAS,GAC9E,MAAM,eAAe,OAAO,QAAQ,SAAS;EAEjD;EACA,gBAAgB,OAAO,QAAQ;GAC7B,MAAM,eAAe,OAAO;EAC9B;EACA,uBAAuB,OAAO,QAAQ;GACpC,IAAI,kBAAkB,OAAO,SAC3B,aAAa,gBAAgB,YAC7B,WAAW,gBAAgB;GAC7B,IAAI,cAAc,MAChB,MAAM,iBAAiB;GAEzB,IAAI,YAAY,MACd,MAAM,eAAe;EAEzB;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,eAAe;AACzC,IAAA,eAAe,sBAAsB;AACrC,IAAA,yBAAyB,sBAAsB;AAC7B,sBAAsB;AAE1C,IAAW,mBAAmB,eAAe;;;AChE7C,IAAIC,eAAY,CAAC,KAAK,GAAG;AACzB,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;;;;;;;;;;;;;AA0BtM,SAAS,+BAA+B;CACtC,IAAI,WAAW,eAAe,YAAY;CAC1C,IAAI,iBAAiB,eAAe,kBAAkB;CACtD,IAAI,WAAW,eAAe;CAC9B,IAAI,aAAa,eAAe,gBAAgB;CAChD,IAAI,eAAe,eAAe,sBAAsB;CACxD,IAAI,SAAS,eAAe;CAC5B,IAAI,UAAU,WAAW;CACzB,IAAI,YAAY,gBAAe,UAAS,MAAM,UAAU,SAAS;CACjE,gBAAgB;EACd,IAAI,YAAY,MAEd,OAAOC;EAET,IAAI,YAAY,gBAAgB,QAAQ,YAAY;GAClD,IAAI,mBAAmB,SAErB;GAEF,IAAI,aAAa,gBAEf;GASF,IAAI,OAAO,QAAQ,WAAW,OAAO;IACnC,SAAS,mBAAmB;KAC1B,QAAQ;KACR,YAAY,KAAA;KACZ,SAAS,KAAA;KACT,OAAO;KACP,OAAO,KAAA;KACP,eAAe,KAAA;KACf,iBAAiB,KAAA;IACnB,CAAC,CAAC;IACF;GACF;GACA,IAAI,eAAe,SAAS;IAC1B,IAAI;IACJ,IAAI,WAAW,WAAW,QAAQ,WAAW,KAAK,MAAM,kBAAkB,OAAO,aAAa,QAAQ,oBAAoB,KAAK,KAAK,gBAAgB,cAAc,OAAO,QAAQ,eAAe;KAC9L,IAAI,wBAAwB,OAAO,QAAQ,YACzC,KAAK,sBAAsB,GAC3B,KAAK,sBAAsB,GAC3B,uBAAuBF,4BAAyB,uBAAuBN,YAAS;KAClF,IAAI,wBAAwB,OAAO,QAAQ,eACzC,UAAU,sBAAsB,GAChC,UAAU,sBAAsB,GAChC,cAAc,sBAAsB,OACpC,eAAe,sBAAsB;KACvC,IAAI,mBAAmBE,iBAAcA,iBAAc,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG;MAChF,GAAG,QAAQ,KAAK,eAAe,KAAK,WAAW,cAAc,KAAK,QAAQ;MAC1E,GAAG,QAAQ,KAAK,gBAAgB,KAAK,WAAW,eAAe,KAAK,QAAQ;KAC9E,CAAC;KACD,SAASA,iBAAcA,iBAAc,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EACpD,SAASA,iBAAcA,iBAAc,CAAC,GAAG,OAAO,OAAO,GAAG,CAAC,GAAG,EAC5D,YAAY,iBACd,CAAC,EACH,CAAC,CAAC;IACJ,OACE,SAAS,MAAM;IAEjB;GACF;GACA,IAAI,gBAAgB,MAElB;GAEF,IAAI;GACJ,IAAI,OAAO,eAAe,YAexB,aAAa,aADY,WAAW,cAAc;IARhD,oBAAoB,OAAO,QAAQ,SAAS,OAAO,KAAA,IAAY,OAAO,OAAO,QAAQ,KAAK;IAC1F,iBAAiB,OAAO,QAAQ;IAChC,aAAa,OAAO,QAAQ,SAAS,OAAO,KAAA,IAAY,OAAO,OAAO,QAAQ,KAAK;IACnF,aAAa,OAAO,QAAQ;IAC5B,eAAe,OAAO,QAAQ;IAC9B,kBAAkB,OAAO,QAAQ;GAG6B,CACrB;QACtC,IAAI,eAAe,SAExB,aAAa,aAAa,MAAK,SAAQ,OAAO,KAAK,KAAK,MAAM,OAAO,QAAQ,KAAK;GAEpF,IAAI,aAAa,OAAO,QAAQ;GAChC,IAAI,cAAc,QAAQ,WAAW,MAAM;IACzC,SAAS,mBAAmB;KAC1B,QAAQ;KACR,YAAY,KAAA;KACZ,SAAS,KAAA;KACT,OAAO;KACP,OAAO,KAAA;KACP,eAAe,KAAA;KACf,iBAAiB,KAAA;IACnB,CAAC,CAAC;IACF;GACF;GACA,IAAI,cAAc,MAAM;IAatB,SAAS,mBAAmB;KAC1B,QAAQ;KACR,YAAY,KAAA;KACZ,SAAS,KAAA;KACT,OAAO;KACP,OAAO,KAAA;KACP,eAAe,OAAO,QAAQ;KAC9B,iBAAiB,KAAA;IACnB,CAAC,CAAC;IACF;GACF;GACA,IAAI,IAAI,WAAW,GACjB,IAAI,WAAW;GACjB,IAAI,iBAAiB,KAAK,IAAI,GAAG,QAAQ,IAAI,QAAQ,KAAK;GAC1D,IAAI,iBAAiB,KAAK,IAAI,GAAG,QAAQ,IAAI,QAAQ,MAAM;GAC3D,IAAI,mBAAmB;IACrB,GAAG,WAAW,eAAe,WAAW,aAAa;IACrD,GAAG,WAAW,eAAe,iBAAiB,WAAW;GAC3D;GAUA,SATiB,mBAAmB;IAClC,QAAQ,OAAO,QAAQ;IACvB,YAAY;IACZ,SAAS,OAAO,QAAQ;IACxB,OAAO,OAAO,WAAW,KAAK;IAC9B,OAAO,OAAO,QAAQ;IACtB,eAAe,OAAO,QAAQ;IAC9B,iBAAiB,OAAO,QAAQ;GAClC,CACkB,CAAC;EACrB;EACA,YAAY,GAAG,oBAAoB,QAAQ;EAC3C,aAAa;GACX,YAAY,IAAI,oBAAoB,QAAQ;EAC9C;CACF,GAAG;EAAC;EAAW;EAAU;EAAgB;EAAU;EAAY;EAAc;EAAQ;CAAO,CAAC;AAC/F;;;;;AAMA,SAAS,6BAA6B;CACpC,IAAI,WAAW,eAAe,YAAY;CAC1C,IAAI,iBAAiB,eAAe,kBAAkB;CACtD,IAAI,WAAW,eAAe;CAC9B,gBAAgB;EACd,IAAI,YAAY,MAEd,OAAOM;EAET,IAAI,YAAY,gBAAgB,QAAQ,YAAY;GAClD,IAAI,mBAAmB,SAErB;GAEF,IAAI,aAAa,gBACf,SAAS,uBAAuB,MAAM,CAAC;EAE3C;EACA,YAAY,GAAG,kBAAkB,QAAQ;EACzC,aAAa;GACX,YAAY,IAAI,kBAAkB,QAAQ;EAC5C;CACF,GAAG;EAAC;EAAU;EAAgB;CAAQ,CAAC;AACzC;;;;;;;;AASA,SAAgB,uCAAuC;CACrD,IAAI,WAAW,eAAe;CAC9B,gBAAgB;EACd,SAAS,mBAAmB,CAAC;CAC/B,GAAG,CAAC,QAAQ,CAAC;CACb,6BAA6B;CAC7B,2BAA2B;AAC7B;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,+BAA+B,kBAAkB,SAAS,kBAAkB,aAAa,aAAa,iBAAiB;CACrI,IAAI,gBAAgB,gBAAe,UAAS,qBAAqB,OAAO,kBAAkB,OAAO,CAAC;CAClG,IAAI,wBAAwB,eAAe,kCAAkC;CAC7E,IAAI,qBAAqB,eAAe,kBAAkB;CAC1D,IAAI,SAAS,eAAe,YAAY;CACxC,IAAI,aAAa,eAAe,gBAAgB;CAChD,IAAI,eAAe,eAAe,8BAA8B;CAQhE,IAAI,8BAA8B,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,kBAAkB;CAC7H,IAAI,UAAU,WAAW;CACzB,gBAAgB;EACd,IAAI,4BAMF;EAEF,IAAI,UAAU,MAKZ;EAEF,IAAI,sBAAsB,MAKxB;EAEF,IAAI,aAAa,mBAAmB;GAClC,QAAQ;GACR,YAAY;GACZ,SAAS;GACT,OAAO;GACP,OAAO,OAAO,gBAAgB,WAAW,OAAO,WAAW,IAAI;GAC/D,eAAe;GACf,iBAAiB;EACnB,CAAC;EACD,YAAY,KAAK,oBAAoB,QAAQ,YAAY,kBAAkB;CAC7E,GAAG;EAAC;EAA4B;EAAkB;EAAe;EAAuB;EAAa;EAAa;EAAoB;EAAQ;EAAY;EAAiB;CAAO,CAAC;AACrL;;;ACjTA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAkB9D,SAAS,cAAc,OAAO;CAC5B,OAAO,MAAM;AACf;AACA,SAAS,cAAc,SAAS,OAAO;CACrC,IAAiB,sBAAM,eAAe,OAAO,GAC3C,OAAoB,sBAAM,aAAa,SAAS,KAAK;CAEvD,IAAI,OAAO,YAAY,YACrB,OAAoB,sBAAM,cAAc,SAAS,KAAK;CAExD,OAAoB,sBAAM,cAAc,uBAAuB,KAAK;AACtE;AACA,IAAI,eAAe,CAAC;AACpB,IAAW,sBAAsB;CAC/B,oBAAoB;EAClB,GAAG;EACH,GAAG;CACL;CACA,mBAAmB;CACnB,iBAAiB;CACjB,QAAQ;CACR,cAAc,CAAC;CACf,QAAQ;CACR,YAAY;CACZ,eAAe;CACf,mBAAmB;CACnB,YAAY;CACZ,WAAW,CAAC;CACZ,YAAY,CAAC;CACb,QAAQ;CACR,kBAAkB;EAChB,GAAG;EACH,GAAG;CACL;CACA,WAAW;CACX,SAAS;CACT,gBAAgB;CAChB,cAAc,CAAC;AACjB;;;;;;;;;;;;;;AAeA,SAAgBK,UAAQ,cAAc;CACpC,IAAI,iBAAiB;CACrB,IAAI,QAAQ,oBAAoB,cAAc,mBAAmB;CACjE,IAAI,kBAAkB,MAAM,QAC1B,qBAAqB,MAAM,oBAC3B,oBAAoB,MAAM,mBAC1B,kBAAkB,MAAM,iBACxB,UAAU,MAAM,SAChB,aAAa,MAAM,YACnB,oBAAoB,MAAM,mBAC1B,SAAS,MAAM,QACf,gBAAgB,MAAM,eACtB,WAAW,MAAM,UACjB,mBAAmB,MAAM,kBACzB,iBAAiB,MAAM,gBACvB,eAAe,MAAM,cACrB,SAAS,MAAM,QACf,SAAS,MAAM,QACf,UAAU,MAAM,SAChB,eAAe,MAAM,cACrB,kBAAkB,MAAM,QACxB,SAAS,MAAM;CACjB,IAAI,WAAW,eAAe;CAC9B,IAAI,uBAAuB,OAAO,iBAAiB,WAAW,OAAO,YAAY,IAAI;CACrF,gBAAgB;EACd,SAAS,wBAAwB;GAC/B;GACA;GACA;GACA,QAAQ;GACR,cAAc;EAChB,CAAC,CAAC;CACJ,GAAG;EAAC;EAAU;EAAQ;EAAS;EAAQ;EAAiB;CAAoB,CAAC;CAC7E,IAAI,UAAU,WAAW;CACzB,IAAI,qBAAqB,sBAAsB;CAC/C,IAAI,mBAAmB,oBAAoB,MAAM;CACjD,IAAI,QAAQ,kBAAkB,gBAAe,UAAS,sBAAsB,OAAO,kBAAkB,SAAS,oBAAoB,CAAC,OAAO,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,CAAC,GAChM,cAAc,KAAK,aACnB,WAAW,KAAK;CAClB,IAAI,mBAAmB,gBAAe,UAAS,qBAAqB,OAAO,kBAAkB,SAAS,oBAAoB,CAAC;CAC3H,IAAI,iBAAiB,gBAAe,UAAS,kBAAkB,OAAO,kBAAkB,SAAS,oBAAoB,CAAC;CACtH,IAAI,aAAa,gBAAe,UAAS,uBAAuB,OAAO,kBAAkB,SAAS,oBAAoB,CAAC;CACvH,IAAI,UAAU;CACd,IAAI,2BAA2B,iBAAiB;CAOhD,IAAI,iBAAiB,QAAQ,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,cAAc,QAAQ,UAAU,KAAK,IAAI,QAAQ;CACzJ,IACE,qBAAqBN,kBADC,iBAAiB,CAAC,SAAS,aAAa,CACV,GAAG,CAAC,GACxD,kBAAkB,mBAAmB,IACrC,oBAAoB,mBAAmB;CACzC,IAAI,aAAa,qBAAqB,SAAS,iBAAiB,KAAA;CAChE,+BAA+B,kBAAkB,SAAS,YAAY,YAAY,aAAa,aAAa;CAC5G,IAAI,gBAAgB,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB;CAC/F,IAAI,iBAAiB,QAAQ,WAAW,QAAQ,oBAAoB,MAClE,OAAO;CAET,IAAI,eAAe,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU;CACtE,IAAI,CAAC,eACH,eAAe;CAEjB,IAAI,cAAc,aAAa,QAC7B,eAAe,eAAe,aAAa,QAAO,UAAS,MAAM,SAAS,SAAS,MAAM,SAAS,QAAQ,MAAM,cAAc,GAAG,eAAe,aAAa;CAE/J,IAAI,aAAa,aAAa,SAAS;CACvC,IAAI,sBAAsBJ,iBAAcA,iBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;EACpE,SAAS;EACT,OAAO;EACP,QAAQ;EACR;EACA;EACA;CACF,CAAC;CACD,IAAI,iBAA8B,sBAAM,cAAc,oBAAoB;EACpD;EACD;EACF;EACE;EACnB,QAAQ;EACI;EACA;EACJ;EACE;EACQ;EACF;EACP;EACK;EACG;EACjB,UAAU;EACV,oBAAoB,QAAQ,eAAe;CAC7C,GAAG,cAAc,SAAS,mBAAmB,CAAC;CAC9C,OAAoB,sBAAM,cAAcW,QAAM,UAAU,MAAmB,2BAAa,gBAAgB,aAAa,GAAG,iBAA8B,sBAAM,cAAc,QAAQ;EACxK;EACU;EACN;EACZ,SAAS;EACT,OAAO;CACT,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;AC1KA,IAAW,QAAO,WAAU;AAC5B,KAAK,cAAc;;;ACdnB,SAASC,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;AAIvT,IAAa,WAAb,MAAsB;CACpB,YAAY,SAAS;EACnB,mBAAgB,MAAM,yBAAS,IAAI,IAAI,CAAC;EACxC,KAAK,UAAU;CACjB;CACA,IAAI,KAAK;EACP,IAAI,QAAQ,KAAK,MAAM,IAAI,GAAG;EAC9B,IAAI,UAAU,KAAA,GAAW;GACvB,KAAK,MAAM,OAAO,GAAG;GACrB,KAAK,MAAM,IAAI,KAAK,KAAK;EAC3B;EACA,OAAO;CACT;CACA,IAAI,KAAK,OAAO;EACd,IAAI,KAAK,MAAM,IAAI,GAAG,GACpB,KAAK,MAAM,OAAO,GAAG;OAChB,IAAI,KAAK,MAAM,QAAQ,KAAK,SAAS;GAC1C,IAAI,WAAW,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;GACxC,IAAI,YAAY,MACd,KAAK,MAAM,OAAO,QAAQ;EAE9B;EACA,KAAK,MAAM,IAAI,KAAK,KAAK;CAC3B;CACA,QAAQ;EACN,KAAK,MAAM,MAAM;CACnB;CACA,OAAO;EACL,OAAO,KAAK,MAAM;CACpB;AACF;;;ACpCA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAOvT,IAAI,gBAAgBH,iBAAc,CAAC,GAAG;CAHpC,WAAW;CACX,aAAa;AAEmC,CAAC;AACnD,IAAI,cAAc,IAAI,SAAS,cAAc,SAAS;AACtD,IAAI,aAAa;CACf,UAAU;CACV,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,YAAY;AACd;AACA,IAAI,sBAAsB;AAC1B,SAAS,eAAe,MAAM,OAAO;CAEnC,IAAI,WAAW,MAAM,YAAY;CACjC,IAAI,aAAa,MAAM,cAAc;CACrC,IAAI,aAAa,MAAM,cAAc;CACrC,IAAI,YAAY,MAAM,aAAa;CACnC,IAAI,gBAAgB,MAAM,iBAAiB;CAC3C,IAAI,gBAAgB,MAAM,iBAAiB;CAC3C,OAAO,GAAG,OAAO,MAAM,GAAG,CAAC,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,OAAO,YAAY,GAAG,CAAC,CAAC,OAAO,YAAY,GAAG,CAAC,CAAC,OAAO,WAAW,GAAG,CAAC,CAAC,OAAO,eAAe,GAAG,CAAC,CAAC,OAAO,aAAa;AAC1K;;;;;;;AAQA,IAAI,sBAAsB,MAAM,UAAU;CACxC,IAAI;EACF,IAAI,kBAAkB,SAAS,eAAe,mBAAmB;EACjE,IAAI,CAAC,iBAAiB;GACpB,kBAAkB,SAAS,cAAc,MAAM;GAC/C,gBAAgB,aAAa,MAAM,mBAAmB;GACtD,gBAAgB,aAAa,eAAe,MAAM;GAClD,SAAS,KAAK,YAAY,eAAe;EAC3C;EAGA,OAAO,OAAO,gBAAgB,OAAO,YAAY,KAAK;EACtD,gBAAgB,cAAc,GAAG,OAAO,IAAI;EAC5C,IAAI,OAAO,gBAAgB,sBAAsB;EACjD,OAAO;GACL,OAAO,KAAK;GACZ,QAAQ,KAAK;EACf;CACF,SAAS,SAAS;EAChB,OAAO;GACL,OAAO;GACP,QAAQ;EACV;CACF;AACF;AACA,IAAW,gBAAgB,SAAS,cAAc,MAAM;CACtD,IAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC;CACjF,IAAI,SAAS,KAAA,KAAa,SAAS,QAAQ,OAAO,OAChD,OAAO;EACL,OAAO;EACP,QAAQ;CACV;CAIF,IAAI,CAAC,cAAc,aACjB,OAAO,mBAAmB,MAAM,KAAK;CAEvC,IAAI,WAAW,eAAe,MAAM,KAAK;CACzC,IAAI,eAAe,YAAY,IAAI,QAAQ;CAC3C,IAAI,cACF,OAAO;CAIT,IAAI,SAAS,mBAAmB,MAAM,KAAK;CAG3C,YAAY,IAAI,UAAU,MAAM;CAChC,OAAO;AACT;;;AC1FA,IAAI;AACJ,SAASI,kBAAe,GAAG,GAAG;CAAE,OAAOC,mBAAgB,CAAC,KAAKC,yBAAsB,GAAG,CAAC,KAAKC,+BAA4B,GAAG,CAAC,KAAKC,oBAAiB;AAAG;AACrJ,SAASA,sBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,+BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,qBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,qBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,qBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,yBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,mBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAC9D,SAASK,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAEvT,IAAI,2BAA2B;AAC/B,IAAI,wBAAwB;AAC5B,IAAI,wBAAwB;AAC5B,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;CACrB,IAAI,KAAK;CACT,IAAI,KAAK;CACT,IAAI,KAAK;CACT,IAAI;CACJ,IAAI;CACJ,GAAG,KAAM;CACT,IAAI;AACN;AACA,IAAI,yBAAyB;CAAC;CAAM;CAAM;CAAM;CAAM;CAAM;CAAK;AAAI;AACrE,SAAS,gBAAgB,MAAM;CAC7B,OAAO,uBAAuB,SAAS,IAAI;AAC7C;AACA,IAAI,UAAU;AACd,SAAS,YAAY,OAAO,MAAM;CAChC,OAAO,QAAQ,iBAAiB;AAClC;AACA,IAAM,aAAN,MAAM,WAAW;CACf,OAAO,MAAM,KAAK;EAChB,IAAI;EACJ,IACE,QAAQR,mBADE,wBAAwB,gBAAgB,KAAK,GAAG,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,GACxG,CAAC,GAC9B,SAAS,MAAM,IACf,OAAO,MAAM;EACf,IAAI,UAAU,MACZ,OAAO,WAAW;EAEpB,OAAO,IAAI,WAAW,WAAW,MAAM,GAAG,SAAS,QAAQ,SAAS,KAAK,IAAI,OAAO,EAAE;CACxF;CACA,YAAY,KAAK,MAAM;EACrB,KAAK,MAAM;EACX,KAAK,OAAO;EACZ,KAAK,MAAM;EACX,KAAK,OAAO;EACZ,IAAI,MAAM,GAAG,GACX,KAAK,OAAO;EAEd,IAAI,SAAS,MAAM,CAAC,sBAAsB,KAAK,IAAI,GAAG;GACpD,KAAK,MAAM;GACX,KAAK,OAAO;EACd;EACA,IAAI,gBAAgB,IAAI,GAAG;GACzB,KAAK,MAAM,YAAY,KAAK,IAAI;GAChC,KAAK,OAAO;EACd;CACF;CACA,IAAI,OAAO;EACT,IAAI,KAAK,SAAS,MAAM,MACtB,OAAO,IAAI,WAAW,KAAK,EAAE;EAE/B,OAAO,IAAI,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK,IAAI;CACvD;CACA,SAAS,OAAO;EACd,IAAI,KAAK,SAAS,MAAM,MACtB,OAAO,IAAI,WAAW,KAAK,EAAE;EAE/B,OAAO,IAAI,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK,IAAI;CACvD;CACA,SAAS,OAAO;EACd,IAAI,KAAK,SAAS,MAAM,MAAM,SAAS,MAAM,KAAK,SAAS,MAAM,MAC/D,OAAO,IAAI,WAAW,KAAK,EAAE;EAE/B,OAAO,IAAI,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK,QAAQ,MAAM,IAAI;CACrE;CACA,OAAO,OAAO;EACZ,IAAI,KAAK,SAAS,MAAM,MAAM,SAAS,MAAM,KAAK,SAAS,MAAM,MAC/D,OAAO,IAAI,WAAW,KAAK,EAAE;EAE/B,OAAO,IAAI,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK,QAAQ,MAAM,IAAI;CACrE;CACA,WAAW;EACT,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI;CAC7C;CACA,QAAQ;EACN,OAAO,MAAM,KAAK,GAAG;CACvB;AACF;AACA,cAAc;AACdM,mBAAgB,YAAY,OAAO,IAAI,YAAY,KAAK,EAAE,CAAC;AAC3D,SAAS,oBAAoB,MAAM;CACjC,IAAI,QAAQ,QAAQ,KAAK,SAAS,OAAO,GACvC,OAAO;CAET,IAAI,UAAU;CACd,OAAO,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,GAAG,GAAG;EACrD,IAAI;EACJ,IACE,QAAQN,mBADG,wBAAwB,yBAAyB,KAAK,OAAO,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,GACrH,CAAC,GAC/B,cAAc,MAAM,IACpB,WAAW,MAAM,IACjB,eAAe,MAAM;EACvB,IAAI,MAAM,WAAW,MAAM,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAc,EAAE;EAC5F,IAAI,MAAM,WAAW,MAAM,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,eAAe,EAAE;EAC/F,IAAI,SAAS,aAAa,MAAM,IAAI,SAAS,GAAG,IAAI,IAAI,OAAO,GAAG;EAClE,IAAI,OAAO,MAAM,GACf,OAAO;EAET,UAAU,QAAQ,QAAQ,0BAA0B,OAAO,SAAS,CAAC;CACvE;CACA,OAAO,QAAQ,SAAS,GAAG,KAAK,kBAAkB,KAAK,OAAO,GAAG;EAC/D,IAAI;EACJ,IACE,QAAQA,mBADG,wBAAwB,sBAAsB,KAAK,OAAO,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,GAClH,CAAC,GAC/B,eAAe,MAAM,IACrB,YAAY,MAAM,IAClB,gBAAgB,MAAM;EACxB,IAAI,OAAO,WAAW,MAAM,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,eAAe,EAAE;EAChG,IAAI,OAAO,WAAW,MAAM,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,EAAE;EACnG,IAAI,UAAU,cAAc,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI;EACrE,IAAI,QAAQ,MAAM,GAChB,OAAO;EAET,UAAU,QAAQ,QAAQ,uBAAuB,QAAQ,SAAS,CAAC;CACrE;CACA,OAAO;AACT;AACA,IAAI,oBAAoB;AACxB,SAAS,qBAAqB,MAAM;CAClC,IAAI,UAAU;CACd,IAAI;CAEJ,QAAQ,QAAQ,kBAAkB,KAAK,OAAO,MAAM,MAAM;EACxD,IAEE,0BADUA,kBAAeS,OAAQ,CACD,CAAC,CAAC;EACpC,UAAU,QAAQ,QAAQ,mBAAmB,oBAAoB,uBAAuB,CAAC;CAC3F;CACA,OAAO;AACT;AACA,SAAS,mBAAmB,YAAY;CACtC,IAAI,UAAU,WAAW,QAAQ,QAAQ,EAAE;CAC3C,UAAU,qBAAqB,OAAO;CACtC,UAAU,oBAAoB,OAAO;CACrC,OAAO;AACT;AACA,SAAgB,uBAAuB,YAAY;CACjD,IAAI;EACF,OAAO,mBAAmB,UAAU;CACtC,SAAS,SAAS;EAChB,OAAO;CACT;AACF;AACA,SAAgB,cAAc,YAAY;CACxC,IAAI,SAAS,uBAAuB,WAAW,MAAM,GAAG,EAAE,CAAC;CAC3D,IAAI,WAAW,SACb,OAAO;CAET,OAAO;AACT;;;ACnKA,IAAIC,eAAY;CAAC;CAAK;CAAK;CAAc;CAAa;CAAQ;CAAc;CAAc;AAAgB;AACxGC,IAAAA,eAAa;CAAC;CAAM;CAAM;CAAS;CAAa;AAAU;AAC5D,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAASC,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAW9D,IAAI,kBAAkB;AACtB,IAAI,uBAAsB,SAAQ;CAChC,IAAI,WAAW,KAAK,UAClB,WAAW,KAAK,UAChB,QAAQ,KAAK;CACf,IAAI;EACF,IAAI,QAAQ,CAAC;EACb,IAAI,CAAC,UAAU,QAAQ,GAAG;GACxB,IAAI,UACF,QAAQ,SAAS,SAAS,CAAC,CAAC,MAAM,EAAE;QAEpC,QAAQ,SAAS,SAAS,CAAC,CAAC,MAAM,eAAe;EAErD;EAMA,OAAO;GACL,wBAN2B,MAAM,KAAI,UAAS;IAC9C;IACA,OAAO,cAAc,MAAM,KAAK,CAAC,CAAC;GACpC,EAGuB;GACrB,YAHe,WAAW,IAAI,cAAc,QAAU,KAAK,CAAC,CAAC;EAI/D;CACF,SAAS,SAAS;EAChB,OAAO;CACT;AACF;;;;AAMA,SAAgB,kBAAkB,OAAO;CACvC,OAAO,UAAU,WAAW,UAAU,YAAY,UAAU,SAAS,UAAU;AACjF;;;;;;;AAUA,SAAgB,iBAAiB,KAAK;CACpC,OAAO,UAAU,GAAG,KAAK,OAAO,QAAQ,YAAY,OAAO,QAAQ,YAAY,OAAO,QAAQ;AAChG;AACA,IAAI,aAAa,OAAO,WAAW,YAAY,eAAe,MAAM,QAAQ,QAAQ,UAAU;CAC5F,IAAI,OAAO,MAAM,MACf,QAAQ,MAAM;CAChB,IAAI,cAAc,OAAO,OAAO,SAAS;CACzC,IAAI,eAAe,SAAS,SAAS,aAAa,QAAQ,cAAc,YAAY,QAAQ,QAAQ,aAAa,OAAO,SAAS,IAAI;EAEnI,YAAY,MAAM,KAAK,IAAI;EAC3B,YAAY,SAAS,QAAQ;CAC/B,OAAO;EAEL,IAAI,UAAU;GACZ,OAAO,CAAC,IAAI;GACZ;EACF;EACA,OAAO,KAAK,OAAO;CACrB;CACA,OAAO;AACT,GAAG,CAAC,CAAC;AACL,IAAI,mBAAkB,UAAS,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC;AAC/E,IAAI,SAAS;AACb,IAAI,iBAAiB,MAAM,OAAO,UAAU,OAAO,UAAU,WAAW,YAAY,eAAe;CAEjG,IAAI,QAAQ,oBAAoB;EAC9B;EACA;EACA,UAJa,KAAK,MAAM,GAAG,KAIV,IAAI;CACvB,CAAC;CACD,IAAI,CAAC,OACH,OAAO,CAAC,OAAO,CAAC,CAAC;CAEnB,IAAI,SAAS,UAAU,MAAM,wBAAwB,WAAW,YAAY,UAAU;CAEtF,OAAO,CADY,OAAO,SAAS,YAAY,gBAAgB,MAAM,CAAC,CAAC,QAAQ,OAAO,SAAS,GACzE,MAAM;AAC9B;AACA,IAAI,yBAAyB,OAAO,8BAA8B,YAAY,WAAW,eAAe;CACtG,IAAI,WAAW,MAAM,UACnB,WAAW,MAAM,UACjB,QAAQ,MAAM,OACd,WAAW,MAAM;CACnB,IAAI,mBAAmB,SAAS,QAAQ;CACxC,IAAI,OAAO,OAAO,QAAQ;CAC1B,IAAI,iBAAiB,UAAU,8BAA8B,WAAW,YAAY,UAAU;CAC9F,IAAI,CAAC,oBAAoB,YACvB,OAAO;CAGT,IAAI,EADY,eAAe,SAAS,YAAY,gBAAgB,cAAc,CAAC,CAAC,QAAQ,OAAO,SAAS,IAE1G,OAAO;CAET,IAAI,QAAQ;CACZ,IAAI,MAAM,KAAK,SAAS;CACxB,IAAI,aAAa;CACjB,IAAI;CACJ,OAAO,SAAS,OAAO,cAAc,KAAK,SAAS,GAAG;EACpD,IAAI,SAAS,KAAK,OAAO,QAAQ,OAAO,CAAC;EAEzC,IACE,kBAAkBD,iBADC,cAAc,MADxB,SAAS,GAC2B,UAAU,OAAO,UAAU,WAAW,YAAY,UACjD,GAAG,CAAC,GAClD,mBAAmB,gBAAgB,IACnC,SAAS,gBAAgB;EAC3B,IAEE,qBADkBA,iBADE,cAAc,MAAM,QAAQ,UAAU,OAAO,UAAU,WAAW,YAAY,UACnD,GAAG,CACf,CAAC,CAAC;EACvC,IAAI,CAAC,oBAAoB,CAAC,oBACxB,QAAQ,SAAS;EAEnB,IAAI,oBAAoB,oBACtB,MAAM,SAAS;EAEjB,IAAI,CAAC,oBAAoB,oBAAoB;GAC3C,gBAAgB;GAChB;EACF;EACA;CACF;CAIA,OAAO,iBAAiB;AAC1B;AACA,IAAI,4BAA2B,aAAY;CAEzC,OAAO,CAAC;EACN,OAFU,CAAC,UAAU,QAAQ,IAAI,SAAS,SAAS,CAAC,CAAC,MAAM,eAAe,IAAI,CAAC;EAG/E,OAAO,KAAA;CACT,CAAC;AACH;AACA,IAAW,mBAAkB,UAAS;CACpC,IAAI,QAAQ,MAAM,OAChB,aAAa,MAAM,YACnB,WAAW,MAAM,UACjB,QAAQ,MAAM,OACd,WAAW,MAAM,UACjB,WAAW,MAAM;CAEnB,KAAK,SAAS,eAAe,CAAC,OAAO,OAAO;EAC1C,IAAI,wBAAwB;EAC5B,IAAI,aAAa,oBAAoB;GACnC;GACA;GACA;EACF,CAAC;EACD,IAAI,YAAY;GACd,IAAI,MAAM,WAAW,wBACnB,KAAK,WAAW;GAClB,yBAAyB;GACzB,aAAa;EACf,OACE,OAAO,yBAAyB,QAAQ;EAE1C,OAAO,sBAAsB;GAC3B;GACA;GACA;GACA;EACF,GAAG,wBAAwB,YAAY,OAAO,QAAQ,UAAU,CAAC;CACnE;CACA,OAAO,yBAAyB,QAAQ;AAC1C;AACA,IAAI,eAAe;AACnB,IAAW,mBAAmB;CAC5B,OAAO;CACP,UAAU;CAEV,WAAW;CACX,MAAM;CACN,YAAY;CACZ,YAAY;CACZ,YAAY;CAEZ,gBAAgB;CAChB,GAAG;CACH,GAAG;AACL;AACA,IAAW,OAAoB,0BAAY,cAAc,QAAQ;CAC/D,IAAI,uBAAuB,oBAAoB,cAAc,gBAAgB,GAC3E,SAAS,qBAAqB,GAC9B,SAAS,qBAAqB,GAC9B,aAAa,qBAAqB,YAClC,YAAY,qBAAqB,WACjC,OAAO,qBAAqB,MAC5B,aAAa,qBAAqB,YAClC,aAAa,qBAAqB,YAClC,iBAAiB,qBAAqB,gBACtC,QAAQF,4BAAyB,sBAAsBH,YAAS;CAClE,IAAI,eAAe,cAAc;EAC/B,OAAO,gBAAgB;GACrB,UAAU,MAAM;GAChB,UAAU,MAAM;GAChB,UAAU,MAAM;GAChB;GACA,OAAO,MAAM;GACb,OAAO,MAAM;EACf,CAAC;CACH,GAAG;EAAC,MAAM;EAAU,MAAM;EAAU,MAAM;EAAU;EAAY,MAAM;EAAO,MAAM;CAAK,CAAC;CACzF,IAAI,KAAK,MAAM,IACb,KAAK,MAAM,IACX,QAAQ,MAAM,OACd,YAAY,MAAM,WAClB,WAAW,MAAM,UACjB,YAAYG,4BAAyB,OAAOF,YAAU;CACxD,IAAI,CAAC,WAAW,MAAM,KAAK,CAAC,WAAW,MAAM,KAAK,aAAa,WAAW,GACxE,OAAO;CAET,IAAI,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,IAAI,KAAK;CAC9C,IAAI,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,IAAI,KAAK;CAC9C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,oBAAoB,CAAC,GACnD,OAAO;CAET,IAAI;CACJ,QAAQ,gBAAR;EACE,KAAK;GACH,UAAU,cAAc,QAAQ,OAAO,WAAW,GAAG,CAAC;GACtD;EACF,KAAK;GACH,UAAU,cAAc,QAAQ,QAAQ,aAAa,SAAS,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,CAAC,OAAO,WAAW,QAAQ,CAAC;GACpI;EACF,SACE,UAAU,cAAc,QAAQ,OAAO,aAAa,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,YAAY,GAAG,CAAC;CAEnG;CACA,IAAI,aAAa,CAAC;CAClB,IAAI,YAAY,aAAa;CAC7B,IAAI,cAAc,aAAa,MAAM;EACnC,IAAI,YAAY,UAAU;EAC1B,IAAI,QAAQ,MAAM;EAClB,WAAW,KAAK,SAAS,OAAO,SAAS,KAAK,KAAK,SAAS,SAAS,IAAI,QAAQ,YAAY,GAAG,GAAG,CAAC;CACtG;CACA,IAAI,OACF,WAAW,KAAK,UAAU,OAAO,OAAO,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;CAE9E,IAAI,WAAW,QACb,UAAU,YAAY,WAAW,KAAK,GAAG;CAE3C,OAAoB,sBAAM,cAAc,QAAQC,YAAS,CAAC,GAAG,uBAAuB,SAAS,GAAG;EACzF;EACF;EACA;EACH,WAAW,KAAK,iBAAiB,SAAS;EAC9B;EACZ,MAAM,KAAK,SAAS,KAAK,IAAI,eAAe;CAC9C,CAAC,GAAG,aAAa,KAAK,MAAM,UAAU;EACpC,IAAI,QAAQ,KAAK,MAAM,KAAK,WAAW,KAAK,GAAG;EAC/C,OAGE,sBAAM,cAAc,SAAS;GACxB;GACH,IAAI,UAAU,IAAI,UAAU;GAC5B,KAAK,GAAG,OAAO,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK;EACzC,GAAG,KAAK;CAEZ,CAAC,CAAC;AACJ,CAAC;AACD,KAAK,cAAc;;;AC1RnB,IAAIS,eAAY,CAAC,UAAU;AACzBC,IAAAA,eAAa,CAAC,SAAS;AACzB,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,cAAW;CAAE,OAAO,cAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,YAAS,MAAM,MAAM,SAAS;AAAG;;;;;;;;;;AA6BnR,IAAI,wBAAqC,4BAAc,IAAI;AAC3D,IAAW,iCAAgC,SAAQ;CACjD,IAAI,IAAI,KAAK,GACX,IAAI,KAAK,GACT,aAAa,KAAK,YAClB,aAAa,KAAK,YAClB,QAAQ,KAAK,OACb,SAAS,KAAK,QACd,WAAW,KAAK;CAClB,IAAI,UAAU,eAAe;EAC3B;EACA;EACA;EACA;EACA;EACA;CACF,IAAI;EAAC;EAAG;EAAG;EAAY;EAAY;EAAO;CAAM,CAAC;CACjD,OAAoB,sBAAM,cAAc,sBAAsB,UAAU,EACtE,OAAO,QACT,GAAG,QAAQ;AACb;AACA,IAAI,iCAAiC;CACnC,IAAI,oBAAoB,WAAW,qBAAqB;CACxD,IAAI,eAAe,WAAW;CAC9B,OAAO,sBAAsB,eAAe,4BAA4B,YAAY,IAAI,KAAA;AAC1F;AACA,IAAI,oBAAiC,4BAAc,IAAI;AAuBvD,IAAW,6BAA6B;CACtC,IAAI,oBAAoB,WAAW,iBAAiB;CACpD,IAAI,eAAe,eAAe,kBAAkB;CACpD,OAAO,qBAAqB;AAC9B;AACA,IAAI,YAAW,UAAS;CACtB,IAAI,QAAQ,MAAM,OAChB,YAAY,MAAM;CACpB,IAAI,QAAQ,UAAU,MAAM,QAAQ,IAAI,QAAQ,MAAM;CACtD,IAAI,OAAO,cAAc,YACvB,OAAO,UAAU,KAAK;CAExB,OAAO;AACT;AACA,IAAW,2BAA0B,YAAW;CAC9C,OAAO,WAAW,QAAQ,OAAO,YAAY;AAC/C;AACA,IAAI,iBAAiB,YAAY,aAAa;CAG5C,OAFW,SAAS,WAAW,UAErB,IADO,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,GAAG,GACpC;AACzB;AACA,IAAI,qBAAqB,YAAY,UAAU,OAAO,OAAO,YAAY;CACvE,IAAI,SAAS,WAAW,QACtB,YAAY,WAAW;CACzB,IAAI,KAAK,QAAQ,IACf,KAAK,QAAQ,IACb,cAAc,QAAQ,aACtB,cAAc,QAAQ,aACtB,aAAa,QAAQ,YACrB,WAAW,QAAQ,UACnB,YAAY,QAAQ;CACtB,IAAI,UAAU,cAAc,eAAe;CAC3C,IAAI,aAAa,cAAc,YAAY,QAAQ;CACnD,IAAI,OAAO,cAAc,IAAI,IAAI;CACjC,IAAI,YAAY;CAChB,QAAQ,UAAR;EACE,KAAK;GACH,aAAa,aAAa,OAAO;GACjC,YAAY;GACZ;EACF,KAAK;GACH,aAAa,WAAW,OAAO;GAC/B,YAAY,CAAC;GACb;EACF,KAAK;GACH,aAAa,WAAW,OAAO;GAC/B,YAAY;GACZ;EACF,SACE,MAAM,IAAI,MAAM,wBAAwB,OAAO,QAAQ,CAAC;CAC5D;CACA,YAAY,cAAc,IAAI,YAAY,CAAC;CAC3C,IAAI,aAAa,iBAAiB,IAAI,IAAI,QAAQ,UAAU;CAC5D,IAAI,WAAW,iBAAiB,IAAI,IAAI,QAAQ,cAAc,YAAY,IAAI,MAAM,GAAG;CACvF,IAAI,OAAO,IAAI,OAAO,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,GAAG,SAAS,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,OAAO,QAAQ,OAAO,CAAC,CAAC,OAAO,YAAY,IAAI,GAAG,SAAS,CAAC,CAAC,OAAO,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC;CACnM,IAAI,KAAK,UAAU,WAAW,EAAE,IAAI,SAAS,uBAAuB,IAAI,WAAW;CACnF,OAAoB,sBAAM,cAAc,QAAQA,YAAS,CAAC,GAAG,OAAO;EAClE,kBAAkB;EAClB,WAAW,KAAK,6BAA6B,SAAS;CACxD,CAAC,GAAgB,sBAAM,cAAc,QAAQ,MAAmB,sBAAM,cAAc,QAAQ;EACtF;EACJ,GAAG;CACL,CAAC,CAAC,GAAgB,sBAAM,cAAc,YAAY,EAChD,WAAW,IAAI,OAAO,EAAE,EAC1B,GAAG,KAAK,CAAC;AACX;AACA,IAAI,wBAAwB,SAAS,QAAQ,aAAa;CACxD,IAAI,KAAK,QAAQ,IACf,KAAK,QAAQ,IACb,cAAc,QAAQ,aACtB,cAAc,QAAQ;CAGxB,IAAI,YAFW,QAAQ,aACV,QAAQ,YACoB;CACzC,IAAI,aAAa,WAAW;EAC1B,IAAI,oBAAoB,iBAAiB,IAAI,IAAI,cAAc,QAAQ,QAAQ,GAC7E,KAAK,kBAAkB;EAEzB,OAAO;GACL,GAAG;GACH,GAHK,kBAAkB;GAIvB,YAAY,MAAM,KAAK,UAAU;GACjC,gBAAgB;EAClB;CACF;CACA,IAAI,aAAa,UACf,OAAO;EACL,GAAG;EACH,GAAG;EACH,YAAY;EACZ,gBAAgB;CAClB;CAEF,IAAI,aAAa,aACf,OAAO;EACL,GAAG;EACH,GAAG;EACH,YAAY;EACZ,gBAAgB;CAClB;CAEF,IAAI,aAAa,gBACf,OAAO;EACL,GAAG;EACH,GAAG;EACH,YAAY;EACZ,gBAAgB;CAClB;CAGF,IAAI,qBAAqB,iBAAiB,IAAI,KADrC,cAAc,eAAe,GACe,QAAQ;CAG7D,OAAO;EACL,GAHI,mBAAmB;EAIvB,GAHI,mBAAmB;EAIvB,YAAY;EACZ,gBAAgB;CAClB;AACF;AACA,IAAI,WAAU,YAAW,WAAW,QAAQ,QAAQ,WAAW,SAAS,QAAQ,EAAE;AAClF,IAAW,oBAAoB;CAC7B,OAAO;CACP,QAAQ;CACR,QAAQ,gBAAgB;CACxB,UAAU;CACV,cAAc;AAChB;AACA,SAAS,wBAAwB,SAAS;CACxC,IAAI,CAAC,QAAQ,OAAO,GAClB,OAAO;CAET,IAAI,KAAK,QAAQ,IACf,KAAK,QAAQ,IACb,cAAc,QAAQ;CACxB,IAAI,WAAW,cAAc;CAC7B,OAAO;EACL,GAAG,KAAK;EACR,GAAG,KAAK;EACR,OAAO;EACP,YAAY;EACZ,YAAY;EACZ,QAAQ;CACV;AACF;;;;;;;AAQA,SAAgB,MAAM,YAAY;CAChC,IAAI,gBAAgB;CACpB,IAAI,QAAQ,oBAAoB,YAAY,iBAAiB;CAC7D,IAAI,mBAAmB,MAAM,SAC3B,gBAAgB,MAAM,eACtB,WAAW,MAAM,UACjB,QAAQ,MAAM,OACd,WAAW,MAAM,UACjB,UAAU,MAAM,SAChB,mBAAmB,MAAM,WACzB,YAAY,qBAAqB,KAAK,IAAI,KAAK,kBAC/C,eAAe,MAAM,cACrB,WAAW,MAAM;CACnB,IAAI,eAAe,qBAAqB;CACxC,IAAI,mBAAmB,yBAAyB;CAOhD,IAAI,kBAAkB,aAAa,WAAW,mBAAmB,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,eAAe;CACnI,IAAI,SAAS,OAAO;CACpB,IAAI,oBAAoB,MACtB,UAAU;MACL,IAAI,QAAQ,gBAAgB,GACjC,UAAU;MAEV,UAAU,4BAA4B,gBAAgB;CAExD,IAAI,eAAe,wBAAwB,OAAO;CAClD,IAAI,CAAC,WAAW,UAAU,KAAK,KAAK,UAAU,QAAQ,KAAK,CAAe,6BAAe,OAAO,KAAK,OAAO,YAAY,YACtH,OAAO;CAIT,IAAI,qBAAqB,QAAQ,OAAO,MAAM,aAAa,iBAAiB,aAAa,eAAe,aAAa;CACrH,IAAI,QAAQ,OAAO,GACb;MAAA,CAAC,oBACH,gBAAgB,qBAAqB,SAAS,MAAM,QAAQ,MAAM,QAAQ;CAAA,OAEvE,IAAI,cAAc;EACvB,IAAI,kBAAkB,qBAAqB;GACzC,SAAS;GACT;GACA,QAAQ,MAAM;GACd,eAAe,QAAQ,aAAa,IAAI,KAAA,IAAY;GACpD,OAAO;EACT,CAAC;EACD,gBAAgBJ,iBAAcA,iBAAc;GAC1C,GAAG,gBAAgB;GACnB,GAAG,gBAAgB;GACnB,YAAY,gBAAgB;GAC5B,gBAAgB,gBAAgB;EAClC,GAAG,gBAAgB,UAAU,KAAA,IAAY,EACvC,OAAO,gBAAgB,MACzB,IAAI,CAAC,CAAC,GAAG,gBAAgB,WAAW,KAAA,IAAY,EAC9C,QAAQ,gBAAgB,OAC1B,IAAI,CAAC,CAAC;CACR;CAWA,IAAI,mBAAmBA,iBAAcA,iBAAcA,iBAAcA,iBAAc,CAAC,KAAK,iBAAiB,mBAAmB,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,OAAO,KAAA,IAAY,EACtM,GAAG,cAAc,EACnB,IAAI,CAAC,CAAC,KAAK,kBAAkB,mBAAmB,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,OAAO,KAAA,IAAY,EAC/H,GAAG,cAAc,EACnB,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACnB,QACF,CAAC;CACD,IAAiB,6BAAe,OAAO,GAAG;EAChC,iBAAiB;EAAzB,IACE,uBAAuBH,4BAAyB,kBAAkBF,YAAS;EAC7E,OAAoB,2BAAa,SAAS,oBAAoB;CAChE;CACA,IAAI,OAAO,YAAY,YAAY;EACxB,iBAAiB;EAA1B,IACE,kBAAkBE,4BAAyB,kBAAkBD,YAAU;EAEzE,QAAqB,4BAAc,SAAS,eAAe;EAC3D,IAAiB,6BAAe,KAAK,GACnC,OAAO;CAEX,OACE,QAAQ,SAAS,KAAK;CAExB,IAAI,QAAQ,uBAAuB,KAAK;CACxC,IAAI,sBAAsB,QAAQ,OAAO,GACvC,OAAO,kBAAkB,OAAO,UAAU,OAAO,OAAO,OAAO;CAEjE,IAAI,iBAAiB,MACnB,OAAO;CAET,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,MAAM,OAChB,GAAgB,sBAAM,cAAc,MAAMQ,YAAS;EACjD,KAAK;EACL,WAAW,KAAK,kBAAkB,SAAS;CAC7C,GAAG,OAAO,eAAe;EAKvB,YAAY,kBAAkB,MAAM,UAAU,IAAI,MAAM,aAAa,cAAc;EACnF,UAAU;CACZ,CAAC,GAAG,KAAK,CAAC;AACZ;AACA,MAAM,cAAc;AACpB,IAAI,cAAc,OAAO,SAAS,aAAa;CAC7C,IAAI,CAAC,OACH,OAAO;CAET,IAAI,cAAc;EAChB;EACA;CACF;CACA,IAAI,UAAU,MACZ,OAAoB,sBAAM,cAAc,OAAOA,YAAS,EACtD,KAAK,iBACP,GAAG,WAAW,CAAC;CAEjB,IAAI,WAAW,KAAK,GAClB,OAAoB,sBAAM,cAAc,OAAOA,YAAS;EACtD,KAAK;EACL,OAAO;CACT,GAAG,WAAW,CAAC;CAEjB,IAAiB,6BAAe,KAAK,GAAG;EACtC,IAAI,MAAM,SAAS,OACjB,OAAoB,2BAAa,OAAOJ,iBAAc,EACpD,KAAK,iBACP,GAAG,WAAW,CAAC;EAEjB,OAAoB,sBAAM,cAAc,OAAOI,YAAS;GACtD,KAAK;GACL,SAAS;EACX,GAAG,WAAW,CAAC;CACjB;CACA,IAAI,wBAAwB,KAAK,GAC/B,OAAoB,sBAAM,cAAc,OAAOA,YAAS;EACtD,KAAK;EACL,SAAS;CACX,GAAG,WAAW,CAAC;CAEjB,IAAI,SAAS,OAAO,UAAU,UAC5B,OAAoB,sBAAM,cAAc,OAAOA,YAAS,CAAC,GAAG,OAAO,EACjE,KAAK,iBACP,GAAG,WAAW,CAAC;CAEjB,OAAO;AACT;AACA,SAAgB,4BAA4B,OAAO;CACjD,IAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;CAEnB,OAAO,WAAW,OADJ,yBACiB,GAAG,QAAQ,KAAK;AACjD;;;ACnZA,IAAIC,eAAY,CAAC,eAAe;AAC9BC,IAAAA,eAAa;CAAC;CAAW;CAAa;CAAM;CAAgB;AAAQ;AACtE,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CtM,IAAI,mBAAkB,UAAS;CAC7B,IAAI,MAAM,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,SAAS,KAAK,MAAM;CACnF,IAAI,iBAAiB,GAAG,GACtB,OAAO;AAGX;AACA,IAAI,4BAAyC,4BAAc,KAAA,CAAS;AACpE,IAAW,oCAAoC,0BAA0B;AACzE,IAAI,wBAAqC,4BAAc,KAAA,CAAS;AACrB,sBAAsB;AACjE,SAAS,+BAA+B;CACtC,OAAO,WAAW,yBAAyB;AAC7C;AACA,SAAS,2BAA2B;CAClC,OAAO,WAAW,qBAAqB;AACzC;;;;AAKA,SAAgB,UAAU,MAAM;CAC9B,IAAI,qBAAqB,KAAK,eAC5B,gBAAgB,uBAAuB,KAAK,IAAI,kBAAkB,oBAClE,YAAYD,4BAAyB,MAAMH,YAAS,GAClD,UAAU,UAAU;CACV,UAAU;CADxB,IAEE,KAAK,UAAU,IACf,eAAe,UAAU,cACzB,SAAS,UAAU,QACnB,SAASG,4BAAyB,WAAWF,YAAU;CACzD,IAAI,gBAAgB,6BAA6B;CACjD,IAAI,YAAY,yBAAyB;CACzC,IAAI,OAAO,iBAAiB;CAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,QACjB,OAAO;CAET,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,WAAW,QAAQ,WAAW,KAAK,IAAI,SAAS,gBAAgB,MAC1E,GAAgB,sBAAM,cAAc,OAAO,EACzC,WAAW,sBACb,GAAG,KAAK,KAAK,OAAO,UAAU;EAC5B,IAAI;EACJ,IAAI,QAAQ,UAAU,OAAO,IAAI,cAAc,OAAO,KAAK,IAAI,kBAAkB,MAAM,SAAS,OAAO;EACvG,IAAI,UAAU,UAAU,EAAE,IAAI,CAAC,IAAI,EACjC,IAAI,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,EACrC;EACA,OAAoB,sBAAM,cAAc,OAAOC,WAAS,EACtD,KAAK,SAAS,OAAO,KAAK,EAC5B,GAAG,uBAAuB,KAAK,GAAG,QAAQ,SAAS;GAOjD,OAAO,kBAAkB,UAAU,UAAU,QAAQ,oBAAoB,KAAK,IAAI,kBAAkB,MAAM;GAC1G,eAAe,MAAM;GACd;GACO;GACd,SAAS,MAAM;GACR;GAMP,QAAQ;EACV,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AACL;AACA,UAAU,cAAc;AACxB,SAAgB,uBAAuB,OAAO;CAC5C,IAAI,QAAQ,MAAM;CAClB,IAAI,CAAC,OACH,OAAO;CAET,IAAI,UAAU,MACZ,OAAoB,sBAAM,cAAc,WAAW,EACjD,KAAK,qBACP,CAAC;CAEH,IAAiB,sBAAM,eAAe,KAAK,KAAK,wBAAwB,KAAK,GAC3E,OAAoB,sBAAM,cAAc,WAAW;EACjD,KAAK;EACL,SAAS;CACX,CAAC;CAEH,IAAI,OAAO,UAAU,UACnB,OAAoB,sBAAM,cAAc,WAAWA,WAAS,EAC1D,KAAK,qBACP,GAAG,OAAO,EACR,MAAM,OAAO,MAAM,IAAI,EACzB,CAAC,CAAC;CAEJ,OAAO;AACT;;;ACxIA,IAAI,iBAAiB,YAAY;CAC/B,MAAM;CACN,cAAA;EALA,YAAY,CAAC;EACb,WAAW,CAAC;CAID;CACX,UAAU;EACR,cAAc,OAAO,QAAQ;GAC3B,MAAM,WAAW,OAAO,QAAQ,MAAM,UAAU,OAAO,OAAO;EAChE;EACA,iBAAiB,OAAO,QAAQ;GAC9B,OAAO,MAAM,WAAW,OAAO,QAAQ;EACzC;EACA,aAAa,OAAO,QAAQ;GAC1B,MAAM,UAAU,OAAO,QAAQ,MAAM,UAAU,OAAO,OAAO;EAC/D;EACA,gBAAgB,OAAO,QAAQ;GAC7B,OAAO,MAAM,UAAU,OAAO,QAAQ;EACxC;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,eAAe;AACzB,sBAAsB;AACnB,sBAAsB;AAC1B,sBAAsB;AACnB,sBAAsB;AAE1C,IAAW,mBAAmB,eAAe;;;AC9B7C,SAAgB,wBAAwB,GAAG;CACzC,IAAI,KAAK,OAAO,MAAM,YAAY,eAAe,KAAK,OAAO,EAAE,cAAc,UAC3E,OAAO,EAAE;CAEX,OAAO;AACT;;;;;;;;;;;;CCGa,IAAI,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAAM,IAAA,IAAE;CAC3G,IAAG,eAAa,OAAO,UAAQ,OAAO,KAAI;EAAC,IAAI,IAAE,OAAO;EAAI,IAAE,EAAE,eAAe;EAAE,IAAE,EAAE,cAAc;EAAE,IAAE,EAAE,gBAAgB;EAAE,IAAE,EAAE,mBAAmB;EAAE,IAAE,EAAE,gBAAgB;EAAE,IAAE,EAAE,gBAAgB;EAAE,IAAE,EAAE,eAAe;EAAE,IAAE,EAAE,mBAAmB;EAAE,IAAE,EAAE,gBAAgB;EAAE,IAAE,EAAE,qBAAqB;EAAE,IAAE,EAAE,YAAY;EAAE,IAAE,EAAE,YAAY;EAAE,AAAE,EAAE,aAAa;EAAE,AAAE,EAAE,oBAAoB;EAAE,AAAE,EAAE,mBAAmB;EAAE,AAAE,EAAE,wBAAwB;EAAE,AAAE,EAAE,qBAAqB;CAAC;CACjc,SAAS,EAAE,GAAE;EAAC,IAAG,aAAW,OAAO,KAAG,SAAO,GAAE;GAAC,IAAI,IAAE,EAAE;GAAS,QAAO,GAAP;IAAU,KAAK,GAAE,QAAO,IAAE,EAAE,MAAK,GAAhB;KAAmB,KAAK;KAAE,KAAK;KAAE,KAAK;KAAE,KAAK;KAAE,KAAK,GAAE,OAAO;KAAE,SAAQ,QAAO,IAAE,KAAG,EAAE,UAAS,GAAvB;MAA0B,KAAK;MAAE,KAAK;MAAE,KAAK;MAAE,KAAK;MAAE,KAAK,GAAE,OAAO;MAAE,SAAQ,OAAO;KAAC;IAAC;IAAC,KAAK,GAAE,OAAO;GAAC;EAAC;CAAC;CAC2F,QAAQ,aAAW,SAAS,GAAE;EAAC,OAAO,EAAE,CAAC,MAAI;CAAC;;;;;CCRzY,OAAO,UAAA,gCAAA;;;;;;;;ACST,IAAW,kBAAiB,SAAQ;CAClC,IAAI,OAAO,SAAS,UAClB,OAAO;CAET,IAAI,CAAC,MACH,OAAO;CAET,OAAO,KAAK,eAAe,KAAK,QAAQ;AAC1C;AAIA,IAAI,eAAe;AACnB,IAAI,aAAa;;;;;;;AAQjB,IAAW,WAAU,aAAY;CAC/B,IAAI,aAAa,gBAAgB,MAAM,QAAQ,UAAU,GACvD,OAAO;CAET,IAAI,SAAS,CAAC;CACd,SAAS,QAAQ,WAAU,UAAS;EAClC,IAAI,UAAU,KAAK,GAAG;EACtB,KAAA,GAAIG,gBAAAA,WAAAA,CAAW,KAAK,GAClB,SAAS,OAAO,OAAO,QAAQ,MAAM,MAAM,QAAQ,CAAC;OAGpD,OAAO,KAAK,KAAK;CAErB,CAAC;CACD,aAAa;CACb,eAAe;CACf,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,cAAc,UAAU,MAAM;CAC5C,IAAI,SAAS,CAAC;CACd,IAAI,QAAQ,CAAC;CACb,IAAI,MAAM,QAAQ,IAAI,GACpB,QAAQ,KAAK,KAAI,MAAK,eAAe,CAAC,CAAC;MAEvC,QAAQ,CAAC,eAAe,IAAI,CAAC;CAE/B,QAAQ,QAAQ,CAAC,CAAC,SAAQ,UAAS;EAEjC,IAAI,YAAYC,MAAI,OAAO,kBAAkB,KAAKA,MAAI,OAAO,WAAW;EACxE,IAAI,aAAa,MAAM,QAAQ,SAAS,MAAM,IAC5C,OAAO,KAAK,KAAK;CAErB,CAAC;CACD,OAAO;AACT;;;AC9EA,SAASC,WAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,iBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,WAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,mBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,WAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,mBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,kBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,kBAAe,GAAG;CAAE,IAAI,IAAIC,gBAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,gBAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;;;;;;;;;;AAkBvT,SAAS,gBAAgB,QAAQ,OAAO;CACtC,OAAOH,iBAAcA,iBAAc,CAAC,GAAG,KAAK,GAAG,MAAM;AACvD;AACA,SAAgB,wBAAwB,QAAQ;CAC9C,IAAiB,6BAAe,MAAM,GACpC,OAAO,OAAO;CAEhB,OAAO;AACT;AACA,SAAS,uBAAuB,QAAQ,OAAO;CAC7C,OAAoB,2BAAa,QAAQ,gBAAgB,wBAAwB,MAAM,GAAG,KAAK,CAAC;AAClG;AACA,SAAS,cAAc,YAAY;CACjC,IAAI,EAAE,WAAW,aACf;CAEF,IAAI,QAAQ,WAAW;CACvB,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,QAAQ,KAAA;AAC1E;AACA,SAAS,cAAc,YAAY;CACjC,OAAO,cAAc,cAAc,WAAW,aAAa;AAC7D;;;;;;;;;;AAWA,SAAgB,MAAM,MAAM;CAC1B,IAAI,SAAS,KAAK,QAChB,eAAe,KAAK,cACpB,aAAa,KAAK,YAClB,uBAAuB,KAAK,iBAC5B,kBAAkB,yBAAyB,KAAK,IAAI,0BAA0B,sBAC9E,wBAAwB,KAAK,mBAC7B,oBAAoB,0BAA0B,KAAK,IAAI,mBAAmB;CAC5E,IAAI,QAAQ,cAAc,UAAU;CACpC,IAAI;CACJ,IAAiB,6BAAe,MAAM,GACpC,QAAQ,uBAAuB,QAAQ,UAAU;MAC5C,IAAI,WAAW,cACpB,QAAqB,sBAAM,cAAc,cAAc,UAAU;MAC5D,IAAI,OAAO,WAAW,YAC3B,QAAQ,OAAO,YAAY,KAAK;MAC3B,IAAI,OAAO,WAAW,UAC3B,QAAqB,sBAAM,cAAc,cAAc,gBAAgB,QAAQ,UAAU,CAAC;MAE1F,QAAqB,sBAAM,cAAc,cAAc,UAAU;CAEnE,IAAI,cAAc,UAAU,GAC1B,OAAoB,sBAAM,cAAc,OAAO,EAC7C,WAAW,gBACb,GAAG,KAAK;CAEV,OAAoB,sBAAM,cAAc,OAAO,EAC7C,WAAW,kBACb,GAAG,KAAK;AACV;;;;;;;AC3EA,IAAW,6BAA6B,uBAAuB,SAAS,oBAAoB;CAC1F,IAAI,WAAW,eAAe;CAC9B,QAAQ,MAAM,WAAU,UAAS;EAC/B,0BAA0B,QAAQ,0BAA0B,KAAK,KAAK,sBAAsB,MAAM,OAAO,KAAK;EAC9G,SAAS,4BAA4B;GACnC,aAAa,OAAO,KAAK;GACzB,eAAe;GACf,kBAAkB,KAAK;GACvB,uBAAuB;EACzB,CAAC,CAAC;CACJ;AACF;AACA,IAAW,6BAA4B,0BAAyB;CAC9D,IAAI,WAAW,eAAe;CAC9B,QAAQ,MAAM,WAAU,UAAS;EAC/B,0BAA0B,QAAQ,0BAA0B,KAAK,KAAK,sBAAsB,MAAM,OAAO,KAAK;EAC9G,SAAS,eAAe,CAAC;CAC3B;AACF;AACA,IAAW,6BAA6B,uBAAuB,SAAS,oBAAoB;CAC1F,IAAI,WAAW,eAAe;CAC9B,QAAQ,MAAM,WAAU,UAAS;EAC/B,0BAA0B,QAAQ,0BAA0B,KAAK,KAAK,sBAAsB,MAAM,OAAO,KAAK;EAC9G,SAAS,wBAAwB;GAC/B,aAAa,OAAO,KAAK;GACzB,eAAe;GACf,kBAAkB,KAAK;GACvB,uBAAuB;EACzB,CAAC,CAAC;CACJ;AACF;;;AClCA,SAAgB,wBAAwB,MAAM;CAC5C,IAAI,uBAAuB,KAAK;CAChC,IAAI,WAAW,eAAe;CAC9B,IAAI,aAAa,cAAc;CAC/B,IAAI,kBAAkB,OAAO,IAAI;CACjC,sBAAsB;EACpB,IAAI,YAEF;EAEF,IAAI,gBAAgB,YAAY,MAC9B,SAAS,wBAAwB,oBAAoB,CAAC;OACjD,IAAI,gBAAgB,YAAY,sBACrC,SAAS,4BAA4B;GACnC,MAAM,gBAAgB;GACtB,MAAM;EACR,CAAC,CAAC;EAEJ,gBAAgB,UAAU;CAC5B,GAAG;EAAC;EAAsB;EAAU;CAAU,CAAC;CAC/C,sBAAsB;EACpB,aAAa;GACX,IAAI,gBAAgB,SAAS;IAC3B,SAAS,2BAA2B,gBAAgB,OAAO,CAAC;IAC5D,gBAAgB,UAAU;GAC5B;EACF;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,OAAO;AACT;;;AC5BA,SAAgB,iBAAiB,MAAM;CACrC,IAAI,gBAAgB,KAAK;CACzB,IAAI,WAAW,eAAe;CAC9B,IAAI,aAAa,cAAc;CAC/B,IAAI,iBAAiB,OAAO,IAAI;CAChC,sBAAsB;EACpB,IAAI,YACF;EAEF,IAAI,eAAe,YAAY,MAC7B,SAAS,iBAAiB,aAAa,CAAC;OACnC,IAAI,eAAe,YAAY,eACpC,SAAS,qBAAqB;GAC5B,MAAM,eAAe;GACrB,MAAM;EACR,CAAC,CAAC;EAEJ,eAAe,UAAU;CAC3B,GAAG;EAAC;EAAU;EAAY;CAAa,CAAC;CACxC,sBAAsB;EACpB,aAAa;GACX,IAAI,eAAe,SAAS;IAC1B,SAAS,oBAAoB,eAAe,OAAO,CAAC;IACpD,eAAe,UAAU;GAC3B;EACF;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,OAAO;AACT;;;ACjCA,SAASI,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkD9D,IAAW,eAAe;;;;;;;;;;;;;;;;;AAkB1B,IAAW,cAAc;AA8BzB,SAAS,gBAAgB,kBAAkB,WAAW;CACpD,IAAI,mBAAmB,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC;CAC5F,IAAI,SAAS,CAAC;CAMd,KAAK,IAAI,QAAQ,kBACf,OAAO,KAAK;EACV,QAAQ;EACR;CACF,CAAC;CAEH,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAGzC,IAAI,QAAQ,iBAAiB;EAC7B,IAAI,OAAO,UAAU;EACrB,IAAI,SAAS,MACX,OAAO,KAAK;GACV,QAAQ;GACR,MAAM;GACN;EACF,CAAC;OAED,OAAO,KAAK;GACV,QAAQ;GACR;EACF,CAAC;CAEL;CACA,OAAO;AACT;AACA,SAAS,iBAAiB,WAAW,WAAW;CAC9C,IAAI,SAAS,UAAU,SAAS,UAAU;CAE1C,OAAO,gBADgB,UAAU,KAAK,GAAG,MAAM,UAAU,KAAK,MAAM,IAAI,MAAM,EACxC,GAAG,SAAS;AACpD;AACA,SAAS,gBAAgB,WAAW,WAAW;CAE7C,OAAO,gBADgB,UAAU,KAAK,GAAG,MAAM,UAAU,EACnB,GAAG,SAAS;AACpD;AACA,SAAS,gBAAgB,WAAW,SAAS;CAC3C,IAAI,0BAAU,IAAI,IAAI;CACtB,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EACzC,IAAI,QAAQ,UAAU;EACtB,IAAI,SAAS,MAAM;EACnB,IAAI,MAAM,QAAQ,OAAO,CAAC;EAC1B,IAAI,OAAO,QAAQ,CAAC,QAAQ,IAAI,GAAG,GACjC,QAAQ,IAAI,KAAK,KAAK;CAE1B;CACA,OAAO;AACT;;;;;;AAOA,SAAS,WAAW,WAAW,WAAW,SAAS;CACjD,IAAI,UAAU,gBAAgB,WAAW,OAAO;CAGhD,IAAI,8BAAc,IAAI,IAAI;CAC1B,IAAI,mBAAmB,UAAU,KAAK,MAAM,MAAM;EAChD,IAAI,MAAM,QAAQ,MAAM,CAAC;EACzB,IAAI,OAAO,MAAM;GACf,IAAI,OAAO,QAAQ,IAAI,GAAG;GAC1B,IAAI,SAAS,KAAA,GAAW;IACtB,YAAY,IAAI,GAAG;IACnB,OAAO;GACT;EACF;CAEF,CAAC;CAGD,IAAI,mBAAmB,CAAC;CACxB,KAAK,IAAI,SAAS,SAAS;EACzB,IAAI,QAAQD,iBAAe,OAAO,CAAC;EACnC,IAAI,MAAM,MAAM;EAChB,IAAI,SAAS,MAAM;EACnB,IAAI,CAAC,YAAY,IAAI,GAAG,GACtB,iBAAiB,KAAK,MAAM;CAEhC;CACA,OAAO,gBAAgB,kBAAkB,WAAW,gBAAgB;AACtE;;;;;;;;;AAUA,SAAgB,oBAAoB,WAAW,WAAW,SAAS;CACjE,IAAI,aAAa,MACf,OAAO;CAET,IAAI,aAAa,MACf,OAAO,UAAU,KAAI,UAAS;EAC5B,QAAQ;EACR;CACF,EAAE;CAEJ,IAAI,YAAA,SACF,OAAO,iBAAiB,WAAW,SAAS;CAE9C,IAAI,YAAA,UACF,OAAO,gBAAgB,WAAW,SAAS;CAE7C,OAAO,WAAW,WAAW,WAAW,OAAO;AACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvLA,SAAgB,0BAA0B,gBAAgB,kBAAkB;CAK1E,IAAI,4BAA4B,OAAO,cAAc;CAMrD,IAAI,gBAAgB,OAAO,iBAAiB,OAAO;CAMnD,IAAI,qBAAqB,OAAO,IAAI;CACpC,IAAI,0BAA0B,YAAY,gBAAgB;EAExD,0BAA0B,UAAU;EACpC,cAAc,UAAU,iBAAiB;EAEzC,mBAAmB,UAAU;CAC/B;CACA,IAAI,gBAAgB,YAAY,SAAU,WAAW,sBAAsB;EACzE,IAAI,YAAY,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;EACpF,IAAI,yBAAyB,GAAG;GAM9B,mBAAmB,UAAU;GAC7B;EACF;EACA,IAAI,yBAAyB,GAE3B,cAAc,UAAU;EAE1B,IAAI,uBAAuB,KAAK,mBAAmB,WAAW,WAM5D,iBAAiB,UAAU;CAE/B,GAAG,CAAC,gBAAgB,CAAC;CACrB,OAAO;EACL,YAAY,cAAc;EAC1B;CACF;AACF;;;ACzFA,SAASM,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;;;;;;;AAa9D,SAAgB,sBAAsB,kBAAkB,gBAAgB;CACtE,IACE,aAAaD,iBADC,SAAS,KACa,GAAG,CAAC,GACxC,cAAc,WAAW,IACzB,iBAAiB,WAAW;CAa9B,OAAO;EACL;EACA,sBAdyB,kBAAkB;GAC3C,IAAI,OAAO,qBAAqB,YAC9B,iBAAiB;GAEnB,eAAe,IAAI;EACrB,GAAG,CAAC,gBAAgB,CASC;EACnB,oBATuB,kBAAkB;GACzC,IAAI,OAAO,mBAAmB,YAC5B,eAAe;GAEjB,eAAe,KAAK;EACtB,GAAG,CAAC,cAAc,CAIC;CACnB;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,cAAc,OAAO;CACnC,IAAI;CACJ,IAAI,iBAAiB,MAAM,gBACzB,oBAAoB,MAAM,mBAC1B,QAAQ,MAAM,OACd,mBAAmB,MAAM,kBACzB,oBAAoB,MAAM,mBAC1B,iBAAiB,MAAM,gBACvB,oBAAoB,MAAM,mBAC1B,kBAAkB,MAAM,iBACxB,mBAAmB,MAAM,kBACzB,iBAAiB,MAAM,gBACvB,yBAAyB,MAAM,wBAC/B,mBAAmB,MAAM,kBACzB,0BAA0B,MAAM,yBAChC,WAAW,MAAM,UACjB,SAAS,MAAM;CACjB,IAAI,cAAc,eAAe,gBAAgB,iBAAiB;CAClE,IAAI,sBAAsB,0BAA0B,aAAa,gBAAgB;CACjF,IAAI,gBAAgB,wBAAwB,oBAAoB,gBAAgB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CACnJ,IAAI,iBAAiB,oBAAoB,cAAc,OAAO,qBAAqB,QAAQ,qBAAqB,KAAK,IAAI,mBAAmB,YAAY;CACxJ,OAAoB,sBAAM,cAAc,mBAAmB;EAC5C;EACb,OAAO;EACP,UAAU;EACV,UAAU;EACV,QAAQ;EACQ;EACE;EAClB,KAAK;CACP,IAAG,yBAAwB;EACzB,IAAI,aAAa,gBAAgB;EACjC,IAAI,WAAW,SAAS,OAAO,QAAQ,uBAAuB,gBAAgB,sBAAsB,MAAM;EAC1G,IAAI,YAAY,0BAA0B,wBAAwB,oBAAoB,IAAI,uBAAuB;EACjH,oBAAoB,cAAc,UAAU,sBAAsB,SAAS;EAC3E,IAAI,YAAY,MACd,OAAO;EAET,OAAO,SAAS,UAAU,sBAAsB,UAAU;CAC5D,CAAC;AACH;;;ACnHA,IAAI;AACJ,SAASM,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;;;;;;;AAU9D,IAAW,sBAAsB;CAI/B,OAFqBD,iBADCM,QAAM,eAAe,SAAS,MAAM,CACR,GAAG,CAC/B,CAAC,CAAC;AAE1B;AAMA,IAAW,SAAS,OAAOA,QAAM,QAAQ,SAAS,QAAQ,QAAQ,SAAS,KAAK,IAAI,OAAO;;;;;;;;;;;;;ACf3F,SAAgB,YAAY,QAAQ,UAAU;CAK5C,IAAI,cAAc,MAAM;CAGxB,IAAI,UACF,OAAO;CAIT,OAAO,SAAS,GAAG,OAAO,QAAQ,GAAG,CAAC,CAAC,OAAO,WAAW,IAAI;AAC/D;;;;;;;ACvBA,IAAI,yBAAsC,4BAAc,KAAA,CAAS;AACjE,IAAW,2BAA0B,SAAQ;CAC3C,IAAI,KAAK,KAAK,IACZ,OAAO,KAAK,MACZ,WAAW,KAAK;CAClB,IAAI,aAAa,YAAY,YAAY,OAAO,IAAI,GAAG,EAAE;CACzD,OAAoB,sBAAM,cAAc,uBAAuB,UAAU,EACvE,OAAO,WACT,GAAG,SAAS,UAAU,CAAC;AACzB;;;ACCA,IAAI,sBAAsB,YAAY;CACpC,MAAM;CACN,cAAA;EALA,gBAAgB,CAAC;EACjB,YAAY,CAAC;CAIF;CACX,UAAU;EACR,2BAA2B;GACzB,QAAQ,OAAO,QAAQ;IACrB,MAAM,eAAe,KAAK,UAAU,OAAO,OAAO,CAAC;GACrD;GACA,SAAS,mBAAmB;EAC9B;EACA,+BAA+B;GAC7B,QAAQ,OAAO,QAAQ;IACrB,IAAI,kBAAkB,OAAO,SAC3B,OAAO,gBAAgB,MACvB,OAAO,gBAAgB;IACzB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,eAAe,QAAQ,UAAU,IAAI,CAAC;IACjE,IAAI,QAAQ,IACV,MAAM,eAAe,SAAS,UAAU,IAAI;GAEhD;GACA,SAAS,mBAAmB;EAC9B;EACA,8BAA8B;GAC5B,QAAQ,OAAO,QAAQ;IACrB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,eAAe,QAAQ,UAAU,OAAO,OAAO,CAAC;IAC3E,IAAI,QAAQ,IACV,MAAM,eAAe,OAAO,OAAO,CAAC;GAExC;GACA,SAAS,mBAAmB;EAC9B;EACA,uBAAuB;GACrB,QAAQ,OAAO,QAAQ;IACrB,MAAM,WAAW,KAAK,UAAU,OAAO,OAAO,CAAC;GACjD;GACA,SAAS,mBAAmB;EAC9B;EACA,0BAA0B;GACxB,QAAQ,OAAO,QAAQ;IACrB,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,WAAW,QAAQ,UAAU,OAAO,OAAO,CAAC;IACvE,IAAI,QAAQ,IACV,MAAM,WAAW,OAAO,OAAO,CAAC;GAEpC;GACA,SAAS,mBAAmB;EAC9B;EACA,2BAA2B;GACzB,QAAQ,OAAO,QAAQ;IACrB,IAAI,mBAAmB,OAAO,SAC5B,OAAO,iBAAiB,MACxB,OAAO,iBAAiB;IAC1B,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,WAAW,QAAQ,UAAU,IAAI,CAAC;IAC7D,IAAI,QAAQ,IACV,MAAM,WAAW,SAAS,UAAU,IAAI;GAE5C;GACA,SAAS,mBAAmB;EAC9B;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,oBAAoB;AAC9C,IAAA,4BAA4B,sBAAsB;AAClD,IAAA,gCAAgC,sBAAsB;AACtD,IAAA,+BAA+B,sBAAsB;AAC7B,sBAAsB;AACnB,sBAAsB;AACrB,sBAAsB;AAEpD,IAAW,wBAAwB,oBAAoB;;;AC9EvD,IAAI,iCAAgC,UAAS;CAC3C,IAAI,WAAW,eAAe;CAC9B,IAAI,eAAe,OAAO,IAAI;CAC9B,sBAAsB;EACpB,IAAI,aAAa,YAAY,MAC3B,SAAS,0BAA0B,KAAK,CAAC;OACpC,IAAI,aAAa,YAAY,OAClC,SAAS,8BAA8B;GACrC,MAAM,aAAa;GACnB,MAAM;EACR,CAAC,CAAC;EAEJ,aAAa,UAAU;CACzB,GAAG,CAAC,UAAU,KAAK,CAAC;CACpB,sBAAsB;EACpB,aAAa;GACX,IAAI,aAAa,SAAS;IACxB,SAAS,6BAA6B,aAAa,OAAO,CAAC;IAc3D,aAAa,UAAU;GACzB;EACF;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,OAAO;AACT;AACA,IAAW,4BAAyC,mBAAK,6BAA6B;;;ACxCtF,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;;AAkEvT,IAAI,qBAAqB,YAAY;CACnC,MAAM;CACN,cAAA;EAXA,OAAO,CAAC;EACR,OAAO,CAAC;EACR,OAAO,CAAC;CASG;CACX,UAAU;EACR,UAAU;GACR,QAAQ,OAAO,QAAQ;IACrB,MAAM,MAAM,OAAO,QAAQ,MAAM,UAAU,OAAO,OAAO;GAC3D;GACA,SAAS,mBAAmB;EAC9B;EACA,cAAc;GACZ,QAAQ,OAAO,QAAQ;IACrB,IAAI,kBAAkB,OAAO,SAC3B,OAAO,gBAAgB,MACvB,OAAO,gBAAgB;IACzB,IAAI,MAAM,MAAM,KAAK,QAAQ,KAAA,GAAW;KACtC,IAAI,KAAK,OAAO,KAAK,IACnB,OAAO,MAAM,MAAM,KAAK;KAE1B,MAAM,MAAM,KAAK,MAAM,UAAU,IAAI;IACvC;GACF;GACA,SAAS,mBAAmB;EAC9B;EACA,aAAa;GACX,QAAQ,OAAO,QAAQ;IACrB,OAAO,MAAM,MAAM,OAAO,QAAQ;GACpC;GACA,SAAS,mBAAmB;EAC9B;EACA,UAAU;GACR,QAAQ,OAAO,QAAQ;IACrB,MAAM,MAAM,OAAO,QAAQ,MAAM,UAAU,OAAO,OAAO;GAC3D;GACA,SAAS,mBAAmB;EAC9B;EACA,cAAc;GACZ,QAAQ,OAAO,QAAQ;IACrB,IAAI,mBAAmB,OAAO,SAC5B,OAAO,iBAAiB,MACxB,OAAO,iBAAiB;IAC1B,IAAI,MAAM,MAAM,KAAK,QAAQ,KAAA,GAAW;KACtC,IAAI,KAAK,OAAO,KAAK,IACnB,OAAO,MAAM,MAAM,KAAK;KAE1B,MAAM,MAAM,KAAK,MAAM,UAAU,IAAI;IACvC;GACF;GACA,SAAS,mBAAmB;EAC9B;EACA,aAAa;GACX,QAAQ,OAAO,QAAQ;IACrB,OAAO,MAAM,MAAM,OAAO,QAAQ;GACpC;GACA,SAAS,mBAAmB;EAC9B;EACA,UAAU;GACR,QAAQ,OAAO,QAAQ;IACrB,MAAM,MAAM,OAAO,QAAQ,MAAM,UAAU,OAAO,OAAO;GAC3D;GACA,SAAS,mBAAmB;EAC9B;EACA,cAAc;GACZ,QAAQ,OAAO,QAAQ;IACrB,IAAI,mBAAmB,OAAO,SAC5B,OAAO,iBAAiB,MACxB,OAAO,iBAAiB;IAC1B,IAAI,MAAM,MAAM,KAAK,QAAQ,KAAA,GAAW;KACtC,IAAI,KAAK,OAAO,KAAK,IACnB,OAAO,MAAM,MAAM,KAAK;KAE1B,MAAM,MAAM,KAAK,MAAM,UAAU,IAAI;IACvC;GACF;GACA,SAAS,mBAAmB;EAC9B;EACA,aAAa;GACX,QAAQ,OAAO,QAAQ;IACrB,OAAO,MAAM,MAAM,OAAO,QAAQ;GACpC;GACA,SAAS,mBAAmB;EAC9B;EACA,iBAAiB,OAAO,QAAQ;GAC9B,IAAI,mBAAmB,OAAO,SAC5B,KAAK,iBAAiB,IACtB,QAAQ,iBAAiB;GAC3B,IAAI,OAAO,MAAM,MAAM;GACvB,IAAI,MAAM;IACR,IAAI;IACJ,IAAI,UAAU,KAAK,gBAAgB,CAAC;IAGpC,IAAI,QAAQ,WAAW,KAAK,QAAQ,OAAO,QAAQ,MAAM,UAAU,QAAQ,MAAM,UAAU,KAAK,SAAS,KAAK,IAAI,UAAU,YAAY,QAAQ,QAAQ,QAAQ,cAAc,KAAK,IAAI,YAAY,EAAE,KAAK,GACxM;IAEF,IAAI,aAAa,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC,MAAM,EAAE;IAC7C,MAAM,MAAM,MAAMH,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG;KAC3D;KACA,cAAc;IAChB,CAAC;GACH;EACF;EACA,kBAAkB,OAAO,QAAQ;GAC/B,IAAI,mBAAmB,OAAO,SAC5B,KAAK,iBAAiB,IACtB,SAAS,iBAAiB;GAC5B,IAAI,OAAO,MAAM,MAAM;GACvB,IAAI,MAAM;IACR,IAAI;IACJ,IAAI,UAAU,KAAK,iBAAiB,CAAC;IAGrC,IAAI,QAAQ,WAAW,KAAK,QAAQ,OAAO,QAAQ,MAAM,WAAW,QAAQ,MAAM,WAAW,KAAK,UAAU,KAAK,IAAI,WAAW,aAAa,QAAQ,QAAQ,QAAQ,eAAe,KAAK,IAAI,aAAa,EAAE,KAAK,GAC/M;IAEF,IAAI,aAAa,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,MAAM,EAAE;IAC9C,MAAM,MAAM,MAAMA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG;KAC3D;KACA,eAAe;IACjB,CAAC;GACH;EACF;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,mBAAmB;AAC7C,IAAA,WAAW,sBAAsB;AACjC,IAAA,eAAe,sBAAsB;AACrC,IAAA,cAAc,sBAAsB;AACpC,IAAA,WAAW,sBAAsB;AACjC,IAAA,eAAe,sBAAsB;AACrC,IAAA,cAAc,sBAAsB;AACzB,sBAAsB;AAClB,sBAAsB;AACvB,sBAAsB;AACpC,IAAA,mBAAmB,sBAAsB;AACzC,IAAA,oBAAoB,sBAAsB;AAE5C,IAAW,uBAAuB,mBAAmB;;;AE5MrD,IAAW,iBAAiB,eAAe;CDDZ,eAAe,CAAC,yBAAyB,IAAG,mBAAkB;EAC3F,OAAO;GACL,KAAK,eAAe;GACpB,QAAQ,eAAe;GACvB,MAAM,eAAe;GACrB,OAAO,eAAe;EACxB;CACF,CCN4C;CAAmB;CAAkB;AAAiB,IAAI,QAAQ,YAAY,gBAAgB;CACxI,IAAI,CAAC,UAAU,cAAc,QAAQ,eAAe,MAClD;CAEF,OAAO;EACL,GAAG,OAAO;EACV,GAAG,OAAO;EACV,OAAO,KAAK,IAAI,GAAG,aAAa,OAAO,OAAO,OAAO,KAAK;EAC1D,QAAQ,KAAK,IAAI,GAAG,cAAc,OAAO,MAAM,OAAO,MAAM;CAC9D;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;ACgXD,IAAW,oBAAoB;CAC7B,OAAO,eAAe,cAAc;AACtC;;;AC/XA,SAASI,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAG9D,IAAI,cAAc,YAAY,WAAW,aAAa;CACpD,IAAI,UAAU,aAAa,QAAQ,aAAa,KAAK,IAAI,WAAW;CACpE,IAAI,UAAU,OAAO,GACnB;CAEF,OAAO,gBAAgB,SAAS,WAAW,CAAC;AAC9C;AACA,IAAW,sBAAsB,SAAS,YAAY,cAAc;CAClE,IAAI,eAAe,CAAC;CACpB,IAAI,cAAc,QAAQ,OAAO,SAAS;CAC1C,IAAI,gBAAgB,QAAQ,QAAO,MAAK,EAAE,WAAW,IAAI;CACzD,IAAI,eAAe,YAAY,QAAQ,KAAK,QAAQ;EAClD,IAAI,IAAI,IAAI,IAAI;EAChB,IAAI,KAAK,MACP,IAAI,CAAC;EAEP,EAAE,KAAK,GAAG;EACV,IAAI,IAAI,WAAW;EACnB,OAAO;CACT,GAAG,YAAY;CACf,IAAI,kBAAkB,OAAO,QAAQ,YAAY,CAAC,CAAC,KAAI,SAAQ;EAC7D,IAAI;EACJ,IAAI,QAAQD,iBAAe,MAAM,CAAC,GAChC,UAAU,MAAM,IAChB,OAAO,MAAM;EAGf,OAAO;GACL;GACA,UAJa,KAAK,KAAI,MAAK,EAAE,OAItB;GACP,SAJY,WAAW,YAAY,YAAY,SAAS,KAAK,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,OAI3G;EACR;CACF,CAAC;CACD,IAAI,oBAAoB,cAAc,KAAI,MAAK;EAG7C,OAAO;GACL,SAAS,KAAA;GACT,UAJa,CAAC,EAAE,OAAO,CAAC,CAAC,QAAO,OAAM,MAAM,IAIrC;GACP,SAJY,WAAW,YAAY,WAAW,EAAE,OAI1C;EACR;CACF,CAAC;CACD,OAAO,CAAC,GAAG,iBAAiB,GAAG,iBAAiB;AAClD;;;ACnDA,SAASM,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAGvT,SAAS,gBAAgB,QAAQ,gBAAgB,UAAU,UAAU,YAAY;CAC/E,IAAI;CACJ,IAAI,MAAM,SAAS;CACnB,IAAI,MAAM,GACR;CAEF,IAAI,aAAa,gBAAgB,QAAQ,UAAU,GAAG,IAAI;CAC1D,IAAI;CACJ,IAAI,eAAe,CAAC;CAIpB,IAAI,qBAAqB,aAAa,SAAS,QAAQ,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,OAAO,GAAG;EACnH,IAAI,UAAU;EACd,IAAI,cAAc,WAAW;EAC7B,IAAI,MAAM,SAAS,QAAQ,KAAK,UAAU,OAAO,MAAM,WAAW,IAAI,CAAC;EACvE,QAAQ,MAAM,KAAK;EACnB,IAAI,OAAO,UAAU;GACnB,QAAQ,MAAM,KAAK;GACnB,aAAa;EACf;EACA,IAAI,OAAO,YAAY,cAAc,GAAG;GACtC,UAAU;GACV,eAAe;GACf,MAAM,MAAM;EACd;EAEA,IAAI,OAAO;GACT,QAFW,KAAK,OAAO,WAAW,OAAO,CAE5B,IAAI;GACjB,MAAM;EACR;EACA,SAAS,SAAS,QAAQ,KAAK,UAAU;GACvC,IAAI;GACJ,IAAI,cAAc;IAChB,SAAS,MAAM;IACf,UAAU,MAAM;IAChB,UAAU;KACR,QAAQ,KAAK,SAAS,KAAK,OAAO;KAClC,MAAM,UAAU,eAAe,iBAAiB,MAAM,aAAa,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB;IAC1H;GACF;GACA,IAAI,SAAS,CAAC,GAAG,KAAK,WAAW;GACjC,OAAO,YAAY;GACnB,OAAO;EACT,GAAG,YAAY;CACjB,OAAO;EACL,IAAI,UAAU,gBAAgB,gBAAgB,UAAU,GAAG,IAAI;EAC/D,IAAI,WAAW,IAAI,WAAW,MAAM,KAAK,cAAc,GACrD,aAAa;EAEf,IAAI,gBAAgB,WAAW,IAAI,WAAW,MAAM,KAAK,cAAc;EACvE,IAAI,eAAe,GACjB,eAAe,KAAK,MAAM,YAAY;EAExC,IAAI,OAAO,oBAAoB,UAAU,IAAI,KAAK,IAAI,cAAc,UAAU,IAAI;EAClF,SAAS,SAAS,QAAQ,KAAK,OAAO,MAAM,CAAC,GAAG,KAAK;GACnD,SAAS,MAAM;GACf,UAAU,MAAM;GAChB,UAAU;IACR,QAAQ,UAAU,OAAO,eAAe,QAAQ,KAAK,OAAO,cAAc;IAC1E;GACF;EACF,CAAC,GAAG,YAAY;CAClB;CACA,OAAO;AACT;AACA,IAAW,0BAA0B,UAAU,kBAAkB,QAAQ,gBAAgB,aAAa,UAAU,oBAAoB;CAClI,IAAI,aAAa,UAAU,eAAe,IAAI,mBAAmB;CACjE,IAAI,kBAAkB,gBAAgB,QAAQ,gBAAgB,gBAAgB,WAAW,cAAc,UAAU,UAAU,UAAU;CACrI,IAAI,gBAAgB,YAAY,mBAAmB,MACjD,kBAAkB,gBAAgB,KAAI,QAAOH,gBAAcA,gBAAc,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EACrF,UAAUA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,QAAQ,GAAG,CAAC,GAAG,EAC3D,QAAQ,IAAI,SAAS,SAAS,cAAc,EAC9C,CAAC,EACH,CAAC,CAAC;CAEJ,OAAO;AACT;;;ACnFA,IAAW,sBAAsB,aAAa,gBAAgB;CAC5D,IAAI,wBAAwB,yBAAyB,WAAW;CAChE,IAAI,CAAC,eAAe,yBAAyB,QAAQ,eAAe,MAClE;CAEF,IAAI,UAAU,YAAY;CAC1B,IAAI,WAAW,MACb;CAEF,IAAI,aAAa,YAAY;CAC7B,IAAI,CAAC,YACH;CAEF,IAAI,cAAc,WAAW;CAC7B,IAAI,CAAC,aACH;CAEF,OAAO,YAAY,MAAK,OAAM,GAAG,QAAQ,qBAAqB;AAChE;;;ACnBA,IAAW,sBAAsB,iBAAiB,gBAAgB;CAChE,IAAI,mBAAmB,QAAQ,eAAe,MAC5C;CAEF,IAAI,WAAW,gBAAgB,MAAK,MAAK,EAAE,YAAY,YAAY,WAAW,YAAY,WAAW,QAAQ,EAAE,SAAS,SAAS,YAAY,OAAO,CAAC;CACrJ,IAAI,YAAY,MACd;CAEF,OAAO,SAAS;AAClB;;;ACRA,SAAgB,qBAAqB,OAAO,eAAe;CACzD,IAAI,SAAS,OAAO,UAAU,YAAY,YAAY,SAAS,OAAO,MAAM,WAAW,YAAY,oBAAoB,MAAM,MAAM,GACjI,OAAO,MAAM;CAEf,OAAO;AACT;;;ACFA,IAAW,4BAA2B,UAAS;CAC7C,IAAI,YAAY,MAAM;CACtB,IAAI,WAAW,eAAe;CAC9B,IAAI,aAAa,cAAc;CAC/B,gBAAgB;EACd,IAAI,YAEF,aAAa,CAEb;EAEF,SAAS,aAAa,SAAS,CAAC;EAChC,aAAa;GACX,SAAS,aAAa,KAAA,CAAS,CAAC;EAClC;CACF,GAAG;EAAC;EAAW;EAAU;CAAU,CAAC;CACpC,OAAO;AACT;;;;;;;ACdA,IAAII,iBAAe;CACjB,GAAG;CACH,GAAG;CACH,OAAO;CACP,QAAQ;CACR,SAAS;EACP,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CACR;AACF;AACA,IAAW,aAAa,YAAY;CAClC,MAAM;CACN,cAAA;CACA,UAAU,EACR,iBAAiB,QAAQ,QAAQ;EAC/B,IAAI,OAAO,WAAW,MACpB,OAAOA;EAET,OAAO,OAAO;CAChB,EACF;AACF,CAAC;AACsB,WAAW,QAAQ;AAE1C,IAAW,eAAe,WAAW;;;;;;ACErC,SAAgB,eAAe,OAAO;CACpC,QAAQ,QAAQ,MAAM,OAAO;AAC/B;;;;;;AAOA,IAAW,0BAA0B,SAAS,wBAAwB,OAAO;CAC3E,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM;CAIjB,IAAI,eADkB,eAFV,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAG/C,IAAI,KAAK,KAAK;CAI/C,IAAI,iBAAiB,KAAK,KAAK,SAAS,KAAK;CAC7C,IAAI,cAAc,eAAe,kBAAkB,eAAe,KAAK,KAAK,iBAAiB,SAAS,KAAK,IAAI,YAAY,IAAI,QAAQ,KAAK,IAAI,YAAY;CAC5J,OAAO,KAAK,IAAI,WAAW;AAC7B;AClDA,IAAW,yBAAyB,YAAY;CAC9C,MAAM;CACN,cAAA;EANA,MAAM,CAAC;EACP,OAAO,CAAC;EACR,OAAO,CAAC;CAIR;CACA,UAAU;EACR,SAAS,OAAO,WAAW;GACzB,MAAM,KAAK,KAAK,OAAO,OAAO;EAChC;EACA,YAAY,OAAO,WAAW;GAC5B,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,KAAK,WAAU,QAAO,QAAQ,OAAO,OAAO;GACvE,IAAI,UAAU,IACZ,MAAM,KAAK,OAAO,OAAO,CAAC;EAE9B;EACA,UAAU,OAAO,WAAW;GAC1B,MAAM,MAAM,KAAK,OAAO,OAAO;EACjC;EACA,aAAa,OAAO,WAAW;GAC7B,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,MAAM,WAAU,SAAQ,SAAS,OAAO,OAAO;GAC1E,IAAI,UAAU,IACZ,MAAM,MAAM,OAAO,OAAO,CAAC;EAE/B;EACA,UAAU,OAAO,WAAW;GAC1B,MAAM,MAAM,KAAK,UAAU,OAAO,OAAO,CAAC;EAC5C;EACA,aAAa,OAAO,WAAW;GAC7B,IAAI,QAAQ,QAAQ,KAAK,CAAC,CAAC,MAAM,WAAU,SAAQ,SAAS,OAAO,OAAO;GAC1E,IAAI,UAAU,IACZ,MAAM,MAAM,OAAO,OAAO,CAAC;EAE/B;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,uBAAuB;AACxC,sBAAsB;AACnB,sBAAsB;AACxB,sBAAsB;AACnB,sBAAsB;AACzB,sBAAsB;AACnB,sBAAsB;AAErC,IAAW,2BAA2B,uBAAuB;;;AChD7D,SAASE,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAK9D,IAAI,oBAAiC,4BAAc,KAAA,CAAS;;;;;;;;;;;AAY5D,IAAW,oBAAmB,SAAQ;CACpC,IAAI,WAAW,KAAK;CACpB,IAEE,aADaD,iBADC,SAAS,GAAG,OAAO,SAAS,UAAU,GAAG,OAAO,CAC1B,GAAG,CACjB,CAAC,CAAC;CAC1B,IAAI,WAAW,YAAY;CAC3B,IAAI,YAAY,MACd,OAAO;CAET,IAAI,IAAI,SAAS,GACf,IAAI,SAAS,GACb,QAAQ,SAAS,OACjB,SAAS,SAAS;CACpB,OAAoB,sBAAM,cAAc,kBAAkB,UAAU,EAClE,OAAO,WACT,GAAgB,sBAAM,cAAc,QAAQ,MAAmB,sBAAM,cAAc,YAAY,EAC7F,IAAI,WACN,GAAgB,sBAAM,cAAc,QAAQ;EACvC;EACA;EACK;EACD;CACT,CAAC,CAAC,CAAC,GAAG,QAAQ;AAChB;;;;;;;;;;;;ACnCA,SAAS,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiCjB,SAAS,cAAc,OAAO;CAC7B,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU,OAAO;CAChD,MAAM,QAAQ,OAAO,eAAe,KAAK;CACzC,IAAI,EAAE,UAAU,QAAQ,UAAU,OAAO,aAAa,OAAO,eAAe,KAAK,MAAM,OAAO,OAAO;CACrG,OAAO,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA,SAAS,YAAY,GAAG,GAAG,gBAAgB;CAC1C,OAAO,gBAAgB,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc;AAC5E;AACA,SAAS,gBAAgB,GAAG,GAAG,UAAU,SAAS,SAAS,OAAO,gBAAgB;CACjF,MAAM,SAAS,eAAe,GAAG,GAAG,UAAU,SAAS,SAAS,KAAK;CACrE,IAAI,WAAW,KAAK,GAAG,OAAO;CAC9B,IAAI,OAAO,MAAM,OAAO,GAAG,QAAQ,OAAO,GAAf;EAC1B,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,aAAa,OAAO,MAAM;EAC/B,KAAK,UAAU,OAAO,MAAM,KAAK,OAAO,GAAG,GAAG,CAAC;EAC/C,KAAK,YAAY,OAAO,MAAM;EAC9B,KAAK,UAAU,OAAO,gBAAgB,GAAG,GAAG,OAAO,cAAc;CAClE;CACA,OAAO,gBAAgB,GAAG,GAAG,OAAO,cAAc;AACnD;AACA,SAAS,gBAAgB,GAAG,GAAG,OAAO,gBAAgB;CACrD,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO;CAC5B,IAAI,OAAO,OAAO,CAAC;CACnB,IAAI,OAAO,OAAO,CAAC;CACnB,IAAI,SAAS,sBAAsB,OAAO;CAC1C,IAAI,SAAS,sBAAsB,OAAO;CAC1C,IAAI,SAAS,MAAM,OAAO;CAC1B,QAAQ,MAAR;EACC,KAAK,WAAW,OAAO,EAAE,SAAS,MAAM,EAAE,SAAS;EACnD,KAAK,WAAW,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC;EAClD,KAAK;EACL,KAAK;EACL,KAAK,WAAW,OAAO,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC;EACzD,KAAK,WAAW,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;EAC9D,KAAK,aAAa,OAAO,MAAM;CAChC;CACA,QAAQ,yBAAyB,IAAI,IAAI;CACzC,MAAM,SAAS,MAAM,IAAI,CAAC;CAC1B,MAAM,SAAS,MAAM,IAAI,CAAC;CAC1B,IAAI,UAAU,QAAQ,UAAU,MAAM,OAAO,WAAW;CACxD,MAAM,IAAI,GAAG,CAAC;CACd,MAAM,IAAI,GAAG,CAAC;CACd,IAAI;EACH,QAAQ,MAAR;GACC,KAAK;IACJ,IAAI,EAAE,SAAS,EAAE,MAAM,OAAO;IAC9B,KAAK,MAAM,CAAC,KAAK,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,gBAAgB,OAAO,EAAE,IAAI,GAAG,GAAG,KAAK,GAAG,GAAG,OAAO,cAAc,GAAG,OAAO;IACzI,OAAO;GACR,KAAK,QAAQ;IACZ,IAAI,EAAE,SAAS,EAAE,MAAM,OAAO;IAC9B,MAAM,UAAU,MAAM,KAAK,EAAE,OAAO,CAAC;IACrC,MAAM,UAAU,MAAM,KAAK,EAAE,OAAO,CAAC;IACrC,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;KACxC,MAAM,SAAS,QAAQ;KACvB,MAAM,QAAQ,QAAQ,WAAW,WAAW;MAC3C,OAAO,gBAAgB,QAAQ,QAAQ,KAAK,GAAG,GAAG,GAAG,OAAO,cAAc;KAC3E,CAAC;KACD,IAAI,UAAU,IAAI,OAAO;KACzB,QAAQ,OAAO,OAAO,CAAC;IACxB;IACA,OAAO;GACR;GACA,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;IACJ,IAAI,SAAS,CAAC,MAAM,SAAS,CAAC,GAAG,OAAO;IACxC,IAAI,EAAE,WAAW,EAAE,QAAQ,OAAO;IAClC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG,OAAO,cAAc,GAAG,OAAO;IAC5G,OAAO;GACR,KAAK;IACJ,IAAI,EAAE,eAAe,EAAE,YAAY,OAAO;IAC1C,OAAO,gBAAgB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,OAAO,cAAc;GACnF,KAAK;IACJ,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,OAAO;IAC3E,OAAO,gBAAgB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,OAAO,cAAc;GACnF,KAAK,UAAU,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;GAC3D,KAAK,WAAW;IACf,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,OAAO,cAAc,KAAK,cAAc,CAAC,KAAK,cAAc,CAAC,IAAI,OAAO;IAC5H,MAAM,QAAQ,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;IAClD,IAAI,MAAM,WAAW,MAAM,QAAQ,OAAO;IAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;KACtC,MAAM,UAAU,MAAM;KACtB,MAAM,QAAQ,EAAE;KAChB,IAAI,CAAC,OAAO,OAAO,GAAG,OAAO,GAAG,OAAO;KACvC,MAAM,QAAQ,EAAE;KAChB,IAAI,CAAC,gBAAgB,OAAO,OAAO,SAAS,GAAG,GAAG,OAAO,cAAc,GAAG,OAAO;IAClF;IACA,OAAO;GACR;GACA,SAAS,OAAO;EACjB;CACD,UAAU;EACT,MAAM,OAAO,CAAC;EACd,MAAM,OAAO,CAAC;CACf;AACD;;;;;;;;;;;;;;;;;AChIA,SAAS,QAAQ,GAAG,GAAG;CACtB,OAAO,YAAY,GAAG,GAAG,IAAI;AAC9B;;;;;;;;;;;;;;ACRA,SAAgB,YAAY,OAAO,GAAG;CACpC,IAAI,IAAI,GACN,OAAO,CAAC;CAEV,IAAI,MAAM,GACR,OAAO;CAET,IAAI,SAAS,CAAC;CACd,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxC,IAAI,OAAO,MAAM;EACjB,IAAI,SAAS,KAAA,GACX,OAAO,KAAK,IAAI;CAEpB;CACA,OAAO;AACT;;;ACxBA,SAAgB,mBAAmB,aAAa,UAAU,OAAO;CAK/D,OAAO,wBAAwB;EAH7B,OAAO,YAAY,QAAQ,SAAS;EACpC,QAAQ,YAAY,SAAS,SAAS;CAET,GAAM,KAAK;AAC5C;AACA,SAAgB,kBAAkB,SAAS,MAAM,SAAS;CACxD,IAAI,UAAU,YAAY;CAC1B,IAAI,IAAI,QAAQ,GACd,IAAI,QAAQ,GACZ,QAAQ,QAAQ,OAChB,SAAS,QAAQ;CACnB,IAAI,SAAS,GACX,OAAO;EACL,OAAO,UAAU,IAAI;EACrB,KAAK,UAAU,IAAI,QAAQ,IAAI;CACjC;CAEF,OAAO;EACL,OAAO,UAAU,IAAI,QAAQ,IAAI;EACjC,KAAK,UAAU,IAAI;CACrB;AACF;AACA,SAAgB,UAAU,MAAM,cAAc,SAAS,OAAO,KAAK;CAGjE,IAAI,OAAO,eAAe,OAAO,SAAS,OAAO,eAAe,OAAO,KACrE,OAAO;CAET,IAAI,OAAO,QAAQ;CACnB,OAAO,QAAQ,eAAe,OAAO,OAAO,IAAI,UAAU,KAAK,QAAQ,eAAe,OAAO,OAAO,IAAI,QAAQ;AAClH;AACA,SAAgB,uBAAuB,OAAO,UAAU;CACtD,OAAO,YAAY,OAAO,WAAW,CAAC;AACxC;;;ACnCA,SAAgB,oBAAoB,MAAM,YAAY,aAAa,OAAO,YAAY;CAEpF,IAAI,UAAU,SAAS,CAAC,EAAA,CAAG,MAAM;CACjC,IAAI,eAAe,WAAW,OAC5B,MAAM,WAAW;CACnB,IAAI,QAAQ;CAGZ,IAAI,WAAW;CACf,IAAI,QAAQ;CACZ,IAAI,QAAQ,SAAS,QAAQ;EAIzB,IAAI,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;EAGhE,IAAI,UAAU,KAAA,GACZ,OAAO,EACL,GAAG,YAAY,OAAO,QAAQ,EAChC;EAIF,IAAI,IAAI;EACR,IAAI;EACJ,IAAI,gBAAgB;GAClB,IAAI,SAAS,KAAA,GACX,OAAO,YAAY,OAAO,CAAC;GAE7B,OAAO;EACT;EACA,IAAI,YAAY,MAAM;EAEtB,IAAI,SAAS,UAAU,KAAK,UAAU,MAAM,WAAW,SAAS,OAAO,GAAG;EAC1E,IAAI,CAAC,QAAQ;GAEX,QAAQ;GACR,QAAQ;GACR,YAAY;EACd;EACA,IAAI,QAAQ;GAEV,QAAQ,YAAY,QAAQ,QAAQ,IAAI,IAAI;GAC5C,SAAS;EACX;CACF,GACA;CACF,OAAO,YAAY,OAAO,QAAQ;EAChC,OAAO,MAAM;EACb,IAAI,MAAM,OAAO,KAAK;CACxB;CACA,OAAO,CAAC;AACV;AACA,SAAgB,+BAA+B,MAAM,YAAY,aAAa,OAAO,YAAY;CAI/F,IAAI,OADU,SAAS,CAAC,EAAA,CAAG,MACZ,CAAC,CAAC;CACjB,IAAI,QAAQ,GACV,OAAO,CAAC;CAEV,IAAI,eAAe,WAAW,OAC5B,MAAM,WAAW;CAGnB,KAAK,IAAI,WAAW,GAAG,YAAY,KAAK,YAAY;EAElD,IAAI,UAAU,MAAM,KAAK;EACzB,IAAI,QAAQ;EACZ,IAAI,KAAK;EAGT,IAAI,SAAS,SAAS,SAAS;GAC3B,IAAI,QAAQ,MAAM;GAClB,IAAI,SAAS,MACX,OAAO;GAET,IAAI,IAAI;GACR,IAAI;GAGJ,IAAI,gBAAgB;IAClB,IAAI,SAAS,KAAA,GACX,OAAO,YAAY,OAAO,CAAC;IAE7B,OAAO;GACT;GACA,IAAI,YAAY,MAAM;GAItB,IAAI,SAAS,UAAU,UAAU,UAAU,MAAM,WAAW,SAAS,OAAO,GAAG;GAC/E,IAAI,CAAC,QAAQ;IAGX,KAAK;IACL,OAAO;GACT;GAGA,IAAI,QACF,QAAQ,YAAY,QAAQ,QAAQ,IAAI,IAAI;EAEhD,GACA;EACF,KAAK,IAAI,QAAQ,QAAQ,QAAQ,KAAK,SAAS,UAAU;GACvD,QAAQ,OAAO;GACf,IAAI,UAAU,GAAG;GACjB,IAAI,UAAU,GAAG;EACnB;EAGA,IAAI,IAAI;GAEN,IAAI,aAAa,CAAC;GAClB,KAAK,IAAI,SAAS,QAAQ,SAAS,KAAK,UAAU,UAAU;IAC1D,IAAI,OAAO,MAAM;IACjB,IAAI,QAAQ,MACV,WAAW,KAAK,IAAI;GAExB;GACA,OAAO;EACT;CACF;CAGA,OAAO,CAAC;AACV;;;AClIA,SAASM,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAMvT,SAAS,YAAY,MAAM,YAAY,aAAa,OAAO,YAAY;CACrE,IAAI,UAAU,SAAS,CAAC,EAAA,CAAG,MAAM;CACjC,IAAI,MAAM,OAAO;CACjB,IAAI,QAAQ,WAAW;CACvB,IAAI,MAAM,WAAW;CACrB,IAAI,QAAQ,SAAS,MAAM,GAAG;EAC5B,IAAI,eAAe,OAAO;EAC1B,IAAI,gBAAgB,MAClB,OAAO;EAET,IAAI,QAAQ;EACZ,IAAI;EACJ,IAAI,gBAAgB;GAClB,IAAI,SAAS,KAAA,GACX,OAAO,YAAY,cAAc,CAAC;GAEpC,OAAO;EACT;EACA,IAAI,MAAM,MAAM,GAAG;GACjB,IAAI,MAAM,QAAQ,MAAM,aAAa,OAAO,QAAQ,IAAI,IAAI;GAC5D,OAAO,KAAK,QAAQH,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAC9D,WAAW,MAAM,IAAI,MAAM,aAAa,MAAM,OAAO,MAAM,WAC7D,CAAC;EACH,OACE,OAAO,KAAK,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAC9D,WAAW,MAAM,WACnB,CAAC;EAEH,IAAI,MAAM,aAAa,MACR;OAAA,UAAU,MAAM,MAAM,WAAW,SAAS,OAAO,GACrD,GAAG;IACV,MAAM,MAAM,YAAY,QAAQ,QAAQ,IAAI,IAAI;IAChD,OAAO,KAAKA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACtD,QAAQ,KACV,CAAC;GACH;;CAEJ;CACA,KAAK,IAAI,IAAI,MAAM,GAAG,KAAK,GAAG,KAC5B,IAAI,MAAM,CAAC,GAAG;CAEhB,OAAO;AACT;AACA,SAAS,cAAc,MAAM,YAAY,aAAa,OAAO,YAAY,aAAa;CAEpF,IAAI,UAAU,SAAS,CAAC,EAAA,CAAG,MAAM;CACjC,IAAI,MAAM,OAAO;CACjB,IAAI,QAAQ,WAAW,OACrB,MAAM,WAAW;CACnB,IAAI,aAAa;EAEf,IAAI,OAAO,MAAM,MAAM;EACvB,IAAI,QAAQ,MAAM;GAChB,IAAI,WAAW,YAAY,MAAM,MAAM,CAAC;GACxC,IAAI,UAAU,QAAQ,KAAK,aAAa,OAAO,WAAW,IAAI;GAC9D,OAAO,MAAM,KAAK,OAAOA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAClE,WAAW,UAAU,IAAI,KAAK,aAAa,UAAU,OAAO,KAAK,WACnE,CAAC;GACD,IAAI,KAAK,aAAa,MACH;QAAA,UAAU,MAAM,KAAK,iBAAiB,UAAU,OAAO,GAC3D,GAAG;KACd,MAAM,KAAK,YAAY,QAAQ,WAAW,IAAI;KAC9C,OAAO,MAAM,KAAKA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAC3D,QAAQ,KACV,CAAC;IACH;;EAEJ;CACF;CACA,IAAI,QAAQ,cAAc,MAAM,IAAI;CACpC,IAAI,SAAS,SAAS,OAAO,GAAG;EAC9B,IAAI,eAAe,OAAO;EAC1B,IAAI,gBAAgB,MAClB,OAAO;EAET,IAAI,QAAQ;EACZ,IAAI;EACJ,IAAI,gBAAgB;GAClB,IAAI,SAAS,KAAA,GACX,OAAO,YAAY,cAAc,CAAC;GAEpC,OAAO;EACT;EACA,IAAI,MAAM,GAAG;GACX,IAAI,MAAM,QAAQ,MAAM,aAAa,OAAO,QAAQ,IAAI,IAAI;GAC5D,OAAO,KAAK,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAC9D,WAAW,MAAM,IAAI,MAAM,aAAa,MAAM,OAAO,MAAM,WAC7D,CAAC;EACH,OACE,OAAO,KAAK,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAC9D,WAAW,MAAM,WACnB,CAAC;EAEH,IAAI,MAAM,aAAa,MACR;OAAA,UAAU,MAAM,MAAM,WAAW,SAAS,OAAO,GACrD,GAAG;IACV,QAAQ,MAAM,YAAY,QAAQ,QAAQ,IAAI,IAAI;IAClD,OAAO,KAAKA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACtD,QAAQ,KACV,CAAC;GACH;;CAEJ;CACA,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KACzB,IAAI,OAAO,CAAC,GAAG;CAEjB,OAAO;AACT;AACA,SAAgB,SAAS,OAAO,UAAU,eAAe;CACvD,IAAI,OAAO,MAAM,MACf,QAAQ,MAAM,OACd,UAAU,MAAM,SAChB,aAAa,MAAM,YACnB,cAAc,MAAM,aACpB,WAAW,MAAM,UACjB,gBAAgB,MAAM,eACtB,OAAO,MAAM,MACb,QAAQ,MAAM;CAChB,IAAI,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,MAC9B,OAAO,CAAC;CAEV,IAAI,SAAS,QAAQ,KAAK,OAAO,OAAO;EACtC,IAAI;EACJ,QAAQ,wBAAwB,uBAAuB,OAAO,SAAS,QAAQ,IAAI,WAAW,CAAC,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC;CAC5K;CACA,IAAI,aAAa,CAAC;CAClB,IAAI,UAAU,gBAAgB,SAAS,gBAAgB,WAAW,UAAU;CAC5E,IAAI,WAAW,QAAQ,YAAY,UAAU,cAAc,MAAM;EAC/D;EACA;CACF,CAAC,IAAI;EACH,OAAO;EACP,QAAQ;CACV;CACA,IAAI,eAAe,SAAS,UAAU;EACpC,IAAI,QAAQ,OAAO,kBAAkB,aAAa,cAAc,QAAQ,OAAO,KAAK,IAAI,QAAQ;EAEhG,OAAO,YAAY,UAAU,mBAAmB,cAAc,OAAO;GACnE;GACA;EACF,CAAC,GAAG,UAAU,KAAK,IAAI,cAAc,OAAO;GAC1C;GACA;EACF,CAAC,CAAC,CAAC;CACL;CACA,IAAI,QAAQ,MAAM;CAClB,IAAI,QAAQ,MAAM;CAClB,IAAI,OAAO,MAAM,UAAU,KAAK,SAAS,QAAQ,SAAS,OAAO,SAAS,MAAM,aAAa,MAAM,UAAU,IAAI;CACjH,IAAI,aAAa,kBAAkB,SAAS,MAAM,OAAO;CACzD,IAAI,aAAa,4BACf,OAAO,oBAAoB,MAAM,YAAY,aAAa,OAAO,UAAU;CAE7E,IAAI,aAAa,0BACf,OAAO,+BAA+B,MAAM,YAAY,aAAa,OAAO,UAAU;CAExF,IAAI,aAAa,mBAAmB,aAAa,oBAC/C,aAAa,cAAc,MAAM,YAAY,aAAa,OAAO,YAAY,aAAa,kBAAkB;MAE5G,aAAa,YAAY,MAAM,YAAY,aAAa,OAAO,UAAU;CAE3E,OAAO,WAAW,QAAO,UAAS,MAAM,MAAM;AAChD;;;;;;;;;;;;;ACjKA,IAAW,2BAA0B,SAAQ;CAC3C,IAAI,QAAQ,KAAK,OACf,QAAQ,KAAK,OACb,wBAAwB,KAAK,kBAC7B,mBAAmB,0BAA0B,KAAK,IAAI,IAAI,uBAC1D,gBAAgB,KAAK,UACrB,WAAW,kBAAkB,KAAK,IAAI,IAAI,eAC1C,kBAAkB,KAAK,YACvB,aAAa,oBAAoB,KAAK,IAAI,IAAI;CAEhD,IAAI,eAAe;CACnB,IAAI,OAAO;EACT,MAAM,KAAK,KAAK,CAAC,CAAC,SAAQ,aAAY;GACpC,IAAI,UAAU;IACZ,IAAI,OAAO,SAAS,sBAAsB;IAC1C,IAAI,KAAK,QAAQ,cACf,eAAe,KAAK;GAExB;EACF,CAAC;EAGD,IAAI,aAAa,QAAQ,MAAM,sBAAsB,CAAC,CAAC,QAAQ;EAC/D,IAAI,YAAY,WAAW;EAG3B,IAAI,oBAAoB,eAAe,YAAY,cAAc,QAAQ,mBAAmB;EAC5F,OAAO,KAAK,MAAM,iBAAiB;CACrC;CACA,OAAO;AACT;;;;;;;;;;;;;AC9BA,IAAW,4BAA2B,SAAQ;CAC5C,IAAI,QAAQ,KAAK,OACf,QAAQ,KAAK,OACb,wBAAwB,KAAK,kBAC7B,mBAAmB,0BAA0B,KAAK,IAAI,IAAI,uBAC1D,gBAAgB,KAAK,UACrB,WAAW,kBAAkB,KAAK,IAAI,IAAI,eAC1C,kBAAkB,KAAK,YACvB,aAAa,oBAAoB,KAAK,IAAI,IAAI;CAEhD,IAAI,gBAAgB;CACpB,IAAI,OAAO;EACT,MAAM,KAAK,KAAK,CAAC,CAAC,SAAQ,aAAY;GACpC,IAAI,UAAU;IACZ,IAAI,OAAO,SAAS,sBAAsB;IAC1C,IAAI,KAAK,SAAS,eAChB,gBAAgB,KAAK;GAEzB;EACF,CAAC;EAGD,IAAI,cAAc,QAAQ,MAAM,sBAAsB,CAAC,CAAC,SAAS;EACjE,IAAI,aAAa,WAAW;EAG5B,IAAI,qBAAqB,gBAAgB,aAAa,eAAe,QAAQ,mBAAmB;EAChG,OAAO,KAAK,MAAM,kBAAkB;CACtC;CACA,OAAO;AACT;ACzBA,IAAW,qBAAqB,YAAY;CAC1C,MAAM;CACN,cAAA;EALA,OAAO,CAAC;EACR,OAAO,CAAC;CAIR;CACA,UAAU;EACR,mBAAmB,OAAO,WAAW;GACnC,IAAI,kBAAkB,OAAO,SAC3B,WAAW,gBAAgB,UAC3B,SAAS,gBAAgB,QACzB,QAAQ,gBAAgB;GAC1B,MAAM,SAAS,CAAC,UAAU,UAAU,KAAK;EAC3C;EACA,sBAAsB,OAAO,WAAW;GACtC,IAAI,mBAAmB,OAAO,SAC5B,WAAW,iBAAiB,UAC5B,SAAS,iBAAiB;GAC5B,OAAO,MAAM,SAAS,CAAC;EACzB;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,mBAAmB;AAC7C,IAAA,mBAAmB,sBAAsB;AACzC,IAAA,sBAAsB,sBAAsB;AAE9C,IAAW,uBAAuB,mBAAmB;;;;;;ACtCrD,IAAIK,eAAY;CAAC;CAAY;CAAS;CAAU;CAAa;CAAQ;CAAS;CAAY;AAAQ;AAClG,SAASC,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAC9D,SAASK,4BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,iCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,iCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;;;;AA+BvT,IAAW,4BAA4B;CACrC,GAAG;CACH,GAAG;CACH,OAAO;CACP,QAAQ;CACR,SAAS;EACP,GAAG;EACH,GAAG;EACH,OAAO;EACP,QAAQ;CACV;CAEA,aAAa;CAEb,OAAO,CAAC;CACR,QAAQ;CACR,UAAU;CACV,UAAU;CACV,MAAM;CACN,QAAQ;CACR,YAAY;CAEZ,UAAU;CACV,YAAY;CACZ,UAAU;CACV,QAAQ,gBAAgB;AAC1B;AAQA,SAAS,SAAS,eAAe;CAC/B,IAAI,IAAI,cAAc,GACpB,IAAI,cAAc,GAClB,QAAQ,cAAc,OACtB,SAAS,cAAc,QACvB,cAAc,cAAc,aAC5B,SAAS,cAAc,QACvB,WAAW,cAAc,UACzB,gBAAgB,cAAc;CAChC,IAAI,CAAC,UACH,OAAO;CAET,IAAI,QAAQH,gBAAcA,gBAAcA,gBAAc,CAAC,GAAG,aAAa,GAAG,sBAAsB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAC9G,MAAM,OACR,CAAC;CACD,IAAI,gBAAgB,SAAS,gBAAgB,UAAU;EACrD,IAAI,aAAa,EAAE,gBAAgB,SAAS,CAAC,UAAU,gBAAgB,YAAY;EACnF,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;GAClD,IAAI;GACJ,IAAI,IAAI,aAAa;GACrB,IAAI,IAAI;GACR,IAAI,IAAI,aAAa;EACvB,CAAC;CACH,OAAO;EACL,IAAI,YAAY,EAAE,gBAAgB,UAAU,CAAC,UAAU,gBAAgB,WAAW;EAClF,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;GAClD,IAAI,IAAI,YAAY;GACpB,IAAI;GACJ,IAAI,IAAI,YAAY;GACpB,IAAI,IAAI;EACV,CAAC;CACH;CACA,OAAoB,sBAAM,cAAc,QAAQF,WAAS,CAAC,GAAG,OAAO,EAClE,WAAW,KAAK,gCAAgCM,MAAI,UAAU,WAAW,CAAC,EAC5E,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;AAgBA,SAAS,iBAAiB,MAAM,GAAG,GAAG,OAAO,QAAQ,aAAa,UAAU,QAAQ,YAAY;CAC9F,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;CACxB,IAAI,OAAO,SAAS,KAAK;CACzB,IAAI,gBAAgB,KAAK,YAAY;CACrC,IAAI,YAAY,SAAS,KAAK,SAAS,IAAI,KAAK,YAAY,KAAK;CACjE,QAAQ,aAAR;EACE,KAAK;GACH,KAAK,KAAK,KAAK;GACf,KAAK,IAAI,CAAC,CAAC,SAAS;GACpB,KAAK,KAAK,OAAO;GACjB,KAAK,KAAK,OAAO;GACjB,KAAK;GACL;EACF,KAAK;GACH,KAAK,KAAK,KAAK;GACf,KAAK,IAAI,CAAC,CAAC,SAAS;GACpB,KAAK,KAAK,OAAO;GACjB,KAAK,KAAK,OAAO;GACjB,KAAK;GACL;EACF,KAAK;GACH,KAAK,KAAK,KAAK;GACf,KAAK,IAAI,CAAC,SAAS;GACnB,KAAK,KAAK,OAAO;GACjB,KAAK,KAAK,OAAO;GACjB,KAAK;GACL;EACF;GACE,KAAK,KAAK,KAAK;GACf,KAAK,IAAI,CAAC,SAAS;GACnB,KAAK,KAAK,OAAO;GACjB,KAAK,KAAK,OAAO;GACjB,KAAK;CAET;CACA,OAAO;EACL,MAAM;GACJ;GACA;GACA;GACA;EACF;EACA,MAAM;GACJ,GAAG;GACH,GAAG;EACL;CACF;AACF;;;;;;AAOA,SAAS,kBAAkB,aAAa,QAAQ;CAC9C,QAAQ,aAAR;EACE,KAAK,QACH,OAAO,SAAS,UAAU;EAC5B,KAAK,SACH,OAAO,SAAS,QAAQ;EAC1B,SACE,OAAO;CACX;AACF;;;;;;AAOA,SAAS,sBAAsB,aAAa,QAAQ;CAClD,QAAQ,aAAR;EACE,KAAK;EACL,KAAK,SACH,OAAO;EACT,KAAK,OACH,OAAO,SAAS,UAAU;EAC5B,SACE,OAAO,SAAS,QAAQ;CAC5B;AACF;AACA,SAAS,SAAS,OAAO;CACvB,IAAI,SAAS,MAAM,QACjB,YAAY,MAAM,WAClB,QAAQ,MAAM;CAChB,IAAI;CACJ,IAAI,oBAAoB,KAAK,UAAU,WAAW,oCAAoC;CACtF,IAAiB,sBAAM,eAAe,MAAM,GAE1C,WAAwB,sBAAM,aAAa,QAAQJ,gBAAcA,gBAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EACjG,WAAW,kBACb,CAAC,CAAC;MACG,IAAI,OAAO,WAAW,YAC3B,WAAW,OAAOA,gBAAcA,gBAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAChE,WAAW,kBACb,CAAC,CAAC;MACG;EACL,IAAI,YAAY;EAChB,IAAI,OAAO,WAAW,WACpB,YAAY,KAAK,WAAW,wBAAwB,MAAM,CAAC;EAE7D,WAAwB,sBAAM,cAAc,MAAMF,WAAS,CAAC,GAAG,WAAW,EAC7D,UACb,CAAC,GAAG,KAAK;CACX;CACA,OAAO;AACT;AACA,SAAS,sBAAsB,MAAM;CACnC,IAAI,QAAQ,KAAK,OACf,WAAW,KAAK,UAChB,SAAS,KAAK;CAChB,IAAI,WAAW,eAAe;CAQ9B,IAAI,yBAAyB,OAAO,IAAI;CACxC,gBAAgB;EACd,IAAI,UAAU,QAAQ,YAAY,MAChC;EAGF,IAAI,YAAY,MAAM,KAAI,UAAS;GACjC,OAAO,KAAK;GACZ,YAAY,KAAK;GACjB,QAAQ,KAAK;GACb,OAAO,KAAK;EACd,EAAE;EACF,IAAI,OAAO,uBAAuB;EAClC,IAAI,QAAQ,QAAQ,KAAK,WAAW,UAAU,KAAK,aAAa,YAAY,QAAQ,KAAK,OAAO,SAAS,GACvG;EAEF,uBAAuB,UAAU;GAC/B,OAAO;GACP;GACA;EACF;EACA,SAAS,iBAAiB;GACxB,OAAO;GACP;GACA;EACF,CAAC,CAAC;CACJ,GAAG;EAAC;EAAU;EAAO;EAAQ;CAAQ,CAAC;CACtC,gBAAgB;EACd,IAAI,UAAU,QAAQ,YAAY,MAChC,OAAOO;EAET,aAAa;GACX,SAAS,oBAAoB;IAC3B;IACA;GACF,CAAC,CAAC;EACJ;CACF,GAAG;EAAC;EAAU;EAAQ;CAAQ,CAAC;CAC/B,OAAO;AACT;AACA,IAAI,QAAqB,0BAAY,OAAO,QAAQ;CAClD,IAAI,eAAe,MAAM,OACvB,QAAQ,iBAAiB,KAAK,IAAI,CAAC,IAAI,cACvC,OAAO,MAAM,MACb,WAAW,MAAM,UACjB,SAAS,MAAM,QACf,gBAAgB,MAAM,eACtB,OAAO,MAAM,MACb,UAAU,MAAM,SAChB,gBAAgB,MAAM,eACtB,cAAc,MAAM,aACpB,SAAS,MAAM,QACf,IAAI,MAAM,GACV,IAAI,MAAM,GACV,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,aAAa,MAAM,YACnB,WAAW,MAAM,UACjB,gBAAgB,MAAM,eACtB,iBAAiB,MAAM,gBACvB,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,SAAS,MAAM;CAEjB,IAAI,aAAa,SAASL,gBAAcA,gBAAc,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,EAC7E,MACF,CAAC,GAAG,UAAU,aAAa;CAC3B,IAAI,YAAY,sBAAsB,cAAc;CACpD,IAAI,kBAAkB,iCAAiC,IAAI;CAE3D,IAAI,aAAa,kBAAkB,UAAU,UAAU,IAAI,UAAU,aAAa,kBAAkB,aAAa,MAAM;CACvH,IAAI,iBAAiB,sBAAsB,aAAa,MAAM;CAC9D,IAAI,sBAAsB,CAAC;CAC3B,IAAI,OAAO,aAAa,UACtB,sBAAsB;CAExB,IAAI,gBAAgBA,gBAAcA,gBAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAClE,MAAM,OACR,GAAG,mBAAmB;CACtB,IAAI,iBAAiB,WAAW,KAAI,UAASA,gBAAc,EACzD,MACF,GAAG,iBAAiB,OAAO,GAAG,GAAG,OAAO,QAAQ,aAAa,UAAU,QAAQ,UAAU,CAAC,CAAC;CAC3F,IAAI,YAAY,eAAe,KAAI,UAAS;EAC1C,IAAI,QAAQ,MAAM,OAChB,YAAY,MAAM;EACpB,OAAoB,sBAAM,cAAc,OAAO;GAC7C,WAAW;GACX,KAAK,QAAQ,OAAO,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,MAAM,SAAS;EAC5F,GAAG,YAAyB,sBAAM,cAAc,QAAQF,WAAS,CAAC,GAAG,eAAe,WAAW,EAC7F,WAAW,KAAK,qCAAqCM,MAAI,UAAU,WAAW,CAAC,EACjF,CAAC,CAAC,CAAC;CACL,CAAC;CACD,IAAI,aAAa,eAAe,KAAK,OAAO,MAAM;EAChD,IAAI,OAAO;EACX,IAAI,QAAQ,MAAM,OAChB,YAAY,MAAM;EAmBpB,IAAI,iBAAiBJ,gBAAcA,gBAAc,CAAC,GAjBlCA,gBAAcA,gBAAcA,gBAAcA,gBAAc,EACtE,eACF,GAAG,SAAS,GAAG,CAAC,GAAG;GACjB;GACA,QAAQ;GACR,MAAM;EACR,GAAG,SAAS,GAAG,CAAC,GAAG;GACjB,OAAO;GACP,SAAS;GACT,mBAAmB,WAAW;GAC9B;GACA;EACF,GAAG,aAAa,GAAG,CAAC,GAAG,EACrB,QAAQ,SAAS,uBAAuB,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,WAAW,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,UAAU,WAAW,QAAQ,UAAU,KAAK,IAAI,QAAQ,EAC1P,CAG6D,CAAC,GAAG,eAAe;EAChF,OAAoB,sBAAM,cAAc,OAAOF,WAAS;GACtD,WAAW;GACX,KAAK,cAAc,OAAO,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,MAAM,SAAS;EAClG,GAAG,mBAAmB,QAAQ,OAAO,CAAC,CAAC,GAAG,QAAqB,sBAAM,cAAc,UAAU;GAC3F,QAAQ;GACR,WAAW;GACX,OAAO,GAAG,OAAO,OAAO,kBAAkB,aAAa,cAAc,MAAM,OAAO,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,OAAO,QAAQ,EAAE;EACvH,CAAC,CAAC;CACJ,CAAC;CACD,OAAoB,sBAAM,cAAc,KAAK,EAC3C,WAAW,0CAA0C,OAAO,UAAU,QAAQ,EAChF,GAAgB,sBAAM,cAAc,uBAAuB;EACzD,OAAO;EACC;EACE;CACZ,CAAC,GAAG,WAAW,SAAS,KAAkB,sBAAM,cAAc,aAAa,EACzE,QAAQ,gBAAgB,MAC1B,GAAgB,sBAAM,cAAc,KAAK;EACvC,WAAW,gDAAgD,OAAO,UAAU,cAAc;EACrF;CACP,GAAG,UAAU,CAAC,GAAG,UAAU,SAAS,KAAkB,sBAAM,cAAc,KAAK,EAC7E,WAAW,+CAA+C,OAAO,UAAU,aAAa,EAC1F,GAAG,SAAS,CAAC;AACf,CAAC;AACD,IAAI,yBAAsC,0BAAY,OAAO,QAAQ;CACnE,IAAI,WAAW,MAAM,UACnB,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,YAAY,MAAM,WAClB,OAAO,MAAM,MACb,QAAQ,MAAM,OACd,WAAW,MAAM,UACjB,SAAS,MAAM,QACf,OAAOF,4BAAyB,OAAOP,YAAS;CAClD,IACE,aAAaC,iBADC,SAAS,EACa,GAAG,CAAC,GACxC,WAAW,WAAW,IACtB,cAAc,WAAW;CAC3B,IACE,aAAaA,iBADE,SAAS,EACa,GAAG,CAAC,GACzC,gBAAgB,WAAW,IAC3B,mBAAmB,WAAW;CAChC,IAAI,WAAW,OAAO,IAAI;CAC1B,oBAAoB,YAAY;EAC9B,0BAA0B;GACxB,IAAI;GACJ,OAAO,wBAAwB;IAC7B,OAAO,SAAS;IAChB,QAAQ,kBAAkB,MAAM,cAAc,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;IAC5G,kBAAkB;IAClB,UAAU,MAAM;IAChB,YAAY,MAAM;GACpB,CAAC;EACH;EACA,2BAA2B;GACzB,IAAI;GACJ,OAAO,yBAAyB;IAC9B,OAAO,SAAS;IAChB,QAAQ,mBAAmB,MAAM,cAAc,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB;IAC/G,kBAAkB;IAClB,UAAU,MAAM;IAChB,YAAY,MAAM;GACpB,CAAC;EACH;CACF,EAAE;CACF,IAAI,WAAW,aAAY,OAAM;EAC/B,IAAI,IAAI;GACN,IAAI,YAAY,GAAG,uBAAuB,oCAAoC;GAC9E,SAAS,UAAU;GACnB,IAAI,OAAO,UAAU;GACrB,IAAI,MAAM;IACR,IAAI,gBAAgB,OAAO,iBAAiB,IAAI;IAChD,IAAI,qBAAqB,cAAc;IACvC,IAAI,0BAA0B,cAAc;IAC5C,IAAI,uBAAuB,YAAY,4BAA4B,eAAe;KAChF,YAAY,kBAAkB;KAC9B,iBAAiB,uBAAuB;IAC1C;GACF;EACF;CACF,GAAG,CAAC,UAAU,aAAa,CAAC;CAC5B,IAAI,MACF,OAAO;CAOT,IAAI,SAAS,QAAQ,SAAS,KAAK,UAAU,QAAQ,UAAU,GAC7D,OAAO;CAET,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,MAAM,OAChB,GAAgB,sBAAM,cAAc,OAAO,EACzC,WAAW,KAAK,2BAA2B,SAAS,EACtD,GAAgB,sBAAM,cAAc,UAAU;EAC5C,GAAG,MAAM;EACT,GAAG,MAAM;EACF;EACC;EACR,aAAa,MAAM;EACnB,QAAQ,MAAM;EACJ;EACV,eAAe,sBAAsB,KAAK;CAC5C,CAAC,GAAgB,sBAAM,cAAc,OAAO;EAC1C,KAAK;EACK;EACV,QAAQ;EACE;EACV,gBAAgB;EAChB,QAAQ,MAAM;EACC;EACf,QAAQ,MAAM;EACd,aAAa,MAAM;EACnB,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,eAAe,MAAM;EACrB,UAAU,MAAM;EAChB,YAAY,MAAM;EAClB,UAAU,MAAM;EAChB,eAAe,MAAM;EACd;EACP,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,GAAG,MAAM;EACT,GAAG,MAAM;EACD;CACV,CAAC,GAAgB,sBAAM,cAAc,+BAA+B;EAClE,GAAG,MAAM;EACT,GAAG,MAAM;EACT,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,YAAY,MAAM;EAClB,YAAY,MAAM;CACpB,GAAgB,sBAAM,cAAc,6BAA6B;EAC/D,OAAO,MAAM;EACb,UAAU,MAAM;CAClB,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;AACtB,CAAC;;;;;;;;;AAUD,IAAW,gBAA6B,sBAAM,YAAY,cAAc,QAAQ;CAC9E,IAAI,QAAQ,oBAAoB,cAAc,yBAAyB;CACvE,OAAoB,sBAAM,cAAc,wBAAwBQ,WAAS,CAAC,GAAG,OAAO,EAC7E,IACP,CAAC,CAAC;AACJ,CAAC;AACD,cAAc,cAAc;;;AEvgB5B,IAAI,uBAAoC,4BAAc,EDQpD,MAAM;CACJ,QAAQ;CACR,MAAM;AACR,ECXoD,CAAW;AAO9B,qBAAqB;;;;;;AAOxD,IAAW,yBAAyB,WAAW,oBAAoB;;;AChBnE,IAAIQ,cAAY;CAAC;CAAM;CAAM;CAAM;CAAM;AAAK;AAC5CC,IAAAA,eAAa,CAAC,QAAQ;AACtBC,IAAAA,eAAa,CAAC,WAAW,SAAS;AAClCC,IAAAA,eAAa,CAAC,WAAW,SAAS;AACpC,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;;;;AAwBtM,IAAI,cAAa,UAAS;CACxB,IAAI,OAAO,MAAM;CACjB,IAAI,CAAC,QAAQ,SAAS,QACpB,OAAO;CAET,IAAI,cAAc,MAAM,aACtB,IAAI,MAAM,GACV,IAAI,MAAM,GACV,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,KAAK,MAAM;CACb,OAAoB,sBAAM,cAAc,QAAQ;EAC3C;EACA;EACC;EACG;EACC;EACR,QAAQ;EACF;EACO;EACb,WAAW;CACb,CAAC;AACH;AACA,SAAS,SAAS,MAAM;CACtB,IAAI,SAAS,KAAK,QAChB,gBAAgB,KAAK;CACvB,IAAI;CACJ,IAAiB,sBAAM,eAAe,MAAM,GAE1C,WAAwB,sBAAM,aAAa,QAAQ,aAAa;MAC3D,IAAI,OAAO,WAAW,YAC3B,WAAW,OAAO,aAAa;MAC1B;EACL,IAAI;EACJ,IAAI,KAAK,cAAc,IACrB,KAAK,cAAc,IACnB,KAAK,cAAc,IACnB,KAAK,cAAc,IACnB,MAAM,cAAc,KAElB,SAAS,wBAAwB,sBAD1BD,2BAAyB,eAAeV,WACQ,CAAM,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC;EACrI,MAAM;EADb,IAEE,sBAAsBU,2BAAyB,OAAOT,YAAU;EAClE,IAAI,kBAAkB,MAAM,QAAQ,oBAAoB,eAAe,IAAI,oBAAoB,gBAAgB,KAAK,GAAG,IAAI,oBAAoB;EAC/I,WAAwB,sBAAM,cAAc,QAAQQ,WAAS,CAAC,GAAG,qBAAqB;GACnE;GACb;GACA;GACA;GACA;GACJ,MAAM;GACD;EACP,CAAC,CAAC;CACJ;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,OAAO;CAClC,IAAI,IAAI,MAAM,GACZ,QAAQ,MAAM,OACd,oBAAoB,MAAM,YAC1B,aAAa,sBAAsB,KAAK,IAAI,OAAO,mBACnD,mBAAmB,MAAM;CAC3B,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,iBAAiB,QACxD,OAAO;CAEK,MAAM;CACR,MAAM;CADlB,IAEE,qBAAqBC,2BAAyB,OAAOR,YAAU;CACjE,IAAI,QAAQ,iBAAiB,KAAK,OAAO,MAAM;EAC7C,IAAI,gBAAgBG,gBAAcA,gBAAc,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG;GAC3E,IAAI;GACJ,IAAI;GACJ,IAAI,IAAI;GACR,IAAI;GACJ,KAAK,QAAQ,OAAO,CAAC;GACrB,OAAO;EACT,CAAC;EACD,OAAoB,sBAAM,cAAc,UAAU;GAChD,KAAK,QAAQ,OAAO,CAAC;GACrB,QAAQ;GACO;EACjB,CAAC;CACH,CAAC;CACD,OAAoB,sBAAM,cAAc,KAAK,EAC3C,WAAW,qCACb,GAAG,KAAK;AACV;AACA,SAAS,kBAAkB,OAAO;CAChC,IAAI,IAAI,MAAM,GACZ,SAAS,MAAM,QACf,kBAAkB,MAAM,UACxB,WAAW,oBAAoB,KAAK,IAAI,OAAO,iBAC/C,iBAAiB,MAAM;CACzB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,QAClD,OAAO;CAEK,MAAM;CACR,MAAM;CADlB,IAEE,qBAAqBK,2BAAyB,OAAOP,YAAU;CACjE,IAAI,QAAQ,eAAe,KAAK,OAAO,MAAM;EAC3C,IAAI,gBAAgBE,gBAAcA,gBAAc,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG;GAC3E,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI,IAAI;GACR,KAAK,QAAQ,OAAO,CAAC;GACrB,OAAO;EACT,CAAC;EACD,OAAoB,sBAAM,cAAc,UAAU;GAChD,QAAQ;GACO;GACf,KAAK,QAAQ,OAAO,CAAC;EACvB,CAAC;CACH,CAAC;CACD,OAAoB,sBAAM,cAAc,KAAK,EAC3C,WAAW,mCACb,GAAG,KAAK;AACV;AACA,SAAS,kBAAkB,OAAO;CAChC,IAAI,iBAAiB,MAAM,gBACzB,cAAc,MAAM,aACpB,IAAI,MAAM,GACV,IAAI,MAAM,GACV,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,mBAAmB,MAAM,kBACzB,qBAAqB,MAAM;CAE7B,IAAI,EADW,uBAAuB,KAAK,IAAI,OAAO,uBACnC,CAAC,kBAAkB,CAAC,eAAe,UAAU,oBAAoB,MAClF,OAAO;CAET,IAAI,gCAAgC,iBAAiB,KAAI,MAAK,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC;CAEzG,IAAI,MAAM,8BAA8B,IACtC,8BAA8B,QAAQ,CAAC;CAEzC,IAAI,QAAQ,8BAA8B,KAAK,OAAO,MAAM;EAE1D,IAAI,YAAY,8BAA8B,IAAI;EAElD,IAAI,aADa,aAAa,OACA,IAAI,SAAS,QAAQ,YAAY;EAC/D,IAAI,cAAc,GAChB,OAAO;EAET,IAAI,aAAa,IAAI,eAAe;EACpC,OAAoB,sBAAM,cAAc,QAAQ;GAC9C,KAAK,SAAS,OAAO,CAAC;GACtB,GAAG;GACA;GACH,QAAQ;GACD;GACP,QAAQ;GACR,MAAM,eAAe;GACR;GACb,WAAW;EACb,CAAC;CACH,CAAC;CACD,OAAoB,sBAAM,cAAc,KAAK,EAC3C,WAAW,4CACb,GAAG,KAAK;AACV;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,mBAAmB,MAAM,UAC3B,WAAW,qBAAqB,KAAK,IAAI,OAAO,kBAChD,eAAe,MAAM,cACrB,cAAc,MAAM,aACpB,IAAI,MAAM,GACV,IAAI,MAAM,GACV,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,iBAAiB,MAAM;CACzB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,aAAa,QAC9C,OAAO;CAET,IAAI,8BAA8B,eAAe,KAAI,MAAK,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC;CACrG,IAAI,MAAM,4BAA4B,IACpC,4BAA4B,QAAQ,CAAC;CAEvC,IAAI,QAAQ,4BAA4B,KAAK,OAAO,MAAM;EACxD,IAAI,YAAY,4BAA4B,IAAI;EAEhD,IAAI,YADa,aAAa,OACD,IAAI,QAAQ,QAAQ,YAAY;EAC7D,IAAI,aAAa,GACf,OAAO;EAET,IAAI,aAAa,IAAI,aAAa;EAClC,OAAoB,sBAAM,cAAc,QAAQ;GAC9C,KAAK,SAAS,OAAO,CAAC;GACtB,GAAG;GACA;GACH,OAAO;GACC;GACR,QAAQ;GACR,MAAM,aAAa;GACN;GACb,WAAW;EACb,CAAC;CACH,CAAC;CACD,OAAoB,sBAAM,cAAc,KAAK,EAC3C,WAAW,0CACb,GAAG,KAAK;AACV;AACA,IAAI,uCAAuC,OAAO,kBAAkB;CAClE,IAAI,QAAQ,MAAM,OAChB,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,SAAS,MAAM;CACjB,OAAO,qBAAqB,SAASA,gBAAcA,gBAAcA,gBAAc,CAAC,GAAG,yBAAyB,GAAG,KAAK,GAAG,CAAC,GAAG;EACzH,OAAO,eAAe,OAAO,IAAI;EACjC,SAAS;GACP,GAAG;GACH,GAAG;GACH;GACA;EACF;CACF,CAAC,CAAC,GAAG,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,aAAa;AAC7D;AACA,IAAI,yCAAyC,OAAO,kBAAkB;CACpE,IAAI,QAAQ,MAAM,OAChB,QAAQ,MAAM,OACd,SAAS,MAAM,QACf,SAAS,MAAM;CACjB,OAAO,qBAAqB,SAASA,gBAAcA,gBAAcA,gBAAc,CAAC,GAAG,yBAAyB,GAAG,KAAK,GAAG,CAAC,GAAG;EACzH,OAAO,eAAe,OAAO,IAAI;EACjC,SAAS;GACP,GAAG;GACH,GAAG;GACH;GACA;EACF;CACF,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,MAAM,OAAO,QAAQ,aAAa;AAC5D;AACA,IAAW,4BAA4B;CACrC,YAAY;CACZ,UAAU;CAEV,kBAAkB,CAAC;CAEnB,gBAAgB,CAAC;CAEjB,cAAc,CAAC;CACf,gBAAgB,CAAC;CACjB,SAAS;CACT,SAAS;CACT,eAAe;CACf,QAAQ,gBAAgB;AAC1B;;;;;;AAOA,SAAgB,cAAc,OAAO;CACnC,IAAI,uBAAuB,wBAAwB,wBAAwB,wBAAwB,wBAAwB;CAC3H,IAAI,aAAa,cAAc;CAC/B,IAAI,cAAc,eAAe;CACjC,IAAI,SAAS,kBAAkB;CAC/B,IAAI,yBAAyBA,gBAAcA,gBAAc,CAAC,GAAG,oBAAoB,OAAO,yBAAyB,CAAC,GAAG,CAAC,GAAG;EACvH,GAAG,SAAS,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;EACxC,GAAG,SAAS,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO;EACxC,OAAO,SAAS,MAAM,KAAK,IAAI,MAAM,QAAQ,OAAO;EACpD,QAAQ,SAAS,MAAM,MAAM,IAAI,MAAM,SAAS,OAAO;CACzD,CAAC;CACD,IAAI,UAAU,uBAAuB,SACnC,UAAU,uBAAuB,SACjC,IAAI,uBAAuB,GAC3B,IAAI,uBAAuB,GAC3B,QAAQ,uBAAuB,OAC/B,SAAS,uBAAuB,QAChC,gBAAgB,uBAAuB,eACvC,mBAAmB,uBAAuB,kBAC1C,iBAAiB,uBAAuB;CAC1C,IAAI,aAAa,cAAc;CAC/B,IAAI,QAAQ,gBAAe,UAAS,oDAAoD,OAAO,SAAS,SAAS,UAAU,CAAC;CAC5H,IAAI,QAAQ,gBAAe,UAAS,oDAAoD,OAAO,SAAS,SAAS,UAAU,CAAC;CAC5H,IAAI,QAAQ,iBAAiB;CAC7B,IAAI,aAAa;EACf,SAAS,wBAAwB,uBAAuB,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,MAAM,KAAK;EAClJ,cAAc,yBAAyB,uBAAuB,iBAAiB,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,MAAM,KAAK;EAC/J,gBAAgB,yBAAyB,uBAAuB,mBAAmB,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,MAAM,KAAK;EACnK,kBAAkB,yBAAyB,uBAAuB,qBAAqB,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,MAAM,KAAK;CACzK;CACA,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GACtF,OAAO;CAUT,IAAI,+BAA+B,uBAAuB,gCAAgC;CAC1F,IAAI,iCAAiC,uBAAuB,kCAAkC;CAC9F,IAAI,mBAAmB,uBAAuB,kBAC5C,iBAAiB,uBAAuB;CAG1C,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,WAAW,OAAO,mCAAmC,YAAY;EAC3G,IAAI,qBAAqB,oBAAoB,iBAAiB;EAC9D,IAAI,kBAAkB,+BAA+B;GACnD,OAAO,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACzD,OAAO,qBAAqB,mBAAmB,MAAM,MACvD,CAAC,IAAI,KAAA;GACL,OAAO,eAAe,QAAQ,eAAe,KAAK,IAAI,aAAa;GACnE,QAAQ,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAc;GACvE;EACF,GAAG,qBAAqB,OAAO,aAAa;EAC5C,KAAK,MAAM,QAAQ,eAAe,GAAG,+EAA+E,OAAO,OAAO,iBAAiB,GAAG,CAAC;EACvJ,IAAI,MAAM,QAAQ,eAAe,GAC/B,mBAAmB;CAEvB;CAGA,KAAK,CAAC,kBAAkB,CAAC,eAAe,WAAW,OAAO,iCAAiC,YAAY;EACrG,IAAI,mBAAmB,kBAAkB,eAAe;EACxD,IAAI,mBAAmB,6BAA6B;GAClD,OAAO,QAAQA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EACzD,OAAO,mBAAmB,iBAAiB,MAAM,MACnD,CAAC,IAAI,KAAA;GACL,OAAO,eAAe,QAAQ,eAAe,KAAK,IAAI,aAAa;GACnE,QAAQ,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAc;GACvE;EACF,GAAG,mBAAmB,OAAO,aAAa;EAC1C,KAAK,MAAM,QAAQ,gBAAgB,GAAG,6EAA6E,OAAO,OAAO,kBAAkB,GAAG,CAAC;EACvJ,IAAI,MAAM,QAAQ,gBAAgB,GAChC,iBAAiB;CAErB;CACA,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,uBAAuB,OACjC,GAAgB,sBAAM,cAAc,KAAK,EACvC,WAAW,0BACb,GAAgB,sBAAM,cAAc,YAAY;EAC9C,OAAO,yBAAyB,uBAAuB,UAAU,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,MAAM,KAAK;EACjJ,cAAc,yBAAyB,uBAAuB,iBAAiB,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,MAAM,KAAK;EAC/J,GAAG,uBAAuB;EAC1B,GAAG,uBAAuB;EAC1B,OAAO,uBAAuB;EAC9B,QAAQ,uBAAuB;EAC/B,IAAI,uBAAuB;CAC7B,CAAC,GAAgB,sBAAM,cAAc,mBAAmBI,WAAS,CAAC,GAAG,wBAAwB,EACzE,iBACpB,CAAC,CAAC,GAAgB,sBAAM,cAAc,iBAAiBA,WAAS,CAAC,GAAG,wBAAwB,EAC1E,eAClB,CAAC,CAAC,GAAgB,sBAAM,cAAc,qBAAqBA,WAAS,CAAC,GAAG,wBAAwB,YAAY;EAClG;EACU;EACX;EACA;CACT,CAAC,CAAC,GAAgB,sBAAM,cAAc,mBAAmBA,WAAS,CAAC,GAAG,wBAAwB,YAAY;EAChG;EACQ;EACT;EACA;CACT,CAAC,CAAC,CAAC,CAAC;AACN;AACA,cAAc,cAAc;;;AClY5B,IAAI,gBAAgB,YAAY;CAC9B,MAAM;CACN,cAAA,CAAW;CACX,UAAU;EACR,cAAc,OAAO,WAAW;GAC9B,IAAI,kBAAkB,OAAO,SAC3B,SAAS,gBAAgB,QACzB,WAAW,gBAAgB;GAC7B,IAAI,CAAC,MAAM,SACT,MAAM,UAAU,CAAC;GAEnB,MAAM,OAAO,CAAC,KAAK,QAAQ;EAC7B;EACA,kBAAkB,OAAO,WAAW;GAClC,IAAI,mBAAmB,OAAO,SAC5B,SAAS,iBAAiB,QAC1B,OAAO,iBAAiB,MACxB,OAAO,iBAAiB;GAC1B,IAAI,MAAM,SACR,MAAM,UAAU,MAAM,OAAO,CAAC,KAAI,MAAK,EAAE,YAAY,KAAK,WAAW,EAAE,cAAc,KAAK,YAAY,OAAO,CAAC;EAElH;EACA,iBAAiB,OAAO,WAAW;GACjC,IAAI,mBAAmB,OAAO,SAC5B,SAAS,iBAAiB,QAC1B,WAAW,iBAAiB;GAC9B,IAAI,MAAM,SACR,MAAM,UAAU,MAAM,OAAO,CAAC,QAAO,MAAK,EAAE,YAAY,SAAS,WAAW,EAAE,cAAc,SAAS,SAAS;EAElH;CACF;AACF,CAAC;AACD,IAAI,wBAAwB,cAAc;AAC1B,sBAAsB;AAClB,sBAAsB;AACvB,sBAAsB;AAEzC,IAAW,kBAAkB,cAAc;;;AC9C3C,IAAIG,cAAY,CAAC,UAAU;AAC3B,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAiBtM,IAAI,kBAA+B,4BAAc;CAV/C,MAAM,CAAC;CACP,SAAS;CACT,SAAS;CACT,2BAA2B;EACzB,GAAG;EACH,GAAG;EACH,OAAO;CACT;CACA,gBAAgB;AAEiD,CAAC;AACpE,SAAgB,mBAAmB,OAAO;CACxC,IAAI,WAAW,MAAM,UACnB,OAAOD,2BAAyB,OAAOD,WAAS;CAClD,OAAoB,sBAAM,cAAc,gBAAgB,UAAU,EAChE,OAAO,KACT,GAAG,QAAQ;AACb;;;ACtBA,SAAgB,aAAa,SAAS,SAAS;CAC7C,IAAI,uBAAuB;CAC3B,IAAI,QAAQ,gBAAe,UAAS,oBAAoB,OAAO,OAAO,CAAC;CACvE,IAAI,QAAQ,gBAAe,UAAS,oBAAoB,OAAO,OAAO,CAAC;CACvE,IAAI,aAAa,wBAAwB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,uBAAuB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,cAAc;CACrM,IAAI,aAAa,wBAAwB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,uBAAuB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,cAAc;CAErM,OAAO;EACL,UAFa,aAAa;EAG1B;EACA;CACF;AACF;AACA,SAAgB,sBAAsB,MAAM;CAC1C,IAAI,UAAU,KAAK,SACjB,UAAU,KAAK,SACf,aAAa,KAAK;CACpB,IAAI,WAAW,YAAY;CAC3B,IAAI,gBAAgB,aAAa,SAAS,OAAO,GAC/C,YAAY,cAAc,WAC1B,YAAY,cAAc,WAC1B,WAAW,cAAc;CAC3B,IAAI,aAAa,gBAAe,UAAS,iBAAiB,OAAO,SAAS,KAAK,CAAC;CAChF,IAAI,aAAa,gBAAe,UAAS,iBAAiB,OAAO,SAAS,KAAK,CAAC;CAChF,IAAI,CAAC,YAAY,CAAC,UAChB,OAAO;CAET,IAAI,IAAI,SAAS,GACf,IAAI,SAAS,GACb,QAAQ,SAAS,OACjB,SAAS,SAAS;CACpB,IAAI,QAAQ,aAAa,aAAa,KAAK,IAAI,WAAW,IAAI,WAAW,EAAE,IAAI,IAAI,QAAQ;CAC3F,IAAI,QAAQ,aAAa,aAAa,KAAK,IAAI,WAAW,IAAI,WAAW,EAAE,IAAI,IAAI,SAAS;CAC5F,IAAI,YAAY,aAAa,aAAa,KAAK,IAAI,WAAW,KAAK,WAAW,EAAE,IAAI,QAAQ;CAC5F,IAAI,aAAa,aAAa,aAAa,KAAK,IAAI,WAAW,KAAK,WAAW,EAAE,IAAI,SAAS;CAC9F,OAAoB,sBAAM,cAAc,YAAY,EAClD,IAAI,YAAY,OAAO,UAAU,EACnC,GAAgB,sBAAM,cAAc,QAAQ;EAC1C,GAAG;EACH,GAAG;EACH,OAAO;EACP,QAAQ;CACV,CAAC,CAAC;AACJ;;;AC9CA,SAAgB,iCAAiC,OAAO,IAAI;CAC1D,IAAI,uBAAuB;CAC3B,QAAQ,yBAAyB,yBAAyB,MAAM,eAAe,eAAe,MAAK,SAAQ,KAAK,OAAO,EAAE,OAAO,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,aAAa,QAAQ,0BAA0B,KAAK,IAAI,wBAAA;AACtQ;AACA,SAAgB,iCAAiC,OAAO,IAAI;CAC1D,IAAI,wBAAwB;CAC5B,QAAQ,0BAA0B,yBAAyB,MAAM,eAAe,eAAe,MAAK,SAAQ,KAAK,OAAO,EAAE,OAAO,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,aAAa,QAAQ,2BAA2B,KAAK,IAAI,yBAAA;AACxQ;;;ACPA,IAAI,SAAS;AACb,SAAS,UAAU,WAAW,SAAS;CACnC,IAAI,WACA;CAGA,MAAM,IAAI,MAAM,MAAM;AAK9B;;;ACZA,IAAIG,cAAY,CAAC,QAAQ;AACzB,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAMtM,IAAW,kBAAkB;AAC7B,SAAgB,aAAa,MAAM;CACjC,IAAI,SAAS,KAAK,QAChB,aAAaD,2BAAyB,MAAMD,WAAS;CACvD,OAAoB,sBAAM,cAAc,OAAO;EACrC;EACR,cAAc;EACF;EACZ,iBAAiB;EACjB,mBAAmB;CACrB,CAAC;AACH;;;;;;;AAOA,IAAW,uBAAuB,SAAS,qBAAqB,cAAc;CAC5E,IAAI,eAAe,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACvF,QAAQ,OAAO,UAAU;EACvB,IAAI,SAAS,YAAY,GAAG,OAAO;EACnC,IAAI,qBAAqB,SAAS,KAAK,KAAK,UAAU,KAAK;EAC3D,IAAI,oBACF,OAAO,aAAa,OAAO,KAAK;EAElC,CAAC,sBAA4B,UAAU,OAAO,gEAAgE,OAAO,OAAO,OAAO,2DAA2D,CAAC;EAC/L,OAAO;CACT;AACF;;;ACvBA,IAAI,kBAAkB,QAAQ,KAAK,eAAe;AAClD,IAAI,aAAa,QAAQ,OAAO;AAChC,IAAI,gCAAgC,eAAe,CAAC,gCAAgC,SAAS,IAAI,gBAAgB,OAAO,eAAe,QAAO,SAAQ,KAAK,SAAS,KAAK,CAAC,CAAC,MAAK,SAAQ,KAAK,OAAO,EAAE,CAAC;AACvM,IAAW,mBAAmB,eAAe,CAAC,6BAA6B,IAAG,gBAAe,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,UAAU;AAC7K,IAAI,aAAa,QAAQ,KAAK,aAAa,UAAU;AACrD,IAAW,uBAAuB,eAAe;CAAC;CAAmB;CAAgC;CAAkC;CAAkC;AAAc,IAAI,QAAQ,UAAU,SAAS,SAAS,eAAe,SAAS,QAAO,MAAK;CACjQ,IAAI,WAAW,cACb,OAAO,EAAE,YAAY;CAEvB,OAAO,EAAE,YAAY;AACvB,CAAC,CAAC,CAAC,QAAO,MAAK,EAAE,eAAe,UAAU,CAAC,CAAC,QAAO,MAAK,EAAE,SAAS,KAAK,CAAC,CAAC,QAAO,MAAK,EAAE,SAAS,KAAK,CAAC;AACvG,IAAI,wBAAwB,OAAO,IAAI,eAAe;CACpD,IAAI,SAAS,kBAAkB,KAAK;CACpC,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,QAAQ,WAAW,MAChC;CAEF,IAAI,WAAW,cACb,OAAO,kBAAkB,OAAO,SAAS,SAAS,UAAU;CAE9D,OAAO,kBAAkB,OAAO,SAAS,SAAS,UAAU;AAC9D;AACA,IAAW,8BAA8B,OAAO,OAAO;CACrD,IAAI,SAAS,kBAAkB,KAAK;CACpC,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,QAAQ,WAAW,MAChC;CAEF,IAAI,WAAW,cACb,OAAO,wBAAwB,OAAO,SAAS,OAAO;CAExD,OAAO,wBAAwB,OAAO,SAAS,OAAO;AACxD;AACA,IAAW,oBAAoB,eAAe;CAAC;CAAsB;CAAmB;AAA0B,GAAG,kBAAkB;AACvI,IAAW,qBAAqB,OAAO,IAAI,eAAe;CACxD,IAAI,MAAM;CACV,IAAI,cAAc,8BAA8B,OAAO,EAAE;CACzD,IAAI,eAAe,MACjB,OAAO;CAET,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,QAAQ,WAAW,MAChC,OAAO;CAET,IAAI,SAAS,kBAAkB,KAAK;CACpC,IAAI,mBAAmB,qBAAqB,KAAK;CACjD,IAAI,kBAAkB,YAAY;CAClC,IAAI,aAAa,UAAU,eAAe,IAAI,mBAAmB;CACjE,IAAI,MAAM;CACV,IAAI,WAAW,cAAc;EAC3B,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;EAC9D,QAAQ,2BAA2B,OAAO,SAAS,SAAS,UAAU;CACxE,OAAO;EACL,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;EAC9D,QAAQ,2BAA2B,OAAO,SAAS,SAAS,UAAU;CACxE;CACA,QAAQ,QAAQ,qBAAqB,kBAAkB,MAAM,OAAO,IAAI,OAAO,QAAQ,uBAAuB,KAAK,IAAI,qBAAqB,gBAAgB,QAAQ,SAAS,KAAK,IAAI,OAAO;AAC/L;AACA,IAAW,sBAAsB,OAAO,IAAI,eAAe;CACzD,IAAI,SAAS,kBAAkB,KAAK;CACpC,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,QAAQ,WAAW,MAChC;CAEF,IAAI,MAAM;CACV,IAAI,WAAW,cAAc;EAC3B,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;EAC9D,QAAQ,2BAA2B,OAAO,SAAS,SAAS,UAAU;CACxE,OAAO;EACL,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;EAC9D,QAAQ,2BAA2B,OAAO,SAAS,SAAS,UAAU;CACxE;CACA,OAAO,kBAAkB,MAAM,KAAK;AACtC;AACA,IAAW,wBAAwB,eAAe;CAAC;CAAmB;CAAsB;CAAc;CAAsB;CAAmB;CAAoB;AAAgB,GAAG,sBAAsB;AAChN,IAAI,wBAAwB,OAAO,IAAI,eAAe;CACpD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,MACb;CAEF,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;AAChE;AACA,IAAI,wBAAwB,OAAO,IAAI,eAAe;CACpD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,MACb;CAEF,OAAO,oBAAoB,OAAO,SAAS,SAAS,UAAU;AAChE;AACA,IAAI,oBAAoB,OAAO,IAAI,eAAe;CAChD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,MACb;CAEF,OAAO,2BAA2B,OAAO,SAAS,SAAS,UAAU;AACvE;AACA,IAAI,oBAAoB,OAAO,IAAI,eAAe;CAChD,IAAI,UAAU,iCAAiC,OAAO,EAAE;CACxD,IAAI,WAAW,MACb;CAEF,OAAO,2BAA2B,OAAO,SAAS,SAAS,UAAU;AACvE;AAGA,IAAW,sBAAsB,eAAe;CAAC;CAA2B;CAAmB;CAAsB;CAAsB;CAAkB;CAF9H,eAAe,CAAC,uBAAuB,6BAA6B,GAAG,kBAEyE;CAAmB;CAAmB;CAAoD;CADpO,eAAe,CAAC,sBAAsB,6BAA6B,GAAG,kBACkL;CAAyB;CAA+B;AAAS,IAAI,QAAQ,aAAa,OAAO,OAAO,YAAY,YAAY,KAAK,QAAQ,OAAO,UAAU,aAAa,aAAa,UAAU;CAC7d,IAAI,YAAY,MAAM,WACpB,iBAAiB,MAAM,gBACvB,eAAe,MAAM;CACvB,IAAI,eAAe,QAAQ,OAAO,QAAQ,eAAe,QAAQ,WAAW,gBAAgB,WAAW,cAAc,SAAS,QAAQ,SAAS,QAAQ,cAAc,QAAQ,cAAc,QAAQ,YAAY,MAC7M;CAEF,IAAI,OAAO,YAAY;CACvB,IAAI;CACJ,IAAI,QAAQ,QAAQ,KAAK,SAAS,GAChC,gBAAgB;MAEhB,gBAAgB,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,MAAM,gBAAgB,eAAe,CAAC;CAExH,IAAI,iBAAiB,MACnB;CAEF,OAAO,qBAAqB;EAC1B;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH,CAAC;;;AC5JD,IAAIG,cAAY,CAAC,OAAO;AACxB,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAYtM,IAAI,kBAA+B,4BAAc,KAAA,CAAS;;;;;;;;AAS1D,IAAW,cAAa,iBAAgB;CACtC,IAAI,gBAAgB,WAAW,eAAe;CAC9C,IAAI,iBAAiB,MACnB,OAAO,cAAc;CAEvB,IAAI,gBAAgB,MAClB;CAEF,OAAO,qBAAqB,YAAY;AAC1C;AAIA,IAAI,iBAAiB,SAAS,UAAU;CACtC,OAAO,gCAAgC,OAAO,SAAS,GAAG,CAAC,CAAC,OAAO,KAAK;AAC1E;AACA,IAAW,0BAAyB,UAAS;CAC3C,IAAI,kBAAkB,WAAW,eAAe;CAChD,IAAI,mBAAmB,MACrB;CAEF,IAAI,UAAU,gBAAgB;CAC9B,OAAO,QAAQ,OAAO,cAAc,SAAS,KAAK,GAAG,GAAG;AAC1D;AACA,IAAW,qBAAoB,SAAQ;CACrC,IAAI,QAAQ,KAAK,OACf,OAAOD,2BAAyB,MAAMF,WAAS;CACjD,IAAI,cAAc,uBAAuB,KAAK;CAC9C,OAAoB,sBAAM,cAAc,OAAOC,WAAS;EACtD,WAAW;EACX,UAAU;CACZ,GAAG,IAAI,CAAC;AACV;;;ACxDA,IAAIG,cAAY;CAAC;CAAgB;CAAgB;AAAS;AACxDC,IAAAA,eAAa;CAAC;CAAS;CAAc;AAAiB;AACtDC,IAAAA,eAAa,CAAC,IAAI;AAClB,IAAA,aAAa;CAAC;CAAgB;CAAW;AAAc;AACzD,SAASC,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAC9D,SAASK,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAiCtM,IAAI,mCAAkC,UAAS;CAC7C,IAAI,UAAU,MAAM,SAClB,OAAO,MAAM,MACb,OAAO,MAAM,MACb,aAAa,MAAM;CAErB,OAAO,CAAC;EACN,UAFO,MAAM;EAGb;EACA,MAAM;EACN,OAAO;EACP,OAAO,mBAAmB,MAAM,OAAO;EACvC,SAAS;CACX,CAAC;AACH;AACA,IAAI,6BAA0C,sBAAM,MAAK,SAAQ;CAC/D,IAAI,UAAU,KAAK,SACjB,SAAS,KAAK,QACd,cAAc,KAAK,aACnB,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,YAAY,KAAK,WACjB,cAAc,KAAK,aACnB,KAAK,KAAK;CACZ,IAAI,uBAAuB;EACzB,mBAAmB,KAAA;EACnB,aAAaC;EACb,UAAU;GACR;GACA;GACA;GACA;GACA,SAAS,KAAA;GACT,MAAM,mBAAmB,MAAM,OAAO;GACtC;GACA,MAAM;GACN,OAAO;GACP;GACA;GACA,iBAAiB;EACnB;CACF;CACA,OAAoB,sBAAM,cAAc,yBAAyB,EACzC,qBACxB,CAAC;AACH,CAAC;AACD,SAAS,cAAc,OAAO;CAC5B,IAAI,cAAc,eAAe,wBAAwB;CACzD,IAAI,OAAO,MAAM,MACf,UAAU,MAAM,SAChB,sBAAsB,MAAM,YAC5B,mBAAmB,MAAM;CAC3B,IAAI,wBAAwB,iBAAiB,cAC3C,wBAAwB,iBAAiB,cACzC,uBAAuB,iBAAiB,SACxC,sBAAsBF,2BAAyB,kBAAkBf,WAAS;CAC5E,IAAI,0BAA0B,0BAA0B,uBAAuB,SAAS,iBAAiB,EAAE;CAC3G,IAAI,0BAA0B,0BAA0B,qBAAqB;CAC7E,IAAI,qBAAqB,0BAA0B,sBAAsB,SAAS,iBAAiB,EAAE;CACrG,IAAI,CAAC,uBAAuB,QAAQ,MAClC,OAAO;CAET,IAAI,kBAAkB,iCAAiC,mBAAmB;CAC1E,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,qBAAqB,qBAAqB,gBAAgB,aAAa,EACjF,GAAG,KAAK,KAAK,OAAO,MAAM;EACZ,MAAM;EAAlB,IACE,0BAA0B,MAAM;EACd,MAAM;EAF1B,IAGE,OAAOe,2BAAyB,OAAOd,YAAU;EACnD,IAAI,CAAC,yBACH,OAAO;EAET,IAAI,eAAe,wBAAwB,OAAO,MAAM,iBAAiB;EACzE,IAAI,eAAe,wBAAwB,OAAO,MAAM,iBAAiB;EACzE,IAAI,UAAU,mBAAmB,OAAO,MAAM,iBAAiB;EAC/D,IAAI,oBAAoBU,gBAAcA,gBAAcA,gBAAcA,gBAAcA,gBAAc;GAC5F,QAAQ;GACR,UAAU,OAAO,MAAM,iBAAiB,MAAM;EAChD,GAAG,IAAI,GAAG,CAAC,GAAG,EAEZ,MAAM,OACR,GAAG,uBAAuB,GAAG,eAAe,GAAG,mBAAmB,qBAAqB,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG;GACrG;GACA;GACA;GACA;GACA,OAAO;GACP,WAAW;EACb,CAAC;EACD,OAAoB,sBAAM,cAAc,cAAcF,WAAS,EAC7D,KAAK,kBAAkB,OAAO,CAAC,EACjC,GAAG,iBAAiB,CAAC;CACvB,CAAC,CAAC;AACJ;AACA,SAAS,qBAAqB,OAAO;CACnC,IAAI,aAAa,MAAM,YACrB,WAAW,MAAM,UACjB,QAAQ,MAAM;CAChB,IAAI,mBAAmB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,KAAI,UAAS;EACtF,IAAI,UAAU;GACZ,GAAG,MAAM;GACT,GAAG,MAAM;GACT,OAAO,MAAM;GACb,YAAY,MAAM;GAClB,YAAY,MAAM;GAClB,QAAQ,MAAM;EAChB;EACA,OAAOE,gBAAcA,gBAAc,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG;GACnD,OAAO,MAAM;GACb,SAAS,MAAM;GACf,eAAe,MAAM;GACrB;GACA,MAAM,MAAM;EACd,CAAC;CACH,CAAC;CACD,OAAoB,sBAAM,cAAc,mCAAmC,EACzE,OAAO,aAAa,mBAAmB,KAAA,EACzC,GAAG,QAAQ;AACb;AACA,SAAS,4BAA4B,OAAO;CAC1C,IAAI,QAAQ,MAAM,OAChB,YAAY,MAAM,WAClB,YAAY,MAAM,WAClB,QAAQ,MAAM,OACd,QAAQ,MAAM,OACd,UAAU,MAAM;CAClB,IAAI,cAAc,eAAe,wBAAwB;CACzD,IAAI,gBAAgB,eAAe,0BAA0B;CAc7D,IAAI,WAAW,aAAa,OAAO,MAAM,iBAAiB,MAAM,gBAAgB,iBAAiB,QAAQ,YAAY;CACrH,IAAI,qBAAqB,eAAe,SAAS,OAAO,MAAM,iBAAiB,MAAM,eAAe,iBAAiB,QAAQ,YAAY;CACzI,IACE,aAAaR,iBADC,SAAS,KACa,GAAG,CAAC,GACxC,cAAc,WAAW,IACzB,iBAAiB,WAAW;CAC9B,IACE,aAAaA,iBADE,SAAS,KACa,GAAG,CAAC,GACzC,mBAAmB,WAAW,IAC9B,sBAAsB,WAAW;CACnC,gBAAgB;EACd,IAAI;EACJ,IAAI,UAAU;GAEZ,eAAe,IAAI;GAInB,QAAQ,4BAA4B;IAClC,oBAAoB,IAAI;GAC1B,CAAC;EACH,OAAO;GACL,oBAAoB,KAAK;GACzB,IAAI,oBACF,eAAe,KAAK;EAExB;EACA,aAAa;GACX,qBAAqB,KAAK;EAC5B;CACF,GAAG,CAAC,UAAU,kBAAkB,CAAC;CACjC,IAAI,sBAAsB,kBAAkB;EAE1C,IAAI,CAAC,UACH,eAAe,KAAK;CAExB,GAAG,CAAC,QAAQ,CAAC;CAKb,IAAI,mBAAmB,YAAY;CAGnC,IAAI,sBAAsB,YAAY;CACtC,IAAI;CACJ,IAAI,UAAU;EACZ,IAAI,cAAc,MAChB,SAAS;OAET,SAAS;CAEb,OACE,SAAS;CAEX,IAAI,UAAuB,sBAAM,cAAc,cAAcM,WAAS,CAAC,GAAG,WAAW,EACnF,MAAM,OAAO,UAAU,IAAI,EAC7B,GAAG,OAAO;EACR,UAAU;EACF;EACD;EACE;EACT,sBAAsB,MAAM;EAC5B,aAAa,MAAM;EACnB,YAAY,MAAM;EAClB,iBAAiB;CACnB,CAAC,CAAC;CACF,IAAI,qBACF,OAAoB,sBAAM,cAAc,aAAa,EACnD,QAAQ,gBAAgB,UAC1B,GAAgB,sBAAM,cAAc,mBAAmB,EACrD,OAAO,MAAM,kBACf,GAAG,OAAO,CAAC;CAEb,OAAO;AACT;AACA,SAAS,wBAAwB,OAAO;CACtC,IAAI,QAAQ,MAAM,OAChB,YAAY,MAAM,WAClB,QAAQ,MAAM,OACd,QAAQ,MAAM,OACd,UAAU,MAAM;CAClB,OAAoB,sBAAM,cAAc,cAAcA,WAAS,CAAC,GAAG,WAAW,EAC5E,MAAM,OAAO,UAAU,IAAI,EAC7B,GAAG,OAAO;EACR,UAAU;EACV,QAAQ;EACD;EACE;EACT,sBAAsB,MAAM;EAC5B,aAAa,MAAM;EACnB,YAAY,MAAM;CACpB,CAAC,CAAC;AACJ;AACA,SAAS,cAAc,OAAO;CAC5B,IAAI;CACJ,IAAI,OAAO,MAAM,MACf,QAAQ,MAAM,OACd,uBAAuB,MAAM,sBAC7B,cAAc,MAAM,aACpB,aAAa,MAAM;CACrB,IAAI,SAAS,wBAAwB,sBAAsB,KAAK,OAAO,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC,GACzI,KAAK,MAAM,IACX,YAAYM,2BAAyB,OAAOb,YAAU;CACxD,IAAI,QAAQ,MAAM,OAChB,UAAU,MAAM,SAChB,YAAY,MAAM;CACpB,IAAI,wBAAwB,MAAM,cAChC,uBAAuB,MAAM,SAC7B,wBAAwB,MAAM,cAC9B,sBAAsBa,2BAAyB,OAAO,UAAU;CAClE,IAAI,0BAA0B,0BAA0B,uBAAuB,SAAS,EAAE;CAC1F,IAAI,0BAA0B,0BAA0B,qBAAqB;CAC7E,IAAI,qBAAqB,0BAA0B,sBAAsB,SAAS,EAAE;CACpF,IAAI,CAAC,MACH,OAAO;CAET,OAAoB,sBAAM,cAAcG,QAAM,UAAU,MAAM,KAAK,KAAK,OAAO,MAAM;EACnF,OAAoB,sBAAM,cAAc,mBAAmBT,WAAS;GAClE,OAAO,MAAM;GAGb,KAAK,aAAa,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;GACvO,WAAW;EACb,GAAG,mBAAmB,qBAAqB,OAAO,CAAC,GAAG;GACpD,cAAc,wBAAwB,OAAO,MAAM,iBAAiB;GACpE,cAAc,wBAAwB,OAAO,MAAM,iBAAiB;GACpE,SAAS,mBAAmB,OAAO,MAAM,iBAAiB;EAC5D,CAAC,GAAG,YAAyB,sBAAM,cAAc,6BAA6B;GACrE;GACI;GACA;GACJ;GACP,OAAO;GACE;GACa;GACT;GACD;EACd,CAAC,IAWD,sBAAM,cAAc,yBAAyB;GACpC;GACI;GACJ;GACP,OAAO;GACE;GACa;GACT;GACD;EACd,CAAC,CAAC;CACJ,CAAC,CAAC;AACJ;AACA,IAAI,0BAA0B,OAAO,sBAAsB,WAAW;CACpE,IAAI,SAAS,MAAM,OAAO,CAAC;CAC3B,IAAI,yBAAyB,GAC3B,OAAO,MAAM,SAAQ,SAAQ,KAAK,WAAW,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CAE3E,OAAO,MAAM,SAAQ,SAAQ;EAC3B,IAAI,KAAK,WAAW,WAAW;GAE7B,IAAI,WAAW,cACb,OAAO,CAACE,gBAAcA,gBAAc,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG;IACtD,QAAQ,YAAY,KAAK,KAAK,QAAQ,GAAG,oBAAoB;IAC7D,GAAG,YAAY,KAAK,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,oBAAoB;GAClF,CAAC,CAAC;GAEJ,OAAO,CAACA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,EACtD,OAAO,YAAY,KAAK,KAAK,OAAO,GAAG,oBAAoB,EAC7D,CAAC,CAAC;EACJ;EACA,IAAI,KAAK,WAAW,WAClB,OAAO,CAACA,gBAAcA,gBAAc,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG;GACtD,GAAG,YAAY,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,oBAAoB;GAC7D,GAAG,YAAY,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,oBAAoB;GAC7D,OAAO,YAAY,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,oBAAoB;GACzE,QAAQ,YAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,QAAQ,oBAAoB;EAC9E,CAAC,CAAC;EAGJ,IAAI,OAAO,KAAK;EAChB,IAAI,WAAW,cACb,OAAO,CAACA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG;GACjD,QAAQ,YAAY,GAAG,KAAK,QAAQ,oBAAoB;GACxD,GAAG,YAAY,KAAK,iBAAiB,KAAK,GAAG,oBAAoB;EACnE,CAAC,CAAC;EAEJ,OAAO,CAACA,gBAAcA,gBAAc,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG;GACjD,OAAO,YAAY,GAAG,KAAK,OAAO,oBAAoB;GACtD,GAAG,YAAY,KAAK,iBAAiB,KAAK,GAAG,oBAAoB;EACnE,CAAC,CAAC;CACJ,CAAC;AACH;AACA,SAAS,wBAAwB,OAAO;CACtC,IAAI,QAAQ,MAAM,OAChB,wBAAwB,MAAM;CAChC,IAAI,OAAO,MAAM,MACf,oBAAoB,MAAM,mBAC1B,iBAAiB,MAAM,gBACvB,oBAAoB,MAAM,mBAC1B,kBAAkB,MAAM,iBACxB,yBAAyB,MAAM,wBAC/B,SAAS,MAAM;CACjB,IAAI,wBAAwB,sBAAsB,MAAM,kBAAkB,MAAM,cAAc,GAC5F,cAAc,sBAAsB,aACpC,uBAAuB,sBAAsB,sBAC7C,qBAAqB,sBAAsB;CAC7C,OAAoB,sBAAM,cAAc,sBAAsB;EAC5D,YAAY,CAAC;EACb,OAAO;CACT,GAAgB,sBAAM,cAAc,eAAe;EACjD,gBAAgB;EAChB,mBAAmB;EACnB,OAAO;EACP,kBAAkB;EACC;EACH;EACG;EACF;EACjB,kBAAkB;EAClB,gBAAgB;EACQ;EACxB,kBAAkB,MAAM;EAChB;CACV,IAAI,UAAU,sBAAsB,eAA4B,sBAAM,cAAc,OAAO,MAAmB,sBAAM,cAAc,eAAe;EACxI;EACP,MAAM;EACgB;EACtB,aAAa,eAAe,uBAAuB;EACvC;CACd,CAAC,CAAC,CAAC,GAAgB,sBAAM,cAAc,wBAAwB,EAC7D,OAAO,MAAM,MACf,CAAC,GAAG,MAAM,QAAQ;AACpB;AACA,SAAS,iBAAiB,OAAO;CAC/B,IAAI,wBAAwB,OAAO,IAAI;CACvC,OAAoB,sBAAM,cAAc,yBAAyB;EACxC;EAChB;CACT,CAAC;AACH;AACA,IAAI,sBAAsB;AAC1B,IAAI,8BAA8B,WAAW,YAAY;;;;;CAKvD,IAAI,QAAQ,MAAM,QAAQ,UAAU,KAAK,IAAI,UAAU,MAAM,KAAK,UAAU;CAC5E,OAAO;EACL,GAAG,UAAU;EACb,GAAG,UAAU;EACb;EAEA,UAAU,kBAAkB,WAAW,OAAO;CAChD;AACF;AACA,IAAM,eAAN,cAA2B,cAAc;CACvC,SAAS;EACP,IAAI,cAAc,KAAK,OACrB,OAAO,YAAY,MACnB,OAAO,YAAY,MACnB,UAAU,YAAY,SACtB,YAAY,YAAY,WACxB,UAAU,YAAY,SACtB,UAAU,YAAY,SACtB,WAAW,YAAY,UACvB,aAAa,YAAY,YACzB,KAAK,YAAY;EACnB,IAAI,QAAQ,QAAQ,MAClB,OAAO;EAET,IAAI,aAAa,KAAK,gBAAgB,SAAS;EAC/C,IAAI,aAAa;EACjB,OAAoB,sBAAM,cAAc,OAAO;GAC7C,WAAW;GACP;EACN,GAAG,YAAyB,sBAAM,cAAc,QAAQ,MAAmB,sBAAM,cAAc,uBAAuB;GACxG;GACH;GACA;EACX,CAAC,CAAC,GAAgB,sBAAM,cAAc,OAAO;GAC3C,WAAW;GACX,UAAU,WAAW,iBAAiB,OAAO,YAAY,GAAG,IAAI,KAAA;EAClE,GAAgB,sBAAM,cAAc,eAAe;GAC3C;GACG;GACG;GACZ,kBAAkB,KAAK;EACzB,CAAC,GAAgB,sBAAM,cAAc,kBAAkB,KAAK,KAAK,CAAC,CAAC;CACrE;AACF;AACA,IAAW,kBAAkB;CAC3B,WAAW;CACX,gBAAgB;CAChB,mBAAmB;CACnB,iBAAiB;CACjB,wBAAwB;CACxB,kBAAkB;CAClB,YAAY;CACZ,MAAM;CACN,mBAAmB;CACnB,OAAO;CACP,YAAY;CACZ,cAAc;CACd,OAAO;CACP,SAAS;CACT,SAAS;CACT,QAAQ,gBAAgB;AAC1B;AACA,SAAS,QAAQ,OAAO;CACtB,IAAI,UAAU,MAAM,SAClB,UAAU,MAAM,SAChB,OAAO,MAAM,MACb,aAAa,MAAM,YACnB,eAAe,MAAM,cACrB,YAAY,MAAM,WAClB,iBAAiB,MAAM,gBACvB,oBAAoB,MAAM,mBAC1B,kBAAkB,MAAM,iBACxB,oBAAoB,MAAM;CAC5B,IACE,WADkB,aAAa,SAAS,OACjB,CAAC,CAAC;CAC3B,IAAI,SAAS,eAAe;CAC5B,IAAI,aAAa,cAAc;CAC/B,IAAI,QAAQ,cAAc,MAAM,UAAU,IAAI;CAC9C,IAAI,QAAQ,gBAAe,UAAS,oBAAoB,OAAO,MAAM,IAAI,YAAY,KAAK,CAAC;CAC3F,IAAI,WAAW,cAAc,WAAW,cACtC,OAAO;CAET,IAAI;CACJ,IAAI,iBAAiB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;CACzE,IAAI,kBAAkB,QAAQ,eAAe,UAAU,QAAQ,eAAe,SAAS,MACrF,iBAAiB;MAEjB,iBAAiB,WAAW,aAAa,eAAe,SAAS,IAAI,eAAe,QAAQ;CAE9F,OAAoB,sBAAM,cAAc,oBAAoB;EACjD;EACA;EACT,MAAM;EACN,oBAAoB;EACJ;CAClB,GAAgB,sBAAM,cAAc,cAAcF,WAAS,CAAC,GAAG,OAAO;EAC5D;EACE;EACV,MAAM;EACG;EACA;EACH;EACM;EACE;EACH;EACK;EACG;EACF;EACE;CACrB,CAAC,CAAC,CAAC;AACL;AACA,SAAgB,qBAAqB,OAAO;CAC1C,IAAI,SAAS,MAAM,QACjB,oBAAoB,MAAM,aAC1B,UAAU,kBAAkB,SAC5B,mBAAmB,kBAAkB,cACrC,iBAAiB,kBAAkB,gBACnC,MAAM,MAAM,KACZ,WAAW,MAAM,UACjB,QAAQ,MAAM,OACd,QAAQ,MAAM,OACd,aAAa,MAAM,YACnB,aAAa,MAAM,YACnB,cAAc,MAAM,aACpB,gBAAgB,MAAM,eACtB,SAAS,MAAM,QACf,QAAQ,MAAM,OACd,gBAAgB,MAAM,eACtB,iBAAiB,MAAM;CACzB,IAAI,cAAc,WAAW,eAAe,QAAQ;CAEpD,IAAI,gBAAgB,cAAc,YAAY,MAAM,OAAO,IAAI;CAC/D,IAAI,YAAY,kBAAkB,EAChC,YACF,CAAC;CACD,IAAI,kBAAkB,YAAY,MAAM,IAAI,SAAS;CACrD,OAAO,cAAc,KAAK,OAAO,UAAU;EACzC,IAAI,OAAO,GAAG,GAAG,OAAO,QAAQ;EAChC,IAAI,aAAa;GAEf,IAAI,mBAAmB,YAAY,QAAQ;GAC3C,IAAI,oBAAoB,MACtB,OAAO;GAET,QAAQ,iBAAiB,kBAAkB,aAAa;EAC1D,OAAO;GACL,QAAQ,kBAAkB,OAAO,OAAO;GACxC,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,QAAQ,CAAC,WAAW,KAAK;EAE7B;EACA,IAAI,eAAe,qBAAqB,kBAAkB,mBAAmB,CAAC,CAAC,MAAM,IAAI,KAAK;EAC9F,IAAI,WAAW,cAAc;GAC3B,IAAI;GACJ,IAAI,iBAAiB,MAAM,MAAM,IAAI,MAAM,EAAE;GAC7C,IAAI,oBAAoB,MAAM,MAAM,IAAI,MAAM,EAAE;GAChD,IAAI,kBAAkB,QAAQ,qBAAqB,MACjD,OAAO;GAET,IAAI,uBAAuB;IACzB,MAAM;IACN,OAAO;IACP;IACA,QAAQ,IAAI;IACZ;IACA;GACF,CAAC;GACD,KAAK,QAAQ,sBAAsB,QAAQ,sBAAsB,KAAK,IAAI,oBAAoB,oBAAoB,QAAQ,UAAU,KAAK,IAAI,QAAQ,KAAA;GACrJ,QAAQ,IAAI;GACZ,IAAI,iBAAiB,iBAAiB;GACtC,SAAS,MAAM,cAAc,IAAI,IAAI;GACrC,aAAa;IACX;IACA,GAAG,OAAO;IACV;IACA,QAAQ,OAAO;GACjB;GACA,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,YAAY,GAAG;IAC3E,IAAI,QAAQ,SAAS,UAAU,YAAY,KAAK,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,MAAM;IACxF,KAAK;IACL,UAAU;GACZ;EACF,OAAO;GACL,IAAI,kBAAkB,MAAM,MAAM,IAAI,MAAM,EAAE;GAC9C,IAAI,qBAAqB,MAAM,MAAM,IAAI,MAAM,EAAE;GACjD,IAAI,mBAAmB,QAAQ,sBAAsB,MACnD,OAAO;GAET,IAAI;GACJ,IAAI,uBAAuB;IACzB,MAAM;IACN,OAAO;IACP;IACA,QAAQ,IAAI;IACZ;IACA;GACF,CAAC;GACD,QAAQ,qBAAqB;GAC7B,SAAS,IAAI;GACb,aAAa;IACX,GAAG,OAAO;IACV;IACA,OAAO,OAAO;IACd;GACF;GACA,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,YAAY,GAAG;IAC1E,IAAI,SAAS,SAAS,SAAS,YAAY,KAAK,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,KAAK;IACvF,SAAS;GACX;EACF;EAQA,IAAI,KAAK,QAAQ,KAAK,QAAQ,SAAS,QAAQ,UAAU,QAAQ,CAAC,mBAAmB,UAAU,KAAK,WAAW,IAC7G,OAAO;EAkBT,OAhBuBE,gBAAcA,gBAAc,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;GACjE;GACA;GACA;GACA;GACA;GACA,OAAO,cAAc,QAAQ,MAAM;GACnC,SAAS;GACT;GACA,iBAAiB;IACf,GAAG,IAAI,QAAQ;IACf,GAAG,IAAI,SAAS;GAClB;GACA;GACA,mBAAmB;EACrB,GAAG,SAAS,MAAM,UAAU,MAAM,MAAM,CAAC,KACnB;CACxB,CAAC,CAAC,CAAC,OAAO,OAAO;AACnB;AACA,SAAS,MAAM,cAAc;CAC3B,IAAI,QAAQ,oBAAoB,cAAc,eAAe;CAE7D,IAAI,UAAU,WAAW,MAAM,OAAO;CACtC,IAAI,aAAa,cAAc;CAE/B,OAAoB,sBAAM,cAAc,yBAAyB;EAC/D,IAAI,MAAM;EACV,MAAM;CACR,IAAG,OAAmB,sBAAM,cAAcO,QAAM,UAAU,MAAmB,sBAAM,cAAc,kBAAkB,EACjH,eAAe,gCAAgC,KAAK,EACtD,CAAC,GAAgB,sBAAM,cAAc,4BAA4B;EAC/D,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,aAAa,MAAM;EACnB,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,aAAa,MAAM;EACf;CACN,CAAC,GAAgB,sBAAM,cAAc,2BAA2B;EAC9D,MAAM;EACF;EAGJ,MAAM,KAAA;EACN,SAAS,MAAM;EACf,SAAS,MAAM;EACf,SAAS;EACT,SAAS,MAAM;EACN;EACT,MAAM,MAAM;EACZ,SAAS,MAAM;EACf,cAAc,MAAM;EACpB,YAAY,MAAM;EACN;EACZ,gBAAgB,MAAM,SAAS,QAAQ,MAAM,UAAU;CACzD,CAAC,GAAgB,sBAAM,cAAc,aAAa,EAChD,QAAQ,MAAM,OAChB,GAAgB,sBAAM,cAAc,SAAST,WAAS,CAAC,GAAG,OAAO,EAC3D,GACN,CAAC,CAAC,CAAC,CAAC,CAAC;AACP;;;;;;;;AASA,IAAW,MAAmB,sBAAM,KAAK,OAAO,aAAa;AAE7D,IAAI,cAAc;;;ACvuBlB,IAAIU,cAAY,CAAC,UAAU,OAAO;AAChCC,IAAAA,eAAa,CAAC,UAAU,OAAO;AACjC,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAEtM,SAAS,oBAAoB,MAAM,MAAM;CACvC,IAAI,SAAS,MACX,OAAO;CAET,IAAI,MAAM,QAAQ,IAAI,KAAK,KAAK,WAAW,KAAK,MAAM,QAAQ,IAAI,KAAK,KAAK,WAAW,GACrF,OAAO,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK;CAEjD,OAAO;AACT;;;;;;;;;AAUA,SAAgB,kBAAkB,WAAW,WAAW;CACtD,IAAI,cAAc,WAChB,OAAO;CAET,IAAI,aAAa,UAAU,QACzB,YAAY,UAAU,OACtB,WAAWD,2BAAyB,WAAWF,WAAS;CAC1D,IAAI,aAAa,UAAU,QACzB,YAAY,UAAU,OACtB,WAAWE,2BAAyB,WAAWD,YAAU;CAC3D,IAAI,CAAC,oBAAoB,YAAY,UAAU,GAC7C,OAAO;CAET,IAAI,CAAC,oBAAoB,WAAW,SAAS,GAC3C,OAAO;CAET,OAAO,cAAc,UAAU,QAAQ;AACzC;;;;;;ACxCA,IAAIG,cAAY,CAAC,MAAM;AACrBC,IAAAA,eAAa;CAAC;CAA2B;CAAS;AAAO;AACzDC,IAAAA,eAAa,CAAC,MAAM,OAAO;AAC7B,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAkBtM,SAAS,iBAAiB,OAAO;CAC/B,IAAI,WAAW,eAAe;CAC9B,IAAI,kBAAkB,OAAO,IAAI;CACjC,IAAI,SAAS,wBAAwB;CACrC,IAAI,gBAAgB,MAAM,MACxB,YAAYD,2BAAyB,OAAOT,WAAS;CACvD,IAAI,gBAAgB,yBAAyB,QAAQ,SAAS,aAAa;CAC3E,IAAI,WAAW,cAAc;EAC3B,IAAI,iBAAiB,MACnB;EAEF,OAAOK,gBAAcA,gBAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EACrD,MAAM,cACR,CAAC;CACH,GAAG,CAAC,WAAW,aAAa,CAAC;CAC7B,sBAAsB;EACpB,IAAI,YAAY,MACd;EAEF,IAAI,gBAAgB,YAAY,MAC9B,SAAS,SAAS,QAAQ,CAAC;OACtB,IAAI,gBAAgB,YAAY,UACrC,SAAS,aAAa;GACpB,MAAM,gBAAgB;GACtB,MAAM;EACR,CAAC,CAAC;EAEJ,gBAAgB,UAAU;CAC5B,GAAG,CAAC,UAAU,QAAQ,CAAC;CACvB,sBAAsB;EACpB,aAAa;GACX,IAAI,gBAAgB,SAAS;IAC3B,SAAS,YAAY,gBAAgB,OAAO,CAAC;IAC7C,gBAAgB,UAAU;GAC5B;EACF;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,OAAO;AACT;AACA,IAAI,aAAY,UAAS;CACvB,IAAI,UAAU,MAAM,SAClB,YAAY,MAAM,WAClB,SAAS,MAAM,QACf,QAAQ,MAAM;CAChB,IAAI,mBAAmB,OAAO,IAAI;CAClC,IAAI,WAAW,OAAO,IAAI;CAC1B,IAAI,UAAU,eAAe,iBAAiB;CAC9C,IAAI,aAAa,cAAc;CAC/B,IAAI,WAAW,eAAe;CAC9B,IAAI,WAAW;CACf,IAAI,qBAAqB,gBAAe,UAAS,kBAAkB,OAAO,UAAU,SAAS,UAAU,CAAC;CACxG,IAAI,WAAW,gBAAe,UAAS,gBAAgB,OAAO,OAAO,CAAC;CACtE,IAAI,WAAW,gBAAe,UAAS,oBAAoB,OAAO,OAAO,CAAC;CAO1E,IAAI,uBAAuB,gBAAe,UAAS,8BAA8B,OAAO,OAAO,CAAC;CAChG,sBAAsB;EAGpB,IAAI,WAAW,UAAU,CAAC,YAAY,wBAAwB,KAAK,KAAkB,6BAAe,KAAK,KAAK,wBAAwB,MACpI;EAEF,IAAI,gBAAgB,iBAAiB;EACrC,IAAI,CAAC,eACH;EAEF,IAAI,qBAAqB,cAAc,oBAAoB;EAG3D,IAAI,KAAK,MAAM,SAAS,MAAM,MAAM,KAAK,MAAM,kBAAkB,GAC/D,SAAS,kBAAkB;GACzB,IAAI;GACJ,QAAQ;EACV,CAAC,CAAC;CAEN,GAAG;EAIH;EAAoB;EAAU;EAAU;EAAO;EAAS;EAAQ;CAAoB,CAAC;CACrF,IAAI,YAAY,QAAQ,YAAY,QAAQ,wBAAwB,MAClE,OAAO;CAEqB,MAAM;CAC1B,MAAM;CACR,MAAM;CAFd,IAGE,gBAAgBI,2BAAyB,OAAOR,YAAU;CACnD,qBAAqB;CACrB,qBAAqB;CAD9B,IAEE,2BAA2BQ,2BAAyB,sBAAsBP,YAAU;CACtF,OAAoB,sBAAM,cAAc,eAAeC,WAAS,CAAC,GAAG,eAAe,0BAA0B;EAC3G,KAAK;EACK;EACV,GAAG,SAAS;EACZ,GAAG,SAAS;EACZ,OAAO,SAAS;EAChB,QAAQ,SAAS;EACjB,WAAW,KAAK,YAAY,OAAO,UAAU,GAAG,CAAC,CAAC,OAAO,QAAQ,GAAG,SAAS;EACpE;EACT,OAAO;EACG;EACV,QAAQ;CACV,CAAC,CAAC;AACJ;AACA,IAAW,oBAAoB;CAC7B,mBAAmB,cAAc;CACjC,eAAe,cAAc;CAC7B,yBAAyB,cAAc;CACvC,OAAO,cAAc;CACrB,UAAU,0BAA0B;CACpC,QAAQ,cAAc;CACtB,MAAM;CACN,eAAe,cAAc;CAC7B,UAAU,cAAc;CACxB,OAAO;CACP,YAAY,cAAc;CAC1B,QAAQ,cAAc;CACtB,aAAa,cAAc;CAC3B,SAAS,cAAc;CACvB,UAAU,cAAc;CACxB,OAAO,cAAc;CACrB,MAAM,cAAc;CACpB,WAAW,cAAc;CACzB,UAAU,0BAA0B;CACpC,UAAU,0BAA0B;CACpC,MAAM,cAAc;CACpB,WAAW,cAAc;CACzB,SAAS;AACX;AACA,IAAI,2BAA0B,iBAAgB;CAC5C,IAAI,QAAQ,oBAAoB,cAAc,iBAAiB;CAC/D,OAAoB,sBAAM,cAAcQ,QAAM,UAAU,MAAmB,sBAAM,cAAc,kBAAkB;EAC/G,mBAAmB,MAAM;EACzB,eAAe,MAAM;EACrB,yBAAyB,MAAM;EAC/B,OAAO,MAAM;EACb,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,IAAI,MAAM;EACV,eAAe,MAAM;EACrB,UAAU,MAAM;EAChB,YAAY,MAAM;EAClB,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,SAAS,MAAM;EACf,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,eAAe,MAAM;EACrB,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,WAAW,MAAM;CACnB,CAAC,GAAgB,sBAAM,cAAc,WAAW,KAAK,CAAC;AACxD;;;;;AAMA,IAAW,QAAqB,sBAAM,KAAK,yBAAyB,iBAAiB;AAGrF,MAAM,cAAc;;;ACvMpB,IAAIC,cAAY,CAAC,MAAM;AACrB,IAAA,aAAa;CAAC;CAA2B;CAAS;AAAO;AACzD,IAAA,aAAa,CAAC,MAAM,OAAO;AAC7B,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAASC,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAetM,SAAS,iBAAiB,OAAO;CAC/B,IAAI,WAAW,eAAe;CAC9B,IAAI,kBAAkB,OAAO,IAAI;CACjC,IAAI,SAAS,wBAAwB;CACrC,IAAI,gBAAgB,MAAM,MACxB,YAAYD,2BAAyB,OAAOP,WAAS;CACvD,IAAI,gBAAgB,yBAAyB,QAAQ,SAAS,aAAa;CAC3E,IAAI,WAAW,cAAc;EAC3B,IAAI,iBAAiB,MACnB;EAEF,OAAOG,gBAAcA,gBAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EACrD,MAAM,cACR,CAAC;CACH,GAAG,CAAC,eAAe,SAAS,CAAC;CAC7B,sBAAsB;EACpB,IAAI,YAAY,MACd;EAEF,IAAI,gBAAgB,YAAY,MAC9B,SAAS,SAAS,QAAQ,CAAC;OACtB,IAAI,gBAAgB,YAAY,UACrC,SAAS,aAAa;GACpB,MAAM,gBAAgB;GACtB,MAAM;EACR,CAAC,CAAC;EAEJ,gBAAgB,UAAU;CAC5B,GAAG,CAAC,UAAU,QAAQ,CAAC;CACvB,sBAAsB;EACpB,aAAa;GACX,IAAI,gBAAgB,SAAS;IAC3B,SAAS,YAAY,gBAAgB,OAAO,CAAC;IAC7C,gBAAgB,UAAU;GAC5B;EACF;CACF,GAAG,CAAC,QAAQ,CAAC;CACb,OAAO;AACT;AACA,SAAS,UAAU,OAAO;CACxB,IAAI,UAAU,MAAM,SAClB,YAAY,MAAM,WAClB,QAAQ,MAAM,OACd,QAAQ,MAAM;CAChB,IAAI,mBAAmB,OAAO,IAAI;CAClC,IAAI,WAAW,OAAO,IAAI;CAC1B,IAAI,UAAU,eAAe,iBAAiB;CAC9C,IAAI,aAAa,cAAc;CAC/B,IAAI,WAAW,eAAe;CAC9B,IAAI,WAAW;CACf,IAAI,WAAW,gBAAe,UAAS,gBAAgB,OAAO,OAAO,CAAC;CACtE,IAAI,WAAW,gBAAe,UAAS,oBAAoB,OAAO,OAAO,CAAC;CAC1E,IAAI,qBAAqB,gBAAe,UAAS,kBAAkB,OAAO,UAAU,SAAS,UAAU,CAAC;CAOxG,IAAI,uBAAuB,gBAAe,UAAS,8BAA8B,OAAO,OAAO,CAAC;CAChG,sBAAsB;EAGpB,IAAI,UAAU,UAAU,CAAC,YAAY,wBAAwB,KAAK,KAAkB,6BAAe,KAAK,KAAK,wBAAwB,MACnI;EAEF,IAAI,gBAAgB,iBAAiB;EACrC,IAAI,CAAC,eACH;EAEF,IAAI,oBAAoB,cAAc,mBAAmB;EAGzD,IAAI,KAAK,MAAM,SAAS,KAAK,MAAM,KAAK,MAAM,iBAAiB,GAC7D,SAAS,iBAAiB;GACxB,IAAI;GACJ,OAAO;EACT,CAAC,CAAC;CAEN,GAAG;EAIH;EAAoB;EAAU;EAAU;EAAO;EAAS;EAAO;CAAoB,CAAC;CACpF,IAAI,YAAY,QAAQ,YAAY,QAAQ,wBAAwB,MAClE,OAAO;CAEqB,MAAM;CAC1B,MAAM;CACR,MAAM;CAFd,IAGE,gBAAgBI,2BAAyB,OAAO,UAAU;CACnD,qBAAqB;CACrB,qBAAqB;CAD9B,IAEE,2BAA2BA,2BAAyB,sBAAsB,UAAU;CACtF,OAAoB,sBAAM,cAAc,eAAeN,WAAS,CAAC,GAAG,eAAe,0BAA0B;EAC3G,KAAK;EACK;EACV,GAAG,SAAS;EACZ,GAAG,SAAS;EACZ,eAAe,UAAU,SAAS,EAChC,OAAO,KAAA,EACT,IAAI,EACF,MACF;EACA,OAAO,SAAS;EAChB,QAAQ,SAAS;EACjB,WAAW,KAAK,YAAY,OAAO,UAAU,GAAG,CAAC,CAAC,OAAO,QAAQ,GAAG,SAAS;EACpE;EACT,OAAO;EACG;EACV,QAAQ;CACV,CAAC,CAAC;AACJ;AACA,IAAW,oBAAoB;CAC7B,mBAAmB,cAAc;CACjC,eAAe,cAAc;CAC7B,yBAAyB,cAAc;CACvC,OAAO,cAAc;CACrB,UAAU,0BAA0B;CACpC,MAAM;CACN,eAAe,cAAc;CAC7B,UAAU,cAAc;CACxB,OAAO;CACP,YAAY,cAAc;CAC1B,QAAQ,cAAc;CACtB,aAAa,cAAc;CAC3B,SAAS,cAAc;CACvB,UAAU,cAAc;CACxB,OAAO,cAAc;CACrB,MAAM,cAAc;CACpB,WAAW,cAAc;CACzB,UAAU,0BAA0B;CACpC,UAAU,0BAA0B;CACpC,MAAM,cAAc;CACpB,WAAW,cAAc;CACzB,OAAO,cAAc;CACrB,SAAS;AACX;AACA,IAAI,2BAA0B,iBAAgB;CAC5C,IAAI,QAAQ,oBAAoB,cAAc,iBAAiB;CAC/D,OAAoB,sBAAM,cAAcQ,QAAM,UAAU,MAAmB,sBAAM,cAAc,kBAAkB;EAC/G,UAAU,MAAM;EAChB,IAAI,MAAM;EACV,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,QAAQ,MAAM;EACd,mBAAmB,MAAM;EACzB,SAAS,MAAM;EACf,yBAAyB,MAAM;EAC/B,eAAe,MAAM;EACrB,WAAW,MAAM;EACjB,SAAS,MAAM;EACf,eAAe,MAAM;EACrB,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,OAAO,MAAM;EACb,aAAa,MAAM;EACnB,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,YAAY,MAAM;EAClB,MAAM,MAAM;EACZ,eAAe,MAAM;EACrB,WAAW,MAAM;CACnB,CAAC,GAAgB,sBAAM,cAAc,WAAW,KAAK,CAAC;AACxD;;;;;AAMA,IAAW,QAAqB,sBAAM,KAAK,yBAAyB,iBAAiB;AAGrF,MAAM,cAAc;;;AClMpB,IAAI,oBAAoB,QAAQ,iBAAiB;AACjD,IAAW,oCAAoC,eAAe;CAAC;CAAkB;CAAmB;CAAoB;CAAuB;CAAmC;CAAwB;CAA2B;AAAyB,GAAG,kBAAkB;;;;;;ACLnR,SAAS,aAAa,SAAS;CAC7B,OAAO,aAAa,QAAQ,iBAAiB,OAAO,QAAQ,cAAc,YAAY;AACxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,sBAAsB,OAAO;CAC3C,IAAI,OAAO,MAAM,cAAc,sBAAsB;CACrD,IAAI,QAAQ;CACZ,IAAI,aAAa,KAAK,GAAG;EAEvB,IAAI,OAAO,MAAM,cAAc,QAAQ;EACvC,SAAS,KAAK,QAAQ,IAAI,KAAK,QAAQ,KAAK,QAAQ;EACpD,SAAS,KAAK,SAAS,IAAI,KAAK,SAAS,KAAK,SAAS;CACzD,OAAO;EAEL,IAAI,UAAU,MAAM;EACpB,SAAS,QAAQ,cAAc,IAAI,KAAK,QAAQ,QAAQ,cAAc;EACtE,SAAS,QAAQ,eAAe,IAAI,KAAK,SAAS,QAAQ,eAAe;CAC3E;CACA,IAAI,kBAAkB,SAAS,aAAa;EAW1C,WAAW,KAAK,OAAO,UAAU,KAAK,QAAQ,MAAM;EACpD,WAAW,KAAK,OAAO,UAAU,KAAK,OAAO,MAAM;CACrD;CACA,IAAI,aAAa,OACf,OAAO,MAAM,KAAK,MAAM,OAAO,CAAC,CAAC,KAAI,UAAS,eAAe,MAAM,SAAS,MAAM,OAAO,CAAC;CAE5F,OAAO,eAAe,MAAM,SAAS,MAAM,OAAO;AACpD;;;ACxFA,IAAW,mBAAmB,aAAa,YAAY;AACvD,IAAW,uBAAuB,yBAAyB;AAG3D,qBAAqB,eAAe;CAClC,eAAe;CACf,SAAS,QAAQ,gBAAgB;EAC/B,IAAI,eAAe,OAAO;EAC1B,IAAI,cAAc,kCAAkC,YAAY,SAAS,GAAG,sBAAsB,YAAY,CAAC;EAC/G,KAAK,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,gBAAgB,MACzF,YAAY,SAAS,uBAAuB;GAC1C,aAAa,YAAY;GACzB,eAAe,KAAA;GACf,kBAAkB,YAAY;EAChC,CAAC,CAAC;CAEN;AACF,CAAC;AACD,IAAW,kBAAkB,aAAa,WAAW;AACrD,IAAW,sBAAsB,yBAAyB;AAU1D,IAAIC,UAAQ;AACZ,IAAIC,cAAY;AAChB,IAAI,qBAAqB;AACzB,oBAAoB,eAAe;CACjC,eAAe;CACf,SAAS,QAAQ,gBAAgB;EAC/B,IAAI,eAAe,OAAO;EAE1B,IAAI,uBADQ,YAAY,SACO,CAAC,CAAC,eAC/B,gBAAgB,qBAAqB,eACrC,kBAAkB,qBAAqB;EACzC,IAAI,cAAc,oBAAoB,UAAU,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,SAAS,WAAW;EAGtJ,IAAID,YAAU,MAAM;GAClB,qBAAqBA,OAAK;GAC1B,UAAQ;EACV;EACA,IAAIC,gBAAc,SAAS,OAAO,kBAAkB,YAAY,CAAC,cAAc;GAC7E,aAAaA,WAAS;GACtB,cAAY;EACd;EAOA,qBAAqB,sBAAsB,YAAY;EACvD,IAAI,iBAAiB;GAKnB,IAAI,eAAe,YAAY,SAAS;GACxC,IAAI,mBAAmBC,yBAAuB,cAAc,aAAa,QAAQ,SAAS,MAAM;GAChG,IAAI,CAAC,oBAAoB;IACvB,UAAQ;IACR,cAAY;IACZ;GACF;GAMA,IAAI,qBAAqB,QAAQ;IAC/B,IAAI,cAAc,kCAAkC,cAAc,kBAAkB;IACpF,KAAK,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,gBAAgB,MACzF,YAAY,SAAS,sBAAsB;KACzC,aAAa,YAAY;KACzB,eAAe,KAAA;KACf,kBAAkB,YAAY;IAChC,CAAC,CAAC;SAGF,YAAY,SAAS,gBAAgB,CAAC;GAE1C;GACA,UAAQ;GACR,cAAY;EACd;EACA,IAAI,CAAC,aAAa;GAChB,SAAS;GACT;EACF;EACA,IAAI,kBAAkB,OACpB,UAAQ,sBAAsB,QAAQ;OACjC,IAAI,OAAO,kBAAkB,UAC9BD;OAAAA,gBAAc,MAChB,cAAY,WAAW,UAAU,aAAa;EAAA;CAGpD;AACF,CAAC;;;AC5GD,SAAgB,mCAAmC,KAAK,OAAO;CAC7D,IAAI,iBAAiB,aACnB,OAAO,gBAAgB,OAAO,MAAM,SAAS,WAAW,CAAC,CAAC,OAAO,MAAM,WAAW,KAAK;CAEzF,IAAI,UAAU,QACZ,OAAO;CAET,IAAI,QAAQ,cAAc,OAAO,UAAU,YAAY,UAAU,MAC/D,OAAO;CAET,OAAO;AACT;;;;;;;ACJA,IAAW,eAAe;CACxB,oBAAoB;CACpB,gBAAgB;CAChB,QAAQ;CACR,SAAS,KAAA;CACT,WAAW,KAAA;CACX,YAAY,KAAA;CACZ,aAAa;CACb,QAAQ,KAAA;CACR,YAAY;CACZ,WAAW,KAAA;CACX,mBAAmB;AACrB;AACA,IAAI,iBAAiB,YAAY;CAC/B,MAAM;CACN;CACA,UAAU,EACR,gBAAgB,OAAO,WAAW;EAChC,IAAI;EACJ,MAAM,qBAAqB,OAAO,QAAQ;EAC1C,MAAM,iBAAiB,OAAO,QAAQ;EACtC,MAAM,UAAU,wBAAwB,OAAO,QAAQ,YAAY,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,aAAa;EACnJ,MAAM,UAAU,OAAO,QAAQ;EAC/B,MAAM,aAAa,OAAO,QAAQ;EAClC,MAAM,cAAc,OAAO,QAAQ;EACnC,MAAM,SAAS,OAAO,QAAQ;EAC9B,MAAM,aAAa,OAAO,QAAQ;EAClC,MAAM,YAAY,OAAO,QAAQ;EACjC,MAAM,YAAY,OAAO,QAAQ;EACjC,MAAM,oBAAoB,OAAO,QAAQ;CAC3C,EACF;AACF,CAAC;AACD,IAAW,mBAAmB,eAAe;AAC7C,IAAI,gBAAgB,eAAe,QAAQ;;;ACzB3C,IAAI,oBAAoB,YAAY;CAClC,MAAM;CACN,cAAA;CACA,UAAA,EAhBA,qBAAqB,OAAO,WAAW;EACrC,IAAI,UAAU,MACZ,OAAO,OAAO;EAEhB,MAAM,aAAa,OAAO,QAAQ;EAClC,MAAM,WAAW,OAAO,QAAQ;EAChC,MAAM,KAAK,OAAO,QAAQ;EAC1B,MAAM,KAAK,OAAO,QAAQ;EAC1B,MAAM,cAAc,OAAO,QAAQ;EACnC,MAAM,cAAc,OAAO,QAAQ;EACnC,OAAO;CACT,EAKO;AACT,CAAC;AACwB,kBAAkB,QAAQ;AAEnD,IAAW,sBAAsB,kBAAkB;;;AChBnD,IAAW,gBAAgB,aAAa,SAAS;AACjD,IAAW,cAAc,aAAa,OAAO;AAC7C,IAAW,aAAa,aAAa,MAAM;AAC3C,IAAW,2BAA2B,yBAAyB;AAC/D,IAAIE,UAAQ;AACZ,IAAIC,cAAY;AAChB,IAAI,8BAA8B;AAClC,yBAAyB,eAAe;CACtC,eAAe;CACf,SAAS,QAAQ,gBAAgB;EAC/B,8BAA8B,OAAO;EACrC,IAAID,YAAU,MAAM;GAClB,qBAAqBA,OAAK;GAC1B,UAAQ;EACV;EAEA,IAAI,uBADQ,YAAY,SACO,CAAC,CAAC,eAC/B,gBAAgB,qBAAqB,eACrC,kBAAkB,qBAAqB;EACzC,IAAI,cAAc,oBAAoB,SAAS,gBAAgB,SAAS,SAAS;EACjF,IAAIC,gBAAc,SAAS,OAAO,kBAAkB,YAAY,CAAC,cAAc;GAC7E,aAAaA,WAAS;GACtB,cAAY;EACd;EACA,IAAI,iBAAiB;GACnB,IAAI;IACF,IAAI,eAAe,YAAY,SAAS;IAExC,IAAI,EAD6B,aAAa,UAAU,uBAAuB,QAE7E;IAEF,IAAI,sBAAsB,aAAa,QAAQ;IAC/C,IAAI,MAAM;IACV,IAAI,QAAQ,gBAAgB,QAAQ,eAAe,QAAQ,SACzD;IAIF,IAAI,gBAAgB,0BAA0B,qBAAqB,2BAA2B,YAAY,GAAG,yBAAyB,YAAY,GAAG,wBAAwB,YAAY,CAAC;IAC1L,IAAI,eAAe,iBAAiB,OAAO,KAAK,OAAO,aAAa;IACpE,IAAI,kBAAkB,CAAC,OAAO,SAAS,YAAY,KAAK,eAAe;IACvE,IAAI,eAAe,uBAAuB,YAAY;IACtD,IAAI,gBAAgB,2BAA2B,YAAY;IAC3D,IAAI,mBAAmBC,yBAAuB,cAAc,aAAa,QAAQ,SAAS,MAAM;IAChG,IAAI,QAAQ,SAAS;KACnB,IAAI,iBACF;KAEF,IAAI,cAAc,gCAAgC,cAAc,kBAAkB,SAAS,OAAO,oBAAoB,KAAK,CAAC;KAC5H,YAAY,SAAS,uBAAuB;MAC1C,QAAQ,CAAC,oBAAoB;MAC7B,aAAa,oBAAoB;MACjC,kBAAkB;KACpB,CAAC,CAAC;KACF;IACF;IAEA,IAAI,sBADY,qBAAqB,YACH,MAAM,kBAAkB,IAAI;IAC9D,IAAI,WAAW,QAAQ,eAAe,IAAI;IAC1C,IAAI;IACJ,IAAI,iBAAiB;KACnB,IAAI,cAAc,yBAAyB,YAAY;KACvD,IAAI,SAAS,wBAAwB,YAAY;KACjD,IAAI,oBAAoB,WAAW;KAGnC,IAAI,iBAAgB,OAAM;MACxB,QAAQ;MACR,OAAO,OAAO,CAAC;MACf,SAAS,KAAA;MACT,iBAAiB,KAAA;MACjB,YAAY,KAAA;KACd;KACA,YAAY;KACZ,IAAI,oBAAoB,GACjB;WAAA,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KACxC,IAAI,0BAA0B,cAAc,CAAC,GAAG,eAAe,aAAa,MAAM,KAAK,MAAM;OAC3F,YAAY;OACZ;MACF;YAGF,KAAK,IAAI,KAAK,cAAc,SAAS,GAAG,MAAM,GAAG,MAC/C,IAAI,0BAA0B,cAAc,EAAE,GAAG,eAAe,aAAa,MAAM,KAAK,MAAM;MAC5F,YAAY;MACZ;KACF;KAGJ,IAAI,YAAY,GACd;IAEJ,OAAO;KACL,YAAY,eAAe,WAAW;KACtC,IAAI,cAAc,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,WAAW,cAAc;KACpH,IAAI,eAAe,KAAK,aAAa,cAAc,YAAY,GAC7D;IAEJ;IACA,IAAI,aAAa,gCAAgC,cAAc,kBAAkB,SAAS,OAAO,SAAS,CAAC;IAC3G,YAAY,SAAS,uBAAuB;KAC1C,QAAQ;KACR,aAAa,UAAU,SAAS;KAChC,kBAAkB;IACpB,CAAC,CAAC;GACJ,UAAU;IACR,UAAQ;IACR,cAAY;GACd;EACF;EACA,IAAI,CAAC,aAAa;GAChB,SAAS;GACT;EACF;EACA,IAAI,kBAAkB,OACpB,UAAQ,sBAAsB,QAAQ;OACjC,IAAI,OAAO,kBAAkB,UAC9BD;OAAAA,gBAAc,MAAM;IACtB,SAAS;IACT,8BAA8B;IAC9B,cAAY,iBAAiB;KAC3B,IAAI,6BACF,SAAS;UACJ;MACL,cAAY;MACZ,UAAQ;KACV;IACF,GAAG,aAAa;GAClB;;CAEJ;AACF,CAAC;AACD,yBAAyB,eAAe;CACtC,eAAe;CACf,SAAS,SAAS,gBAAgB;EAChC,IAAI,QAAQ,YAAY,SAAS;EAEjC,IAAI,EAD6B,MAAM,UAAU,uBAAuB,QAEtE;EAEF,IAAI,sBAAsB,MAAM,QAAQ;EACxC,IAAI,oBAAoB,QACtB;EAEF,IAAI,oBAAoB,SAAS,MAAM;GACrC,IAAI,YAAY;GAEhB,IAAI,aAAa,gCAAgC,OAD1BC,yBAAuB,OAAO,MAAM,QAAQ,SAAS,MACpB,GAAkB,SAAS,OAAO,SAAS,CAAC;GACpG,YAAY,SAAS,uBAAuB;IAC1C,QAAQ;IACR,aAAa;IACb,kBAAkB;GACpB,CAAC,CAAC;EACJ;CACF;AACF,CAAC;AACD,yBAAyB,eAAe;CACtC,eAAe;CACf,SAAS,SAAS,gBAAgB;EAChC,IAAI,QAAQ,YAAY,SAAS;EAEjC,IAAI,EAD6B,MAAM,UAAU,uBAAuB,QAEtE;EAEF,IAAI,sBAAsB,MAAM,QAAQ;EACxC,IAAI,oBAAoB,QACtB,YAAY,SAAS,uBAAuB;GAC1C,QAAQ;GACR,aAAa,oBAAoB;GACjC,kBAAkB,oBAAoB;EACxC,CAAC,CAAC;CAEN;AACF,CAAC;;;ACpLD,SAAgB,iBAAiB,YAAY;CAC3C,WAAW,QAAQ;CACnB,IAAI,gBAAgB,WAAW;CAC/B,OAAO,IAAI,MAAM,YAAY,EAC3B,MAAM,QAAQ,SAAS;EACrB,IAAI,SAAS,iBACX,OAAO;EAET,IAAI,QAAQ,QAAQ,IAAI,QAAQ,IAAI;EACpC,IAAI,OAAO,UAAU,YACnB,OAAO,MAAM,KAAK,MAAM;EAE1B,OAAO;CACT,EACF,CAAC;AACH;;;ACZA,IAAW,sBAAsB,aAAa,eAAe;AAC7D,IAAW,2BAA2B,yBAAyB;AAS/D,IAAI,2BAAW,IAAI,IAAI;AACvB,IAAI,+BAAe,IAAI,IAAI;AAC3B,IAAI,iCAAiB,IAAI,IAAI;AAC7B,yBAAyB,eAAe;CACtC,eAAe;CACf,SAAS,QAAQ,gBAAgB;EAC/B,IAAI,kBAAkB,OAAO,SAC3B,UAAU,gBAAgB,SAC1B,aAAa,gBAAgB;EAC/B,IAAI,WAAW,MACb;EAEF,IAAI,YAAY,WAAW;EAC3B,IAAI,aAAa,iBAAiB,UAAU;EAC5C,eAAe,IAAI,WAAW;GAC5B;GACA,YAAY;EACd,CAAC;EAGD,IAAI,gBAAgB,SAAS,IAAI,SAAS;EAC1C,IAAI,kBAAkB,KAAA,GAAW;GAC/B,qBAAqB,aAAa;GAClC,SAAS,OAAO,SAAS;EAC3B;EAEA,IAAI,uBADQ,YAAY,SACO,CAAC,CAAC,eAC/B,gBAAgB,qBAAqB;EAYvC,IAAI,oBAXgB,qBAAqB;EAezC,IAAI,cAAc,sBAAsB,UAAU,sBAAsB,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,SAAS,SAAS;EAC5J,IAAI,oBAAoB,aAAa,IAAI,SAAS;EAClD,IAAI,sBAAsB,KAAA,MAAc,OAAO,kBAAkB,YAAY,CAAC,cAAc;GAC1F,aAAa,iBAAiB;GAC9B,aAAa,OAAO,SAAS;EAC/B;EACA,IAAI,iBAAiB;GACnB,IAAI,eAAe,eAAe,IAAI,SAAS;GAC/C,IAAI;IACF,IAAI,CAAC,cAEH;IAEF,IAAI,gBAAgB,aAAa,SAC/B,cAAc,aAAa;IAC7B,IAAI,eAAe,YAAY,SAAS;IACxC,IAAI,YAAY;KACd,kBAAkB,8BAA8B,YAAY;KAC5D,eAAe,2BAA2B,YAAY;KACtD,aAAa,yBAAyB,YAAY;KAClD,aAAaC,oBAAkB,YAAY;KAC3C,oBAAoB,yBAAyB,YAAY;KACzD,iBAAiBC,wBAAsB,YAAY;IACrD;IACA,IAAI,eACF,cAAc,WAAW,WAAW;GAExC,UAAU;IACR,SAAS,OAAO,SAAS;IACzB,aAAa,OAAO,SAAS;IAC7B,eAAe,OAAO,SAAS;GACjC;EACF;EACA,IAAI,CAAC,aAAa;GAEhB,SAAS;GACT;EACF;EACA,IAAI,kBAAkB,OAAO;GAC3B,IAAI,QAAQ,sBAAsB,QAAQ;GAC1C,SAAS,IAAI,WAAW,KAAK;EAC/B,OAAO,IAAI,OAAO,kBAAkB,UAC9B;OAAA,CAAC,aAAa,IAAI,SAAS,GAAG;IAKhC,SAAS;IAGT,IAAI,YAAY,WAAW,UAAU,aAAa;IAClD,aAAa,IAAI,WAAW,SAAS;GACvC;SAGA,SAAS;CAEb;AACF,CAAC;AC/GD,IAAW,0BAA0B,eAAe;CADT,eAAe,CAAC,kBAAkB,IAAG,iBAAgB,aAAa,mBACxD;EAAuC,QAAQ,iBAAiB;EAAe,QAAQ,eAAe,oBAAoB;AAAe,IAAI,0BAA0B,cAAc,oBAAoB;CAC5P,IAAI,gBAAgB,MAClB;CAEF,IAAI,mCAAmC,yBAAyB,MAAK,yBAAwB;EAC3F,OAAO,qBAAqB,SAAS,oBAAoB;CAC3D,CAAC;CACD,IAAI,oCAAoC,MACtC;CAEF,IAAI,cAAc,iCAAiC;CACnD,IAAI,eAAe,MACjB;CAEF,OAAO,YAAY,YAAY;AACjC,CAAC;;;ACTD,IAAW,mBAAmB,aAAa,WAAW;AACtD,IAAW,uBAAuB,yBAAyB;AAC3D,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AACvB,qBAAqB,eAAe;CAClC,eAAe;CACf,SAAS,QAAQ,gBAAgB;EAC/B,IAAI,aAAa,OAAO;EACxB,IAAI,WAAW,WAAW,QAAQ,WAAW,QAAQ,WAAW,GAC9D;EAEF,mBAAmB,iBAAiB,UAAU;EAE9C,IAAI,uBADQ,YAAY,SACO,CAAC,CAAC,eAC/B,gBAAgB,qBAAqB,eACrC,kBAAkB,qBAAqB;EACzC,IAAI,cAAc,oBAAoB,SAAS,gBAAgB,SAAS,WAAW;EACnF,IAAI,UAAU,MAAM;GAClB,qBAAqB,KAAK;GAC1B,QAAQ;EACV;EACA,IAAI,cAAc,SAAS,OAAO,kBAAkB,YAAY,CAAC,cAAc;GAC7E,aAAa,SAAS;GACtB,YAAY;EACd;EACA,sBAAsB,MAAM,KAAK,WAAW,OAAO,CAAC,CAAC,KAAI,UAAS,sBAAsB;GACtF,SAAS,MAAM;GACf,SAAS,MAAM;GACf,eAAe,WAAW;EAC5B,CAAC,CAAC;EACF,IAAI,iBAAiB;GACnB,IAAI,oBAAoB,MACtB;GAEF,IAAI,eAAe,YAAY,SAAS;GACxC,IAAI,mBAAmBC,yBAAuB,cAAc,aAAa,QAAQ,SAAS,MAAM;GAChG,IAAI,qBAAqB,QAAQ;IAC/B,IAAI;IACJ,IAAI,sBAAsB,uBAAuB,yBAAyB,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB;IAClJ,IAAI,sBAAsB,MAAM;KAC9B,QAAQ;KACR,YAAY;KACZ;IACF;IACA,IAAI,cAAc,kCAAkC,cAAc,kBAAkB;IACpF,KAAK,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,gBAAgB,MACzF,YAAY,SAAS,sBAAsB;KACzC,aAAa,YAAY;KACzB,eAAe,KAAA;KACf,kBAAkB,YAAY;IAChC,CAAC,CAAC;GAEN,OAAO,IAAI,qBAAqB,QAAQ;IACtC,IAAI;IACJ,IAAI,QAAQ,iBAAiB,QAAQ;IACrC,IAAI,SAAS,oBAAoB,QAAQ,SAAS,MAChD;IAEF,IAAI,SAAS,SAAS,iBAAiB,MAAM,SAAS,MAAM,OAAO;IACnE,IAAI,CAAC,UAAU,CAAC,OAAO,cACrB;IAEF,IAAI,YAAY,OAAO,aAAa,8BAA8B;IAClE,IAAI,mBAAmB,uBAAuB,OAAO,aAAA,uBAAuD,OAAO,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,KAAA;IACpL,IAAI,WAAW,gCAAgC,YAAY,CAAC,CAAC,MAAK,SAAQ,KAAK,OAAO,eAAe;IACrG,IAAI,aAAa,QAAQ,YAAY,QAAQ,mBAAmB,MAC9D;IAEF,IAAI,UAAU,SAAS;IACvB,IAAI,aAAa,wBAAwB,cAAc,WAAW,eAAe;IACjF,YAAY,SAAS,4BAA4B;KAC/C,eAAe;KACf,aAAa;KACb,kBAAkB;KAClB,uBAAuB;IACzB,CAAC,CAAC;GACJ;GACA,QAAQ;GACR,YAAY;EACd;EACA,IAAI,CAAC,aAAa;GAChB,SAAS;GACT;EACF;EACA,IAAI,kBAAkB,OACpB,QAAQ,sBAAsB,QAAQ;OACjC,IAAI,OAAO,kBAAkB,UAC9B;OAAA,cAAc,MAAM;IACtB,SAAS;IACT,mBAAmB;IACnB,YAAY,iBAAiB;KAC3B,IAAI,kBACF,SAAS;UACJ;MACL,YAAY;MACZ,QAAQ;KACV;IACF,GAAG,aAAa;GAClB;;CAEJ;AACF,CAAC;;;AC9GD,IAAW,4BAA4B;CACrC,eAAe;CACf,iBAAiB;EAAC;EAAa;EAAa;EAAe;EAAU;CAAO;AAC9E;AACA,IAAI,qBAAqB,YAAY;CACnC,MAAM;CACN,cAAc;CACd,UAAU,EACR,mBAAmB,OAAO,WAAW;EACnC,IAAI,OAAO,QAAQ,iBAAiB,MAClC,MAAM,gBAAgB,OAAO,QAAQ;EAEvC,IAAI,OAAO,QAAQ,mBAAmB,MACpC,MAAM,kBAAkB,UAAU,OAAO,QAAQ,eAAe;CAEpE,EACF;AACF,CAAC;AACD,IAAI,mBAAmB,mBAAmB,QAAQ;AAElD,IAAW,uBAAuB,mBAAmB;;;ACCrD,IAAI,cAAc,gBAAgB;CAChC,OAAO;CACP,eAAe;CACf,WAAW;CACX,WAAW;CACX,eAAe;CACf,gBAAgB;CAChB,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,cAAc;CACd,mBAAmB;CACnB,eAAe;CACf,WAAW;CACX,SAAS;CACT,QAAQ;AACV,CAAC;AACD,IAAW,sBAAsB,SAAS,oBAAoB,gBAAgB;CAC5E,IAAI,YAAY,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK;CACpF,OAAO,eAAe;EACpB,SAAS;EAEO;EAEhB,aAAY,yBAAwB;GAClC,IAAI;GACJ,OAAO,qBAAqB;IAC1B,mBAAmB;IACnB,gBAAgB,CAAC;KAAC;KAAY;KAAO;IAAY,CAAC,CAAC,UAAU,wBAAwB,WAAW,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,EAAE;GACvK,CAAC,CAAC,CAAC,OAAO;IAAC,qBAAqB;IAAY,oBAAoB;IAAY,yBAAyB;IAAY,yBAAyB;IAAY,qBAAqB;GAAU,CAAC;EACxL;EASA,YAAW,wBAAuB;GAChC,IAAI,YAAY;GAChB,IAAI,OAAO,wBAAwB,YAQjC,YAAY,oBAAoB;GAElC,OAAO,UAAU,OAAO,kBAAkB,EACxC,MAAM,MACR,CAAC,CAAC;EACJ;EACA,UAAU,OAAO,mBAAmB;GAClC,WAAW,EACT,UAAU,mCACZ;GACA,MAAM,YAAY,OAAO,SAAS;EACpC;CACF,CAAC;AACH;;;AChFA,SAAgB,sBAAsB,MAAM;CAC1C,IAAI,iBAAiB,KAAK,gBACxB,WAAW,KAAK,UAChB,iBAAiB,KAAK;CACxB,IAAI,aAAa,cAAc;CAY/B,IAAI,WAAW,OAAO,IAAI;CAS1B,IAAI,YACF,OAAO;CAET,IAAI,SAAS,WAAW,MACtB,SAAS,UAAU,oBAAoB,gBAAgB,cAAc;CAIvE,IAAI,iBAAiB;CACrB,OAAoB,sBAAM,cAAcC,kBAAU;EAChD,SAAS;EACT,OAAO,SAAS;CAClB,GAAG,QAAQ;AACb;;;;;;;ACjCA,SAAS,yBAAyB,MAAM;CACtC,IAAI,SAAS,KAAK,QAChB,SAAS,KAAK;CAChB,IAAI,WAAW,eAAe;CAQ9B,IAAI,aAAa,cAAc;CAO/B,gBAAgB;EACd,IAAI,CAAC,YAAY;GACf,SAAS,UAAU,MAAM,CAAC;GAC1B,SAAS,UAAU,MAAM,CAAC;EAC5B;CACF,GAAG;EAAC;EAAU;EAAY;EAAQ;CAAM,CAAC;CACzC,OAAO;AACT;AACA,IAAW,uBAAoC,mBAAK,0BAA0B,aAAa;;;AClC3F,SAAgB,iBAAiB,OAAO;CACtC,IAAI,WAAW,eAAe;CAC9B,gBAAgB;EACd,SAAS,cAAc,KAAK,CAAC;CAC/B,GAAG,CAAC,UAAU,KAAK,CAAC;CACpB,OAAO;AACT;;;ACLA,IAAI,2BAA0B,UAAS;CACrC,IAAI,WAAW,eAAe;CAC9B,gBAAgB;EACd,SAAS,iBAAiB,KAAK,CAAC;CAClC,GAAG,CAAC,UAAU,KAAK,CAAC;CACpB,OAAO;AACT;AACA,IAAW,sBAAmC,mBAAK,yBAAyB,aAAa;;;ACNzF,SAAS,gBAAgB,MAAM;CAC7B,IAAI,SAAS,KAAK,QAChB,aAAa,KAAK;CACpB,IAAI,MAAM,OAAO,IAAI;CACrB,IAAI,WAAW,eAAe;CAC9B,sBAAsB;EACpB,IAAI,IAAI,SACN,SAAS,4BAA4B;GACnC;GACA,SAAS,IAAI;GACb;EACF,CAAC,CAAC;EAEJ,aAAa;GACX,SAAS,8BAA8B;IACrC;IACA;GACF,CAAC,CAAC;EACJ;CACF,GAAG;EAAC;EAAU;EAAQ;CAAU,CAAC;CAEjC,OAAoB,sBAAM,cAAc,KAAK;EAC3C,UAAU;EACL;EACL,WAAW,yBAAyB,OAAO,MAAM;CACnD,CAAC;AACH;AACA,SAAgB,iBAAiB,OAAO;CACtC,IAAI,WAAW,MAAM,UACnB,aAAa,MAAM;CACrB,IAAI,wBAAwB,eAAe,2BAA2B;CACtE,IAAI,CAAC,yBAAyB,sBAAsB,WAAW,GAC7D,OAAO;CAET,IAAI,sBAAsB,sBAAsB,QAAO,WAAU,SAAS,CAAC;CAE3E,IAAI,sBAAsB,sBAAsB,QAAO,WAAU,SAAS,CAAC;CAC3E,OAAoB,sBAAM,cAAcC,QAAM,UAAU,MAAM,oBAAoB,KAAI,WAAuB,sBAAM,cAAc,iBAAiB;EAChJ,KAAK;EACG;EACI;CACd,CAAC,CAAC,GAAG,UAAU,oBAAoB,KAAI,WAAuB,sBAAM,cAAc,iBAAiB;EACjG,KAAK;EACG;EACI;CACd,CAAC,CAAC,CAAC;AACL;;;ACnDA,IAAIC,cAAY,CAAC,UAAU;AAC3B,SAASC,2BAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAIC,gCAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAASA,gCAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AAWnR,IAAI,wBAAwB;CAC1B,OAAO;CACP,QAAQ;CAUR,SAAS;AACX;AACA,IAAI,mBAAgC,0BAAY,OAAO,QAAQ;CAC7D,IAAI,QAAQ,cAAc;CAC1B,IAAI,SAAS,eAAe;CAC5B,IAAI,wBAAwB,sBAAsB;CAClD,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,MAAM,GACtD,OAAO;CAET,IAAI,WAAW,MAAM,UACnB,kBAAkB,MAAM,iBACxB,QAAQ,MAAM,OACd,OAAO,MAAM;CACf,IAAI,UAAU;CACd,IAAI,mBAAmB,MAAM;EAC3B,IAAI,OAAO,gBAAgB,aAAa,UACtC,WAAW,gBAAgB;OAE3B,WAAW,wBAAwB,IAAI,KAAA;EAEzC,IAAI,OAAO,gBAAgB,SAAS,UAClC,OAAO,gBAAgB;OAEvB,OAAO,wBAAwB,gBAAgB,KAAA;CAEnD;CACA,OAAoB,sBAAM,cAAc,SAASA,WAAS,CAAC,GAAG,iBAAiB;EACtE;EACD;EACA;EACI;EACH;EACC;EACR,OAAO;EACF;CACP,CAAC,GAAG,QAAQ;AACd,CAAC;AACD,IAAI,wBAAuB,SAAQ;CACjC,IAAI,WAAW,KAAK;CACpB,IAAI,kBAAkB,eAAe,qBAAqB;CAC1D,IAAI,CAAC,iBACH,OAAO;CAET,IAAI,QAAQ,gBAAgB,OAC1B,SAAS,gBAAgB,QACzB,IAAI,gBAAgB,GACpB,IAAI,gBAAgB;CACtB,OAAoB,sBAAM,cAAc,SAAS;EACxC;EACC;EACL;EACA;CACL,GAAG,QAAQ;AACb;AACA,IAAW,cAA2B,0BAAY,OAAO,QAAQ;CAC/D,IAAI,WAAW,MAAM,UACnB,OAAOF,2BAAyB,OAAOD,WAAS;CAElD,IADiB,cACJ,GACX,OAAoB,sBAAM,cAAc,sBAAsB,MAAmB,sBAAM,cAAc,kBAAkB,EACrH,YAAY,KACd,GAAG,QAAQ,CAAC;CAEd,OAAoB,sBAAM,cAAc,kBAAkBG,WAAS,EAC5D,IACP,GAAG,IAAI,GAAgB,sBAAM,cAAc,kBAAkB,EAC3D,YAAY,MACd,GAAG,QAAQ,CAAC;AACd,CAAC;;;AC9FD,SAASC,iBAAe,GAAG,GAAG;CAAE,OAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKC,8BAA4B,GAAG,CAAC,KAAKC,mBAAiB;AAAG;AACrJ,SAASA,qBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAASD,8BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAOE,oBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,oBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,wBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAASD,kBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAM9D,SAAgB,iBAAiB;CAC/B,IAAI,WAAW,eAAe;CAC9B,IACE,aAAaD,iBADC,SAAS,IACa,GAAG,CAAC,GACxC,MAAM,WAAW,IACjB,SAAS,WAAW;CACtB,IAAI,QAAQ,eAAe,oBAAoB;CAC/C,gBAAgB;EACd,IAAI,OAAO,MACT;EAGF,IAAI,WADO,IAAI,sBACG,CAAC,CAAC,QAAQ,IAAI;EAChC,IAAI,oBAAoB,QAAQ,KAAK,aAAa,OAChD,SAAS,SAAS,QAAQ,CAAC;CAE/B,GAAG;EAAC;EAAK;EAAU;CAAK,CAAC;CACzB,OAAO;AACT;;;AC7BA,SAASM,UAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,gBAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAID,UAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,kBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,kBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,iBAAe,GAAG;CAAE,IAAI,IAAIC,eAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAASA,eAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AACvT,SAASC,aAAW;CAAE,OAAO,aAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAGA,WAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAAS,eAAe,GAAG,GAAG;CAAE,OAAO,gBAAgB,CAAC,KAAK,sBAAsB,GAAG,CAAC,KAAK,4BAA4B,GAAG,CAAC,KAAK,iBAAiB;AAAG;AACrJ,SAAS,mBAAmB;CAAE,MAAM,IAAI,UAAU,2IAA2I;AAAG;AAChM,SAAS,4BAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAI,YAAY,OAAO,GAAG,OAAO,kBAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAAS,kBAAkB,GAAG,GAAG;CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAAS,sBAAsB,GAAG,GAAG;CAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,QAAQ,GAAG;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAM,MAAM,GAAG;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,WAAW,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACnhB,SAAS,gBAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAgB9D,IAAI,0BAA0B;CAC5B,qCAAqC;CACrC,OAAO;AACT;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,OAAO,UAAU,UACnB,OAAO;CAET,IAAI,OAAO,UAAU,UAAU;EAC7B,IAAI,SAAS,WAAW,KAAK;EAC7B,IAAI,CAAC,OAAO,MAAM,MAAM,GACtB,OAAO;CAEX;CACA,OAAO;AACT;AACA,IAAI,gBAA6B,0BAAY,OAAO,QAAQ;CAC1D,IAAI,cAAc;CAClB,IAAI,cAAc,OAAO,IAAI;CAC7B,IAIE,aAAa,eAJC,SAAS;EACrB,gBAAgB,iBAAiB,eAAe,MAAM,WAAW,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,KAAK;EAC9H,iBAAiB,iBAAiB,gBAAgB,MAAM,WAAW,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,MAAM;CACrI,CACoC,GAAG,CAAC,GACxC,QAAQ,WAAW,IACnB,WAAW,WAAW;CACxB,IAAI,mBAAmB,aAAa,UAAU,cAAc;EAC1D,UAAS,cAAa;GACpB,IAAI,eAAe,KAAK,MAAM,QAAQ;GACtC,IAAI,gBAAgB,KAAK,MAAM,SAAS;GACxC,IAAI,UAAU,mBAAmB,gBAAgB,UAAU,oBAAoB,eAC7E,OAAO;GAET,OAAO;IACL,gBAAgB;IAChB,iBAAiB;GACnB;EACF,CAAC;CACH,GAAG,CAAC,CAAC;CACL,IAAI,WAAW,aAAY,SAAQ;EAEjC,IAAI,OAAO,QAAQ,YACjB,IAAI,IAAI;EAIV,IAAI,YAAY,WAAW,MAAM;GAC/B,YAAY,QAAQ,WAAW;GAC/B,YAAY,UAAU;EACxB;EAGA,IAAI,QAAQ,QAAQ,OAAO,mBAAmB,aAAa;GACzD,IAAI,wBAAwB,KAAK,sBAAsB,GACrD,iBAAiB,sBAAsB,OACvC,kBAAkB,sBAAsB;GAC1C,iBAAiB,gBAAgB,eAAe;GAChD,IAAI,YAAW,YAAW;IACxB,IAAI,QAAQ,QAAQ;IACpB,IAAI,SAAS,MACX;IAEF,IAAI,qBAAqB,MAAM,aAC7B,QAAQ,mBAAmB,OAC3B,SAAS,mBAAmB;IAC9B,iBAAiB,OAAO,MAAM;GAChC;GACA,IAAI,WAAW,IAAI,eAAe,QAAQ;GAC1C,SAAS,QAAQ,IAAI;GACrB,YAAY,UAAU;EACxB;CACF,GAAG,CAAC,KAAK,gBAAgB,CAAC;CAC1B,gBAAgB;EACd,aAAa;GACX,IAAI,WAAW,YAAY;GAC3B,IAAI,YAAY,MACd,SAAS,WAAW;EAExB;CACF,GAAG,CAAC,gBAAgB,CAAC;CACrB,OAAoB,sBAAM,cAAcC,QAAM,UAAU,MAAmB,sBAAM,cAAc,iBAAiB;EAC9G,OAAO,MAAM;EACb,QAAQ,MAAM;CAChB,CAAC,GAAgB,sBAAM,cAAc,OAAOD,WAAS,EACnD,KAAK,SACP,GAAG,KAAK,CAAC,CAAC;AACZ,CAAC;AACD,IAAI,kBAA+B,0BAAY,OAAO,QAAQ;CAC5D,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM;CACjB,IAIE,aAAa,eAJE,SAAS;EACtB,gBAAgB,gBAAgB,KAAK;EACrC,iBAAiB,gBAAgB,MAAM;CACzC,CACqC,GAAG,CAAC,GACzC,QAAQ,WAAW,IACnB,WAAW,WAAW;CACxB,IAAI,mBAAmB,aAAa,UAAU,cAAc;EAC1D,UAAS,cAAa;GACpB,IAAI,eAAe,KAAK,MAAM,QAAQ;GACtC,IAAI,gBAAgB,KAAK,MAAM,SAAS;GACxC,IAAI,UAAU,mBAAmB,gBAAgB,UAAU,oBAAoB,eAC7E,OAAO;GAET,OAAO;IACL,gBAAgB;IAChB,iBAAiB;GACnB;EACF,CAAC;CACH,GAAG,CAAC,CAAC;CACL,IAAI,WAAW,aAAY,SAAQ;EACjC,IAAI,OAAO,QAAQ,YACjB,IAAI,IAAI;EAEV,IAAI,QAAQ,MAAM;GAChB,IAAI,yBAAyB,KAAK,sBAAsB,GACtD,iBAAiB,uBAAuB,OACxC,kBAAkB,uBAAuB;GAC3C,iBAAiB,gBAAgB,eAAe;EAClD;CACF,GAAG,CAAC,KAAK,gBAAgB,CAAC;CAC1B,OAAoB,sBAAM,cAAcC,QAAM,UAAU,MAAmB,sBAAM,cAAc,iBAAiB;EAC9G,OAAO,MAAM;EACb,QAAQ,MAAM;CAChB,CAAC,GAAgB,sBAAM,cAAc,OAAOD,WAAS,EACnD,KAAK,SACP,GAAG,KAAK,CAAC,CAAC;AACZ,CAAC;AACD,IAAI,YAAyB,0BAAY,OAAO,QAAQ;CACtD,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM;CACjB,OAAoB,sBAAM,cAAcC,QAAM,UAAU,MAAmB,sBAAM,cAAc,iBAAiB;EACvG;EACC;CACV,CAAC,GAAgB,sBAAM,cAAc,OAAOD,WAAS,EAC9C,IACP,GAAG,KAAK,CAAC,CAAC;AACZ,CAAC;AACD,IAAI,mBAAgC,0BAAY,OAAO,QAAQ;CAC7D,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM;CAEjB,IAAI,OAAO,UAAU,YAAY,OAAO,WAAW,UACjD,OAAoB,sBAAM,cAAc,iBAAiBA,WAAS,CAAC,GAAG,OAAO,EACtE,IACP,CAAC,CAAC;CAGJ,IAAI,OAAO,UAAU,YAAY,OAAO,WAAW,UACjD,OAAoB,sBAAM,cAAc,WAAWA,WAAS,CAAC,GAAG,OAAO;EAC9D;EACC;EACH;CACP,CAAC,CAAC;CAIJ,OAAoB,sBAAM,cAAcC,QAAM,UAAU,MAAmB,sBAAM,cAAc,iBAAiB;EACvG;EACC;CACV,CAAC,GAAgB,sBAAM,cAAc,OAAOD,WAAS,EAC9C,IACP,GAAG,KAAK,CAAC,CAAC;AACZ,CAAC;AACD,SAAS,uBAAuB,YAAY;CAC1C,OAAO,aAAa,gBAAgB;AACtC;AACA,IAAW,kBAA+B,0BAAY,OAAO,QAAQ;CACnE,IAAI,WAAW,MAAM,UACnB,YAAY,MAAM,WAClB,kBAAkB,MAAM,QACxB,UAAU,MAAM,SAChB,gBAAgB,MAAM,eACtB,gBAAgB,MAAM,eACtB,cAAc,MAAM,aACpB,eAAe,MAAM,cACrB,eAAe,MAAM,cACrB,cAAc,MAAM,aACpB,YAAY,MAAM,WAClB,aAAa,MAAM,YACnB,cAAc,MAAM,aACpB,eAAe,MAAM,cACrB,QAAQ,MAAM,OACd,iBAAiB,MAAM,OACvB,aAAa,MAAM,YACnB,wBAAwB,MAAM,qBAC9B,sBAAsB,0BAA0B,KAAK,IAAI,OAAO;CAClE,IAAI,eAAe,OAAO,IAAI;CAC9B,IAAI,WAAW,eAAe;CAC9B,IACE,aAAa,eADE,SAAS,IACa,GAAG,CAAC,GACzC,gBAAgB,WAAW,IAC3B,mBAAmB,WAAW;CAChC,IACE,aAAa,eADE,SAAS,IACa,GAAG,CAAC,GACzC,eAAe,WAAW,IAC1B,kBAAkB,WAAW;CAC/B,IAAI,cAAc,eAAe;CACjC,IAAI,kCAAkC,8BAA8B;CACpE,IAAI,SAAS,oCAAoC,QAAQ,oCAAoC,KAAK,IAAI,KAAK,IAAI,gCAAgC,SAAS,IAAI,gCAAgC,QAAQ;CACpM,IAAI,UAAU,oCAAoC,QAAQ,oCAAoC,KAAK,IAAI,KAAK,IAAI,gCAAgC,UAAU,IAAI,gCAAgC,SAAS;CACvM,IAAI,WAAW,aAAY,SAAQ;EACjC,YAAY,IAAI;EAChB,IAAI,OAAO,QAAQ,YACjB,IAAI,IAAI;EAEV,iBAAiB,IAAI;EACrB,gBAAgB,IAAI;EACpB,IAAI,QAAQ,MACV,aAAa,UAAU;CAE3B,GAAG;EAAC;EAAa;EAAK;EAAkB;CAAe,CAAC;CACxD,IAAI,YAAY,aAAY,MAAK;EAC/B,SAAS,iBAAiB,CAAC,CAAC;EAC5B,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,OAAO,CAAC;CACtB,IAAI,iBAAiB,aAAY,MAAK;EACpC,SAAS,gBAAgB,CAAC,CAAC;EAC3B,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,YAAY,CAAC;CAC3B,IAAI,iBAAiB,aAAY,MAAK;EACpC,SAAS,gBAAgB,CAAC;EAC1B,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,YAAY,CAAC;CAC3B,IAAI,gBAAgB,aAAY,MAAK;EACnC,SAAS,gBAAgB,CAAC,CAAC;EAC3B,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,WAAW,CAAC;CAC1B,IAAI,UAAU,kBAAkB;EAC9B,SAAS,YAAY,CAAC;CACxB,GAAG,CAAC,QAAQ,CAAC;CACb,IAAI,SAAS,kBAAkB;EAC7B,SAAS,WAAW,CAAC;CACvB,GAAG,CAAC,QAAQ,CAAC;CACb,IAAI,YAAY,aAAY,MAAK;EAC/B,SAAS,cAAc,EAAE,GAAG,CAAC;CAC/B,GAAG,CAAC,QAAQ,CAAC;CACb,IAAI,kBAAkB,aAAY,MAAK;EACrC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,aAAa,CAAC;CAC5B,IAAI,kBAAkB,aAAY,MAAK;EACrC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,aAAa,CAAC;CAC5B,IAAI,gBAAgB,aAAY,MAAK;EACnC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,WAAW,CAAC;CAC1B,IAAI,cAAc,aAAY,MAAK;EACjC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,SAAS,CAAC;CACxB,IAAI,iBAAiB,aAAY,MAAK;EACpC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,YAAY,CAAC;CAW3B,IAAI,gBAAgB,aAAY,MAAK;EACnC,IAAI,qBACF,SAAS,iBAAiB,CAAC,CAAC;EAE9B,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG;EAAC;EAAU;EAAqB;CAAW,CAAC;CAC/C,IAAI,eAAe,aAAY,MAAK;EAClC,SAAS,oBAAoB;GAC3B,SAAS;GACT,YAAY;EACd,CAAC,CAAC;CACJ,GAAG,CAAC,UAAU,UAAU,CAAC;CACzB,IAAI,aAAa,uBAAuB,UAAU;CAClD,OAAoB,sBAAM,cAAc,qBAAqB,UAAU,EACrE,OAAO,cACT,GAAgB,sBAAM,cAAc,oBAAoB,UAAU,EAChE,OAAO,aACT,GAAgB,sBAAM,cAAc,YAAY;EAC9C,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;EACxG,QAAQ,WAAW,QAAQ,WAAW,KAAK,IAAI,SAAS,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM;EAC5G,WAAW,KAAK,oBAAoB,SAAS;EAC7C,OAAOJ,gBAAc;GACnB,UAAU;GACV,QAAQ;GACR;GACA;EACF,GAAG,KAAK;EACR,SAAS;EACT,eAAe;EACf,eAAe;EACN;EACD;EACG;EACX,aAAa;EACb,cAAc;EACd,cAAc;EACd,aAAa;EACb,WAAW;EACX,YAAY;EACZ,aAAa;EACb,cAAc;EACd,KAAK;CACP,GAAgB,sBAAM,cAAc,mBAAmB,IAAI,GAAG,QAAQ,CAAC,CAAC;AAC1E,CAAC;;;AC1WD,IAAI,YAAY;CAAC;CAAS;CAAU;CAAc;CAAY;CAAa;CAAS;CAAW;CAAS;AAAM;AAC9G,SAAS,yBAAyB,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAI,8BAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAAS,8BAA8B,GAAG,GAAG;CAAE,IAAI,QAAQ,GAAG,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AAQtM,IAAW,mBAAgC,0BAAY,OAAO,QAAQ;CACpE,IAAI,QAAQ,MAAM,OAChB,SAAS,MAAM,QACf,aAAa,MAAM,YACnB,WAAW,MAAM,UACjB,YAAY,MAAM,WAClB,QAAQ,MAAM,OACd,UAAU,MAAM,SAChB,QAAQ,MAAM,OACd,OAAO,MAAM;CAEf,IAAI,QAAQ,sBADD,yBAAyB,OAAO,SACT,CAAM;CAMxC,IAAI,SACF,OAAoB,sBAAM,cAAcM,QAAM,UAAU,MAAmB,sBAAM,cAAc,iBAAiB;EACvG;EACC;CACV,CAAC,GAAgB,sBAAM,cAAc,aAAa;EAChD,iBAAiB;EACV;EACD;CACR,GAAG,QAAQ,CAAC;CAEd,OAAoB,sBAAM,cAAc,iBAAiB;EAC5C;EACJ;EACA;EACC;EACR,YAAY,eAAe,QAAQ,eAAe,KAAK,IAAI,aAAa;EACxE,SAAS,MAAM;EACf,cAAc,MAAM;EACpB,cAAc,MAAM;EACpB,aAAa,MAAM;EACnB,aAAa,MAAM;EACnB,WAAW,MAAM;EACjB,eAAe,MAAM;EACrB,eAAe,MAAM;EACrB,cAAc,MAAM;EACpB,aAAa,MAAM;EACnB,YAAY,MAAM;CACpB,GAAgB,sBAAM,cAAc,aAAa;EAC/C,iBAAiB;EACV;EACD;EACD;CACP,GAAgB,sBAAM,cAAc,kBAAkB,MAAM,QAAQ,CAAC,CAAC;AACxE,CAAC;;;AC5DD,SAAS,WAAW;CAAE,OAAO,WAAW,OAAO,SAAS,OAAO,OAAO,KAAK,IAAI,SAAU,GAAG;EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GAAE,IAAI,IAAI,UAAU;GAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,EAAA,CAAG,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;EAAK;EAAE,OAAO;CAAG,GAAG,SAAS,MAAM,MAAM,SAAS;AAAG;AACnR,SAAS,QAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAAS,cAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;EAAG,IAAI,IAAI,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,gBAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAAS,gBAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAI,eAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAAS,eAAe,GAAG;CAAE,IAAI,IAAI,aAAa,GAAG,QAAQ;CAAG,OAAO,YAAY,OAAO,IAAI,IAAI,IAAI;AAAI;AAC1G,SAAS,aAAa,GAAG,GAAG;CAAE,IAAI,YAAY,OAAO,KAAK,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAI,KAAK,MAAM,GAAG;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAI,YAAY,OAAO,GAAG,OAAO;EAAG,MAAM,IAAI,UAAU,8CAA8C;CAAG;CAAE,QAAQ,aAAa,IAAI,SAAS,OAAA,CAAQ,CAAC;AAAG;AAiBvT,IAAW,6BAA6B,cAAc;CACpD,oBAAoB;CACpB,gBAAgB;CAChB,QAAQ;CACR,QAAQ;CACR,QAAQ;EAVR,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CAOE;CACR,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,YAAY;AACd,GAAG,yBAAyB;;;;;;AAQ5B,IAAW,iBAA8B,yBAAW,SAAS,eAAe,OAAO,KAAK;CACtF,IAAI;CACJ,IAAI,iBAAiB,oBAAoB,MAAM,uBAAuB,0BAA0B;CAChG,IAAI,YAAY,MAAM,WACpB,0BAA0B,MAAM,yBAChC,4BAA4B,MAAM,2BAClC,yBAAyB,MAAM,wBAC/B,wBAAwB,MAAM;CAChC,IAAI,UAAU;EACZ;EACA;EACA;EACA;EACA,cAAc,KAAA;CAChB;CACA,OAAoB,sBAAM,cAAc,uBAAuB;EAC7D,gBAAgB,EACd,QACF;EACA,iBAAiB,wBAAwB,sBAAsB,QAAQ,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;CAC5I,GAAgB,sBAAM,cAAc,0BAA0B,EAC5D,WAAW,sBAAsB,KACnC,CAAC,GAAgB,sBAAM,cAAc,sBAAsB;EACzD,QAAQ,eAAe;EACvB,QAAQ,eAAe;CACzB,CAAC,GAAgB,sBAAM,cAAc,qBAAqB;EACxD,eAAe,eAAe;EAC9B,iBAAiB,eAAe;CAClC,CAAC,GAAgB,sBAAM,cAAc,kBAAkB;EACrD,WAAW,eAAe;EAC1B,oBAAoB,eAAe;EACnC,gBAAgB,eAAe;EAC/B,YAAY,eAAe;EAC3B,aAAa,eAAe;EAC5B,QAAQ,eAAe;EACvB,SAAS,eAAe;EACxB,QAAQ,eAAe;EACvB,YAAY,eAAe;EAC3B,WAAW,eAAe;EAC1B,mBAAmB,eAAe;CACpC,CAAC,GAAgB,sBAAM,cAAc,kBAAkB,SAAS,CAAC,GAAG,gBAAgB,EAC7E,IACP,CAAC,CAAC,CAAC;AACL,CAAC;;;AC/ED,IAAI,sBAAsB,CAAC,QAAQ,MAAM;;;;;;AAOzC,IAAW,WAAwB,0BAAY,OAAO,QAAQ;CAC5D,OAAoB,sBAAM,cAAc,gBAAgB;EACtD,WAAW;EACX,yBAAyB;EACzB,2BAA2B;EAC3B,wBAAwB;EACxB,uBAAuB;EAClB;CACP,CAAC;AACH,CAAC;;;ACRD,SAAS,aAAa,EAAE,QAAQ,OAAO,WAAyC;CAC9E,IAAI,CAAC,UAAU,YAAY,KAAA,KAAa,QAAQ,WAAW,GAAG,OAAO;CACrE,MAAM,MAAM,QAAQ,EAAE,CAAC;CACvB,OACE,qBAAC,OAAD;EAAK,WAAWC,yBAAI;EAApB,UAAA;GACE,qBAAC,OAAD;IAAK,WAAWA,yBAAI;IAApB,UAAA,CAAmC,OAAM,KAAQ;;GACjD,qBAAC,OAAD,EAAA,UAAA,CAAK,OAAI,aAAa,IAAI,KAAK,CAAO,EAAA,CAAA;GACtC,qBAAC,OAAD,EAAA,UAAA,CAAK,OAAI,aAAa,IAAI,MAAM,CAAO,EAAA,CAAA;GACvC,qBAAC,OAAD;IAAK,WAAWA,yBAAI;IAApB,UAAA;KAAkC;KAAI,aAAa,IAAI,QAAQ,IAAI,MAAM;KAAE;KAAI,IAAI;KAAM;IAAO;;EAC7F;;AAET;AAEA,SAAgB,cAAc,EAAE,UAA8C;CAC5E,MAAM,OAAkB,OAAO,MAAM,KAAK,GAAG,UAAU;EAAE;EAAM,GAAG,WAAW,CAAC;EAAG,OAAO,EAAE;CAAM,EAAE;CAClG,OACE,qBAAC,OAAD;EAAK,WAAWA,yBAAI;EAApB,UAAA,CACE,oBAAC,qBAAD;GAAqB,OAAM;GAAO,QAAQ;GACxC,UAAA,qBAAC,UAAD;IAAgB;IAAM,QAAQ;KAAE,KAAK;KAAG,OAAO;KAAG,QAAQ;KAAG,MAAM;IAAE;IAAG,gBAAe;IAAvF,UAAA;KACE,oBAAC,eAAD;MAAe,UAAU;MAAO,QAAO;MAAqB,eAAe;MAAK,iBAAgB;KAAO,CAAA;KACvG,oBAAC,OAAD;MACE,SAAQ;MACR,UAAU;MACV,UAAU;MACV,OAAO;OAAC;OAAG;OAAG;OAAI;MAAE;MACpB,gBAAgB,MAAc,GAAG,EAAE;MACnC,UAAU;MACV,QAAO;KACR,CAAA;KACD,oBAAC,OAAD,EAAO,MAAA,KAAM,CAAA;KACb,oBAACC,WAAD;MAAS,SAAS,oBAAC,cAAD,CAAe,CAAA;MAAG,QAAQ,EAAE,MAAM,wCAAwC;KAAI,CAAA;KAChG,oBAAC,KAAD;MAAK,SAAQ;MAAQ,SAAQ;MAAI,MAAK;KAAkB,CAAA;KACxD,oBAAC,KAAD;MAAK,SAAQ;MAAS,SAAQ;MAAI,MAAK;MAAiB,QAAQ;OAAC;OAAG;OAAG;OAAG;MAAC;KAAI,CAAA;IACvE;;EACS,CAAA,GACrB,qBAAC,OAAD;GAAK,WAAWD,yBAAI;GAApB,UAAA,CACE,qBAAC,QAAD,EAAA,UAAA,CAAM,oBAAC,KAAD,EAAG,WAAWA,yBAAI,YAAc,CAAA,GAAC,IAAQ,EAAA,CAAA,GAC/C,qBAAC,QAAD,EAAA,UAAA,CAAM,oBAAC,KAAD,EAAG,WAAWA,yBAAI,aAAe,CAAA,GAAC,IAAQ,EAAA,CAAA,CAC7C;EACF,CAAA,CAAA;;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA,eAAe,UAAa,KAAyB;CACnD,MAAM,MAAM,MAAM,MAAM,GAAG;CAC3B,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,QAAQ,IAAI,QAAQ;CACjD,OAAO,MAAM,IAAI,KAAK;AACxB;;AAGA,MAAM,UAAU,IAAI,cAAqB,CAAC,CAAC;AAE3C,SAAS,UAAU,EAAE,OAAO,QAAqD;CAC/E,IAAI,KAAK,WAAW,GAAG,OAAO;CAC9B,OACE,qBAAC,WAAD,EAAA,UAAA,CACE,oBAAC,MAAD;EAAI,WAAWE,8BAAI;EAAe,UAAA;CAAU,CAAA,GAC3C,KAAK,KAAK,CAAC,MAAM,OAChB,qBAAC,OAAD;EAAgB,WAAWA,8BAAI;EAA/B,UAAA;GACE,oBAAC,QAAD;IAAM,WAAWA,8BAAI;IAAU,UAAA;GAAW,CAAA;GAC1C,oBAAC,QAAD,EAAA,UAAO,aAAa,SAAS,CAAC,CAAC,EAAQ,CAAA;GACvC,qBAAC,QAAD;IAAM,WAAWA,8BAAI;IAArB,UAAA,CAAgC,EAAE,OAAM,IAAQ;;EAC7C;CAJK,GAAA,IAIL,CACN,CACM,EAAA,CAAA;AAEb;AAEA,SAAgB,WAAW,EAAE,MAAM,SAAS,eAA2C;CAGrF,OACE,oBAAC,OAAD;EAAa;EAAe;EAAS,OAAM;EAAW,YAAW;EAAK,WAAWA,8BAAI;EAClF,UAAA,QAAQ,oBAAC,gBAAD,EAAgB,aAAa,eAAe,KAAO,CAAA;CACvD,CAAA;AAEX;AAEA,SAAS,eAAe,EAAE,eAA0D;CAClF,MAAM,CAAC,KAAK,UAAU,SAAc,gBAAgB,OAAO,aAAa,KAAK;;CAE7E,MAAM,CAAC,MAAM,WAAW,SAAwB,WAAW;;CAE3D,MAAM,QAAQ,mBACN,UAAwB,4CAA4C,GAC1E,CAAC,CAAC;CACJ,MAAM,QAAQ,MAAM,MAAM,SAAS,OAAO,MAAM,MAAM,KAAK,QAAQ,KAAA;;CAEnE,MAAM,UAAU,QAAQ;;CAExB,MAAM,MAAM,mBAA+B;EACzC,IAAI,YAAY,KAAA,GAAW,OAAO;EAClC,OAAO,UAAsB,2CAA2C,SAAS;CACnF,GAAG,CAAC,OAAO,CAAC;CAEZ,MAAM,SAAS,YAAY,KAAA,KAAa,IAAI,MAAM,SAAS,OAAO,IAAI,MAAM,KAAK,SAAS,KAAA;CAC1F,MAAM,MAAM,WAAW,KAAA,IAAY,OAAO,aAAa,OAAO,MAAM;CAEpE,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EAAK,WAAWA,8BAAI;EAAM,MAAK;EAA/B,UAAA,CACE,oBAAC,UAAD;GAAQ,MAAK;GAAS,MAAK;GAAM,iBAAe,QAAQ;GACtD,WAAW,QAAQ,aAAa,GAAGA,8BAAI,IAAI,GAAGA,8BAAI,cAAcA,8BAAI;GACpE,eAAe;IAAE,OAAO,UAAU;GAAE;GAAG,UAAA;EAAU,CAAA,GACnD,oBAAC,UAAD;GAAQ,MAAK;GAAS,MAAK;GAAM,iBAAe,QAAQ;GACtD,WAAW,QAAQ,QAAQ,GAAGA,8BAAI,IAAI,GAAGA,8BAAI,cAAcA,8BAAI;GAC/D,eAAe;IAAE,OAAO,KAAK;GAAE;GAAG,UAAA;EAAU,CAAA,CAC3C;CACJ,CAAA,GAAA,QAAQ,aACP,qBAAA,UAAA,EAAA,UAAA;EACG,MAAM,MAAM,SAAS,aAAa,oBAAC,KAAD,EAAA,UAAG,OAAO,CAAA;EAC5C,MAAM,MAAM,SAAS,WAAW,oBAAC,KAAD,EAAA,UAAG,WAAW,CAAA;EAC9C,MAAM,MAAM,SAAS,QACpB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,MAAD;GAAI,WAAWA,8BAAI;GAAc,UAAA;EAAY,CAAA,GAC7C,oBAAC,iBAAD;GAAiB,OAAO,MAAM,MAAM,KAAK;GAAO,MAAM,MAAM,MAAM,KAAK;EAAO,CAAA,CAC9E,EAAA,CAAA;CAEJ,EAAA,CAAA,IAEF,qBAAA,UAAA,EAAA,UAAA;EACG,YAAY,KAAA,KACX,qBAAC,OAAD;GAAK,WAAWA,8BAAI;GAApB,UAAA;IACE,oBAAC,UAAD;KAAQ,MAAK;KAAS,WAAWA,8BAAI;KAAa,cAAW;KAAM,eAAe;MAAE,QAAQ,UAAU,SAAS,EAAE,CAAC;KAAE;KAAG,UAAA;IAAS,CAAA;IAChI,oBAAC,QAAD;KAAM,WAAWA,8BAAI;KAAY,UAAA;IAAc,CAAA;IAC/C,oBAAC,UAAD;KAAQ,MAAK;KAAS,WAAWA,8BAAI;KAAa,cAAW;KAAM,UAAU,UAAU,KAAA,KAAa,UAAU,SAAS,CAAC,IAAI;KAC1H,eAAe;MAAE,QAAQ,UAAU,SAAS,CAAC,CAAC;KAAE;KAAG,UAAA;IAAS,CAAA;GAC3D;;EAEN,IAAI,MAAM,SAAS,aAAa,oBAAC,KAAD,EAAA,UAAG,OAAO,CAAA;EAC1C,IAAI,MAAM,SAAS,WAAW,oBAAC,KAAD,EAAA,UAAG,WAAW,CAAA;EAC5C,WAAW,KAAA,KACV,qBAAA,UAAA,EAAA,UAAA;GACE,oBAAC,eAAD,EAAuB,OAAS,CAAA;GAChC,qBAAC,KAAD;IAAG,WAAWA,8BAAI;IAAlB,UAAA;KAAyB;KACjB,aAAa,SAAS,OAAO,MAAM,CAAC;KAAE;KAAI,OAAO,OAAO;KAAM;KACnE,OAAO,OAAO,YAAY,KAAK,QAAQ,aAAa,OAAO,OAAO,SAAS,EAAE;KAC7E,QAAQ,QAAQ,UAAU,KAAK,MAAM,MAAM,GAAG,EAAE;KAChD,OAAO,OAAO,UAAU,KAAK;IAC7B;;GACH,oBAAC,WAAD;IAAW,OAAM;IAAM,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC;GAAI,CAAA;GAC9G,oBAAC,WAAD;IAAW,OAAM;IAAM,MAAM,OAAO,QAAQ,OAAO,SAAS,CAAC,CAAC,MAAM,GAAG,MAAM,SAAS,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC;GAAI,CAAA;GAC/G,OAAO,WAAW,QAAQ,KACzB,qBAAC,KAAD;IAAG,WAAWA,8BAAI;IAAlB,UAAA;KAA8B;KAAO,aAAa,SAAS,OAAO,UAAU,CAAC;KAAE;KAAI,OAAO,WAAW;KAAM;IAAK;;EAElH,EAAA,CAAA;CAEJ,EAAA,CAAA,CAEJ,EAAA,CAAA;AAEN;;;AC3HA,MAAM,eAAe,mBAAmB;CACtC,IAAI;CACJ,OAAO;CACP,MAAM,oBAAC,mBAAD,EAAmB,MAAM,GAAK,CAAA;CACpC,OAAO;CACP,cAAc,MAAM,oBAAC,YAAD,EAAY,GAAI,EAAI,CAAA;AAC1C,CAAC;;AAGD,SAAgB,WAAW,OAAyD;CAClF,OAAO,oBAAC,cAAD,EAAc,MAAM,MAAM,KAAO,CAAA;AAC1C;;;ACdA,SAAgB,iBAAiB,KAAoB;CAEnD,IAAI,MAAM,OAAO,+BACf,IAAI,MAAM,SACR;EAAE,MAAM;EAAyB,IAAI;EAA2B,OAAO;CAAE,GACzE,UACF,CAAC;AACL;;;ACTA,MAAa,SAAS,CAAC,OAAO;AAE9B,SAAgB,MAAM,KAAoB;CACxC,IAAI;EACF,iBAAiB,GAAG;CACtB,SAAS,OAAO;EAGd,QAAQ,KAAK,qEAAqE,KAAK;CACzF;AACF"}
|