{"version":3,"sources":["webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./src/components/contactobject.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./src/components/email.js","webpack:///./node_modules/has-tostringtag/shams.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/lodash/maxBy.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/lodash/_createRange.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_baseRange.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/range.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/get.js","webpack:///./src/components/Linkedin.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-vis/es/utils/react-utils.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/d3-voronoi/src/constant.js","webpack:///./node_modules/d3-voronoi/src/point.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-voronoi/src/voronoi.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/react-vis/es/animation.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/threshold/sturges.js","webpack:///./node_modules/d3-array/src/min.js","webpack:///./node_modules/d3-array/src/sum.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/nest.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale/src/nice.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-scale/src/colors.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-scale/src/category10.js","webpack:///./node_modules/d3-scale/src/category20b.js","webpack:///./node_modules/d3-scale/src/category20c.js","webpack:///./node_modules/d3-scale/src/category20.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-scale/src/cubehelix.js","webpack:///./node_modules/d3-scale/src/rainbow.js","webpack:///./node_modules/d3-scale/src/viridis.js","webpack:///./node_modules/react-vis/es/utils/data-utils.js","webpack:///./node_modules/react-vis/es/utils/scales-utils.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/react-vis/es/plot/series/abstract-series.js","webpack:///./node_modules/react-vis/es/theme.js","webpack:///./node_modules/react-vis/es/utils/series-utils.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/react-vis/es/plot/series/arc-series.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/area.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/curve/radial.js","webpack:///./node_modules/d3-shape/src/lineRadial.js","webpack:///./node_modules/d3-shape/src/areaRadial.js","webpack:///./node_modules/d3-shape/src/pointRadial.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/link/index.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/react-vis/es/plot/series/area-series.js","webpack:///./node_modules/react-vis/es/plot/borders.js","webpack:///./node_modules/react-vis/es/plot/chart-label.js","webpack:///./node_modules/react-vis/es/utils/axis-utils.js","webpack:///./node_modules/react-vis/es/plot/circular-grid-lines.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-contour/src/ascending.js","webpack:///./node_modules/d3-contour/src/constant.js","webpack:///./node_modules/d3-contour/src/contains.js","webpack:///./node_modules/d3-contour/src/noop.js","webpack:///./node_modules/d3-contour/src/contours.js","webpack:///./node_modules/d3-contour/src/area.js","webpack:///./node_modules/d3-contour/src/blur.js","webpack:///./node_modules/d3-contour/src/density.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-geo/src/adder.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/react-vis/es/plot/series/contour-series.js","webpack:///./node_modules/d3-array/src/max.js","webpack:///./node_modules/react-vis/es/plot/crosshair.js","webpack:///./node_modules/react-vis/es/plot/series/custom-svg-series.js","webpack:///./node_modules/react-vis/es/plot/axis/decorative-axis-ticks.js","webpack:///./node_modules/react-vis/es/plot/axis/decorative-axis.js","webpack:///./node_modules/react-vis/es/plot/gradient-defs.js","webpack:///./node_modules/react-vis/es/plot/grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/heatmap-series.js","webpack:///./node_modules/d3-hexbin/src/hexbin.js","webpack:///./node_modules/react-vis/es/plot/series/hexbin-series.js","webpack:///./node_modules/react-vis/es/plot/highlight.js","webpack:///./node_modules/react-vis/es/plot/hint.js","webpack:///./node_modules/react-vis/es/plot/series/bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/horizontal-grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/horizontal-rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/label-series.js","webpack:///./node_modules/react-vis/es/plot/series/line-series.js","webpack:///./node_modules/react-vis/es/plot/series/mark-series.js","webpack:///./node_modules/react-vis/es/plot/series/line-mark-series.js","webpack:///./node_modules/react-vis/es/plot/series/mark-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/line-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/line-mark-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/series/polygon-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-bar-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-bar-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/vertical-grid-lines.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-rect-series.js","webpack:///./node_modules/react-vis/es/plot/series/vertical-rect-series-canvas.js","webpack:///./node_modules/react-vis/es/plot/voronoi.js","webpack:///./node_modules/react-vis/es/plot/series/whisker-series.js","webpack:///./node_modules/react-vis/es/utils/chart-utils.js","webpack:///./node_modules/react-vis/es/plot/series/canvas-wrapper.js","webpack:///./node_modules/react-vis/es/plot/xy-plot.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-line.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-ticks.js","webpack:///./node_modules/react-vis/es/plot/axis/axis-title.js","webpack:///./node_modules/react-vis/es/plot/axis/axis.js","webpack:///./node_modules/react-vis/es/plot/axis/x-axis.js","webpack:///./node_modules/react-vis/es/plot/axis/y-axis.js","webpack:///./node_modules/react-vis/es/legends/continuous-color-legend.js","webpack:///./node_modules/react-vis/es/legends/continuous-size-legend.js","webpack:///./node_modules/react-vis/es/legends/discrete-color-legend-item.js","webpack:///./node_modules/react-vis/es/legends/discrete-color-legend.js","webpack:///./node_modules/react-vis/es/legends/searchable-discrete-color-legend.js","webpack:///./node_modules/react-vis/es/parallel-coordinates/index.js","webpack:///./node_modules/react-vis/es/radar-chart/index.js","webpack:///./node_modules/react-vis/es/radial-chart/index.js","webpack:///./node_modules/d3-sankey/src/align.js","webpack:///./node_modules/d3-sankey/src/constant.js","webpack:///./node_modules/d3-sankey/src/sankey.js","webpack:///./node_modules/d3-sankey/src/sankeyLinkHorizontal.js","webpack:///./node_modules/react-vis/es/sankey/sankey-link.js","webpack:///./node_modules/react-vis/es/sankey/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/round.js","webpack:///./node_modules/d3-hierarchy/src/treemap/dice.js","webpack:///./node_modules/d3-hierarchy/src/partition.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack:///./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack:///./node_modules/react-vis/es/sunburst/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/slice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack:///./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack:///./node_modules/d3-hierarchy/src/array.js","webpack:///./node_modules/d3-hierarchy/src/pack/enclose.js","webpack:///./node_modules/d3-hierarchy/src/pack/siblings.js","webpack:///./node_modules/d3-hierarchy/src/accessors.js","webpack:///./node_modules/d3-hierarchy/src/constant.js","webpack:///./node_modules/d3-hierarchy/src/pack/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/index.js","webpack:///./node_modules/react-vis/es/treemap/treemap-leaf.js","webpack:///./node_modules/react-vis/es/treemap/treemap-dom.js","webpack:///./node_modules/react-vis/es/treemap/treemap-svg.js","webpack:///./node_modules/react-vis/es/treemap/index.js","webpack:///./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack:///./node_modules/d3-hierarchy/src/treemap/binary.js","webpack:///./node_modules/react-vis/es/make-vis-flexible.js","webpack:///./src/components/graph.js","webpack:///./src/components/cta.js","webpack:///./src/components/articleContent.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/_baseToString.js"],"names":["assocIndexOf","module","exports","key","this","__data__","baseProperty","basePropertyDeep","isKey","toKey","path","baseGetTag","isObjectLike","value","baseIsArguments","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","arguments","call","ListCache","Map","MapCache","data","pairs","length","LARGE_ARRAY_SIZE","push","size","set","_interopRequire","obj","__esModule","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","toStr","toString","str","isArgs","callee","setCacheAdd","setCacheHas","SetCache","values","index","add","has","slice","Array","origKeys","keys","keysShim","o","originalKeys","shim","args","object","numberIsNaN","a","b","$exec","isRegexMarker","badStringifier","callBound","hasToStringTag","throwRegexMarker","valueOf","Symbol","toPrimitive","$toString","gOPD","getOwnPropertyDescriptor","descriptor","e","coreJsData","funcToString","Function","func","ContactObject","props","className","map","document","showBioPage","to","slug","style","color","itemScope","itemType","itemProp","Tag","borderColor","fluid","image","childImageSharp","name","position","href","Social","target","email","baseGet","memoize","resolver","TypeError","memoized","apply","cache","get","result","Cache","isStandardArguments","toStringTag","isLegacyArguments","supportsStandardArguments","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","clear","entry","castPath","isArray","isIndex","isLength","hasFunc","stringToPath","define","callBind","implementation","getPolyfill","flagsBound","Ctor","constructor","undefined","arrayLikeKeys","baseKeys","isArrayLike","forEach","hasSymbols","concat","origDefineProperty","defineProperty","supportsDescriptors","_","enumerable","x","arePropertyDescriptorsSupported","predicate","fn","configurable","writable","defineProperties","predicates","getOwnPropertySymbols","i","isSymbol","reIsDeepProp","reIsPlainProp","type","test","isPrototype","nativeKeys","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","getPrototypeOf","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","iterator","Atomics","BigInt","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Error","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Math","Number","parseFloat","parseInt","Promise","Proxy","RangeError","ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","LEGACY_ALIASES","bind","hasOwn","$concat","$spliceApply","splice","$replace","replace","$strSlice","rePropName","reEscapeChar","string","first","last","match","number","quote","subString","getBaseIntrinsic","allowMissing","alias","intrinsicName","doEval","gen","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","nativeObjectToString","symToStringTag","tag","unmasked","Email","xmlns","fill","stroke","viewBox","d","array","offset","isObject","baseIsNative","getValue","stubFalse","freeExports","nodeType","freeModule","Buffer","root","isBuffer","getDay","tryDateObject","uid","maskSrcKey","exec","IE_PROTO","sym","symObj","getOwnPropertyNames","syms","baseExtremum","baseGt","baseIteratee","iteratee","baseIsEqual","hasIn","isStrictComparable","matchesStrictComparable","srcValue","objValue","COMPARE_PARTIAL_FLAG","memoizeCapped","charCodeAt","getMapData","eq","equalArrays","mapToArray","setToArray","symbolProto","symbolValueOf","other","bitmask","customizer","equalFunc","stack","byteLength","byteOffset","buffer","message","convert","isPartial","stacked","TypeErr","regex","polyfill","proto","baseRange","isIterateeCall","toFinite","fromRight","start","end","step","getNative","nativeCreate","freeGlobal","freeSelf","self","noWobble","stiffness","damping","gentle","wobbly","stiff","resIndex","isFunction","arrayFilter","stubArray","nativeGetSymbols","getSymbols","symbol","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","getRawTag","objectToString","GetIntrinsic","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","applyBind","isKeyable","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","resolve","ctorString","nativeCeil","ceil","nativeMax","max","reWhitespace","charAt","n","origSymbol","hasSymbolSham","flags","dotAll","overArg","$indexOf","$Object","global","ignoreCase","multiline","unicode","sticky","is","range","createRange","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","webpackPolyfill","deprecate","paths","children","l","ret","toNumber","baseIsMatch","getMatchData","source","matchData","ERROR_MESSAGE","that","bound","binder","boundLength","boundArgs","join","Empty","pop","baseTimes","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","getNanoSeconds","hrtime","loadTime","performance","now","process","hr","getTime","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","baseToString","comparator","current","computed","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","Stack","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objectKeys","isRegex","isDate","deepEqual","actual","expected","options","opts","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","sort","objEquiv","copy","arrayPush","keysFunc","symbolsFunc","secondPerFrame","v","destX","k","precision","newV","newX","abs","reusedTuple","stackClear","stackDelete","stackGet","stackHas","stackSet","baseHasIn","hasPath","trimmedEndIndex","reTrimStart","currentStyle","currentVelocity","styleValue","val","transform","arg","noCustomizer","freeProcess","types","require","binding","defaultValue","LinkedIn","arraySome","cacheHas","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_extends","assign","_createClass","Constructor","protoProps","staticProps","_interopRequireDefault","_mapToZero2","_stripStyle2","_stepper4","_mergeDiff2","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","rehydrateStyles","mergedPropsStyles","unreadPropStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","j","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","destStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newCurrentStyles","newCurrentVelocities","newLastIdealStyles","newLastIdealVelocities","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","_React$Component","_this","instance","_classCallCheck","unmounting","animationID","prevTime","accumulatedTime","clearUnreadPropStyle","_mergeAndSync","state","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","unreadPropStyle","dirty","setState","startAnimationIfNecessary","timestamp","propStyles","styles","shouldStopAnimationAll","currentTime","timeDelta","currentFrameCompletion","floor","framesToCatchUp","_mergeAndSync2","newMergedPropsStyle","newCurrentStyle","newCurrentVelocity","newLastIdealStyle","newLastIdealVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","subClass","superClass","create","setPrototypeOf","_inherits","defaultStyles","arrayOf","shape","isRequired","any","objectOf","oneOfType","styleThatEntered","_props","defaultStyleCell","s","_mergeAndSync3","componentDidMount","componentWillReceiveProps","componentWillUnmount","cancel","render","hydratedStyles","renderedChildren","Children","only","Component","prev","next","onRemove","prevKeyIndex","nextKeyIndex","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_React$version$split2","arr","_arr","_n","_d","_e","_s","_i","done","err","sliceIterator","_slicedToArray","version","split","major","minor","versionHigherThanThirteen","getDOMNode","ref","USED_MESSAGES","HIDDEN_PROCESSES","warning","onlyShowMessageOnce","console","warn","baseGetAllKeys","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","isString","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","config","defaultConfig","_presets2","_state","someDirty","destStyle","baseMatches","baseMatchesProperty","identity","property","win","baseIsEqualDeep","reIsUint","wasAnimating","lastIdealStyle","lastIdealVelocity","propsStyle","onRest","defaultStyle","RedBlackTree","RedBlackNode","node","U","C","L","R","P","N","RedBlackRotateLeft","tree","p","q","parent","RedBlackRotateRight","RedBlackFirst","insert","after","grandpa","uncle","remove","sibling","red","left","right","createEdge","v0","v1","edge","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","x0","y0","x1","y1","r","ax","ay","t0","t1","dx","dy","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","va","vb","atan2","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","y","arc","cy","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","by","cx","epsilon2","ha","hc","circle","sqrt","before","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","previous","disappearing","epsilon","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","Infinity","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","extent","m","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","cover","d2","dc","v00","v01","v11","v10","clipCells","edges","polygons","polygon","triangles","s0","c","e1","s1","links","filter","find","radius","i0","i1","_found","vx","vy","v2","voronoi","round","constant","factory","extend","definition","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","trim","toLowerCase","rgbn","Rgb","rgba","hsla","NaN","g","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","min","h","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","basis","v3","t2","t3","channels","displayable","hex","formatHsl","brighter","pow","darker","linear","t","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","colors","isNumberArray","isView","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","lastIndex","one","numberArray","ANIMATION_PROPTYPES","nonAnimatedProps","bool","extractAnimatedPropValues","animatedProps","otherProps","indexOf","_objectWithoutProperties","reduce","animatedPropName","_PureComponent","Animation","_possibleConstructorReturn","_motionEndHandler","onEnd","_renderChildren","_ref","interpolator","_interpolator","child","interpolatedProps","_data","row","correspondingCell","cloneElement","_animation","random","_updateInterpolator","onStart","oldProps","newProps","animationStyle","getAnimationStyle","animation","createElement","displayName","AnimationPropType","f","compare","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","bisect","valueof","stop","e10","e5","e2","reverse","ticks","count","tickIncrement","power","log","LN10","error","tickStep","step0","step1","LN2","sum","each","empty","_sortValues","_rollup","nest","_sortKeys","depth","createResult","setResult","keyValue","valuesByKey","createObject","setObject","createMap","setMap","_entries","sortKey","sortKeys","order","sortValues","rollup","implicit","ordinal","domain","unknown","scale","unit","deinterpolateLinear","bimap","deinterpolate","reinterpolate","d0","d1","r0","r1","polymap","interpolate","clamp","continuous","piecewise","output","input","rescale","deinterpolateClamp","invert","reinterpolateClamp","rangeRound","re","formatSpecifier","specifier","FormatSpecifier","align","sign","zero","width","comma","formatDecimalParts","toExponential","coefficient","prefixExponent","exponent","toFixed","toLocaleString","toPrecision","_p","formatRounded","toUpperCase","_x","prefixes","group","locale","grouping","thousands","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","prefix","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","padding","formatPrefix","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","interval","pow10","powp","base","E","exp","logp","log10","log2","reflect","raise","newInterval","floori","offseti","field","date","every","setMonth","setHours","setFullYear","getFullYear","setDate","getMonth","weekday","getDate","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","getUTCSeconds","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","u","parseWeekNumberSunday","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","day","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","week","parse","X","utcParse","formatLocale","calendar","year","month","hour","minute","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickIntervals","tickInterval","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","deg2rad","PI","rad2deg","A","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","hue","cubehelixGamma","cubehelix","cosh","cos","sinh","sin","cubehelixLong","ramp","transformValueToString","toDateString","_SCALE_FUNCTIONS","_toConsumableArray","arr2","from","_defineProperty","SCALE_FUNCTIONS","pointish","paddingOuter","paddingInner","band","bandwidth","ordinalRange","literalScale","logs","pows","XYPLOT_ATTR","toTitleCase","getScaleFnFromScaleObject","scaleObject","modDomain","_scale$range","_scale$range2","lower","upper","addInvertFunctionToOrdinalScaleObject","getDomainByAccessor","allData","accessor","accessor0","value0","_isDefined","_createScaleObjectForValue","attr","distance","baseValue","isValue","_getScaleDistanceAndAdjustedDomain","_normalizeValues","setOfValues","getUniquePropertyValues","scaleFn","nextValue","currentValue","nextDistance","_getSmallestDistanceIndex","adjustedDomain","_computeLeftDomainAdjustment","_computeRightDomainAdjustment","bestDistIndex","_computeScaleDistance","domain0","domainN","getScaleObjectFromProps","fallbackValue","_props$","_props$2","noFallBack","_props$3","_props$4","addValueToArray","_collectScaleObjectFromProps","_props$_adjustBy","_adjustBy","adjustBy","_props$_adjustWhat","_adjustWhat","_isScaleAdjustmentPossible","_adjustCategoricalScale","allSeriesData","_allData","_props$_adjustWhat2","adjustWhat","domainLength","scaleDomain0","scaleDomainN","scaleDistance","_getScaleDistanceAndA","_adjustContinuousScale","getAttributeScale","_getAttrValue","getAttributeFunctor","getAttr0Functor","_scaleObject$baseValu","getAttributeValue","getScalePropTypesByAttribute","_ref2","oneOf","extractScalePropsFromProps","attributes","isPlainSet","isUnderscoreSet","usesGet","getMissingScaleProps","_domain","domainPadding","_padDomain","response","getFontColorFromBackground","background","getXYPlotValues","XYPlotScales","scaleInput","OPTIONAL_SCALE_PROPS_REGS","getOptionalScaleProps","acc","prop","reg","propTypes","height","onValueMouseOver","onValueMouseOut","onValueClick","onValueRightClick","onSeriesMouseOver","onSeriesMouseOut","onSeriesClick","onSeriesRightClick","onNearestX","onNearestXY","AbstractSeries","_temp","_len","_key","_seriesClickHandler","event","_seriesMouseOutHandler","_seriesMouseOverHandler","_seriesRightClickHandler","_valueClickHandler","_this$props","_valueMouseOutHandler","_this$props2","_valueMouseOverHandler","_this$props3","_valueRightClickHandler","_this$props4","_handleNearestXY","_handleNearestX","preventDefault","onParentMouseMove","_props2","_props2$marginTop","marginTop","_props2$marginLeft","marginLeft","evt","nativeEvent","currentTarget","rect","getBoundingClientRect","clientX","clientY","touches","pageX","pageY","clientLeft","top","clientTop","_props3","minDistance","POSITIVE_INFINITY","valueIndex","coordinate","_getXYCoordinateInContainer","xScaleFn","_getAttributeFunctor","item","currentCoordinate","newDistance","innerX","_props4","yScaleFn","foundPoint","voronoiInstance","innerY","defaultProps","DISCRETE_COLOR_RANGE","EXTENDED_DISCRETE_COLOR_RANGE","CONTINUOUS_COLOR_RANGE","SIZE_RANGE","DEFAULT_COLOR","isSeriesChild","getSeriesChildren","toArray","getStackedData","areSomeSeriesStacked","some","series","latestAttrPositions","accumulator","seriesIndex","seriesType","_series$props","_series$props$cluster","cluster","preppedData","angle","seriesHasAngleRadius","prepareData","attr0","baseAttr","dIndex","_extends2","_latestAttrPositions$2","_latestAttrPositions$","prevD","nextD","getSeriesPropsFromChildren","seriesTypesInfo","sameTypeTotal","sameTypeIndex","clusters","collectSeriesTypesInfo","seriesTypeInfo","_colorValue","_opacityValue","getRadialDomain","res","ANIMATED_SERIES_PROPS","getStackParams","_stackBy","valuePosAttr","_props$sameTypeTotal","_props$sameTypeIndex","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","a0","a1","ccw","cw","da","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","x00","y00","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","context","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","kc","lc","centroid","ATTRIBUTES","center","arcClassName","modifyRow","angle0","truedAngle","truedAngle0","_AbstractSeries","ArcSeries","scaleProps","_getAllScaleProps","nextProps","defaultScaleProps","_getDefaultScaleProps","userScaleProps","missingScaleProps","innerWidth","innerHeight","radiusRange","_radiusValue","angleType","_this2","disableSeries","hideSeries","cloneData","radiusDomain","radius0","predefinedClassName","onMouseOver","onMouseOut","onClick","onContextMenu","pointerEvents","arcArg","arcedData","rowStyle","rowClassName","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","point","defined","curve","line","defined0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","pie","arcs","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","linkTarget","link","argv","curveHorizontal","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","tan30","tan30_2","kr","kx","sqrt3","symbols","diamond","square","star","triangle","wye","Basis","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_y","bundle","custom","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","_t0","px","py","Step","_t","stepBefore","stepAfter","stackValue","oz","kz","sz","sij","ki","si","none","yp","yn","s2","sij0","s3","sk","peaks","peak","vi","vj","sums","appearance","bottom","tops","bottoms","AreaSeries","getNull","nullAccessor","_getAttr0Functor","_getAttributeValue","newOpacity","_renderArea","CLASSES","Borders","marginBottom","marginRight","all","requiresSVG","_React$PureComponent","ChartLabel","includeMargin","text","xPos","xPercent","yPos","yPercent","PureComponent","ORIENTATION","TOP","LEFT","RIGHT","BOTTOM","VERTICAL","HORIZONTAL","DIRECTION","getTicksTotalFromSize","getTickValues","tickTotal","tickValues","CircularGridLines","centerX","centerY","_getDefaultProps","rRange","xScale","yScale","hole","ringContains","ring","contains","xi","yi","pj","xj","yj","segmentContains","collinear","cases","threshold","smooth","smoothLinear","contours","tz","contour","holes","callback","fragmentByStart","fragmentByEnd","stitch","startIndex","endIndex","isorings","coordinates","xt","yt","_0","_1","thresholds","blurX","sr","blurY","defaultX","defaultY","defaultWeight","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","Feature","FeatureCollection","features","Sphere","sphere","Point","MultiPoint","LineString","streamLine","MultiLineString","Polygon","streamPolygon","MultiPolygon","GeometryCollection","geometries","closed","polygonStart","polygonEnd","Adder","reset","_add","temp","adder","bv","av","atan","areaSum","areaRingSum","areaStream","areaRingStart","areaRingEnd","areaPointFirst","areaPoint","bounds","X0","Y0","Z0","X1","Y1","Z1","X2","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_radius","pointRadius","lengthRing","lengthSum","lengthStream","lengthPointFirst","lengthPoint","PathString","_string","_circle","ContourSeries","colorRange","contouredData","weight","density","values0","values1","wi","shift","transformPolygon","transformRing","transformPoint","resize","cellSize","geo","projectionStream","contextStream","measure","projection","_getDomain","getDomain","colorScale","defaultTitleFormat","getFirstNonEmptyValue","title","defaultItemsFormat","Crosshair","items","itemsFormat","titleFormat","titleItem","innerLeft","_props$orientation","orientation","innerClassName","box","_renderCrosshairTitle","_renderCrosshairItems","DEFAULT_STYLE","predefinedComponents","points","starPoints","innerAngle","outerAngle","CustomSVGSeries","customComponent","contents","seriesComponent","positionInPixels","innerComponent","defaultType","positionFunctions","propsSize","aggStyle","getInnerComponent","onMouseEnter","onMouseLeave","decorativeAxisTick","axisDomain","numberOfTicks","axisStart","axisEnd","tickValue","tickSize","_generateFit","slope","generateFit","pointSlope","axisScale","slopeVertical","generatePoints","tickAngle","getAxisAngle","tickProps","textProps","textAnchor","DecorativeAxis","DEFAULT_FORMAT","strokeWidth","GradientDefs","direction","GridLines","isVertical","tickXAttr","tickYAttr","_pathProps","pos","pathProps","HeatmapSeries","rectStyle","xDistance","_getScaleDistance","yDistance","attrs","isDomainAdjustmentNeeded","thirdPi","angles","pointX","pointY","HexbinSeries","sizeHexagonsWithCount","xOffset","yOffset","hexbin","binsById","bins","py1","px1","pi2","pj2","px2","py2","id","bin","hexagon","centers","mesh","fragment","hexagonPath","hexes","countDomain","getColorDomain","getLocs","xLoc","offsetX","yLoc","offsetY","Highlight","dragging","brushArea","brushing","startLocX","startLocY","dragArea","enableX","enableY","highlightWidth","highlightHeight","touchWidth","touchHeight","_state2","_state3","_state3$brushArea","clickedOutsideDragX","clickedOutsideDragY","_props5","onBrushStart","onDragStart","drag","_getLocs","startArea","resetDrag","emptyBrush","clickedOutsideDrag","_clickedOutsideDrag","_state4","_props6","onBrushEnd","onDragEnd","noHorizontal","isNulled","_convertAreaToCoordinates","_props7","onBrush","onDrag","_state5","_getLocs2","_getDrawArea","_brushArea","_getDragArea","_this3","_props8","highlightX","highlightY","_state$brushArea","leftPos","topPos","onMouseDown","startBrushing","onMouseMove","onMouseUp","stopBrushing","onTouchEnd","onTouchCancel","onContextMenuCapture","ALIGN","AUTO","LEFT_EDGE","RIGHT_EDGE","BOTTOM_EDGE","TOP_EDGE","BOTTOM_LEFT","BOTTOM_RIGHT","TOP_LEFT","TOP_RIGHT","defaultFormat","Hint","_props$align","horizontal","vertical","_mapOrientationToAlign","_getXCSS","_getYCSS","getAlignStyle","_getAlign","_getAlignStyle","positionClassName","_getAlignClassNames","_getCSSLeft","_getCSSRight","verticalAlign","_getCSSTop","_getCSSBottom","_getPositionInfo2","_getPositionInfo","content","formattedProp","scales","BarSeries","linePosAttr","lineSizeAttr","valueSizeAttr","barWidth","_getStackParams","lineFunctor","valueFunctor","value0Functor","fillFunctor","strokeFunctor","opacityFunctor","halfSpace","_attrs","totalSpaceAvailable","totalSpaceCenter","spacePerBar","barStartingPoint","HorizontalBarSeries","zeroBaseValue","BarSeriesCanvas","ctx","getScaleDistance","totalSpaceStartingPoint","lineSize","fillColor","strokeColor","rowOpacity","linePos","valuePos","valueSize","beginPath","fillStyle","strokeStyle","HorizontalBarSeriesCanvas","renderLayer","HorizontalGridLines","RectSeries","line0Functor","HorizontalRectSeries","RectSeriesCanvas","line0","HorizontalRectSeriesCanvas","getTextAnchor","labelAnchorX","leftOfMiddle","getDominantBaseline","labelAnchorY","aboveMiddle","LabelSeries","allowOffsetToBeReversed","getLabel","rotation","xRange","yRange","xFunctor","yFunctor","markStyle","xVal","yVal","labelRotation","dominantBaseline","textContent","label","STROKE_STYLES","dashed","solid","LineSeries","strokeDasharray","_renderLine","MarkSeries","scalingFunctions","_renderCircle","LineMarkSeries","lineStyle","MarkSeriesCanvas","LineSeriesCanvas","lineWidth","setLineDash","LineMarkSeriesCanvas","generatePath","PolygonSeries","VerticalBarSeries","VerticalGridLines","VerticalRectSeries","NOOP","Voronoi","nodes","onBlur","_onClick","_onMouseUp","_onMouseDown","onHover","polygonStyle","handleTouchEvent","handler","_evt$nativeEvent","elementFromPoint","parentNode","childNodes","getNodeIndex","onTouchStart","onTouchMove","WhiskerSeries","crossBarWidth","whiskerMarkProps","sizeFunctor","valueClickHandler","valueRightClickHandler","valueMouseOverHandler","valueMouseOutHandler","positiveXVariance","xVariance","negativeXVariance","positiveYVariance","yVariance","negativeYVariance","hasXWhiskers","hasYWhiskers","styleAttr","crossBarExtension","rightLineAttrs","leftLineAttrs","rightCrossBarAttrs","leftCrossBarAttrs","upperLineAttrs","lowerLineAttrs","upperCrossBarAttrs","lowerCrossBarAttrs","getInnerDimensions","defaultMargins","margin","marginProps","_marginProps$left","_marginProps$top","_marginProps$right","_marginProps$bottom","getRadialLayoutMargin","marginX","marginY","MarginPropType","DEFAULT_MARGINS","drawLayers","layers","drawIteration","clearRect","layer","_Component","CanvasWrapper","canvas","getContext","pixelRatio","drawChildren","newChildren","oldChildren","childrenShouldAnimate","oldAnimatedProps","newAnimatedProps","drawCycle","setInterval","clearInterval","engageDrawLoop","devicePixelRatio","cleanseData","XYPlot","stackBy","scaleMixins","_getScaleMixins","dontCheckIfEmpty","onDoubleClick","onWheel","nextData","nextScaleMixins","hasTreeStructure","newMixins","oldMixins","checkIfMixinsAreEqual","dimensions","seriesProps","XYPlotValues","dataProps","_getInnerDimensions","colorRanges","opacityType","sizeRange","filteredData","optionalScaleProps","zeroBaseProps","_child$type$getParent","getParentConfig","specifiedDomain","components","componentsToRender","isCanvas","_componentsToRender$","_isPlotEmpty","_getClonedChildComponents","_clickHandler","_doubleClickHandler","_mouseDownHandler","_mouseUpHandler","_mouseMoveHandler","_mouseLeaveHandler","_mouseEnterHandler","_touchMoveHandler","_touchEndHandler","_touchCancelHandler","_wheelHandler","renderCanvasComponents","component","onParentMouseDown","onParentMouseEnter","onParentMouseLeave","onParentMouseUp","onParentTouchMove","_touchStartHandler","onParentTouchStart","AxisLine","lineProps","AxisTicks","_isAxisVertical","tickLabelAngle","_props$tickSizeOuter","tickSizeOuter","_props$tickPadding","tickPadding","labelOffset","_areTicksWrapped","_props2$tickSizeOuter","_props2$tickSizeInner","tickSizeInner","wrap","tickFormatFn","_getTickFormatFn","translateFn","_getTickContainerPropsGetterFn","_getTickLineProps","_getTickLabelProps","labelNode","shouldRenderAsOwnNode","isValidElement","includes","shouldAddProps","containerWidth","tickCount","AxisTitle","outerGroupTransform","_transformation$orien","middle","ADJUSTMENT_FOR_TEXT_SIZE","transformation","innerGroupTransform","defaultAnimatedProps","on0","Axis","_getDefaultAxisProps","attrAxis","hideLine","hideTicks","axisClassName","XAxis","YAxis","startColor","endColor","ContinuousColorLegend","midColor","startTitle","midTitle","endTitle","ContinuousSizeLegend","startSize","endSize","circlesTotal","circles","borderRadius","DiscreteColorLegendItem","disabled","strokeDasharrayStyle","DiscreteColorLegend","onItemClick","onItemMouseEnter","onItemMouseLeave","searchText","searchFn","SearchableDiscreteColorLegend","onSearchChange","searchPlaceholder","onChange","filteredItems","placeholder","getLabels","domains","ParallelCoordinates","brushFilters","hideInnerMostValues","showMarks","axes","sortedDomain","getAxes","lines","rowIndex","withinFilteredRange","mappedData","selectedName","deselectedLineStyle","getLines","labelSeries","labels","xType","yDomain","trigger","colorType","fontSize","strokeOpacity","getCoordinate","axisEndPoint","startingAngle","RadarChart","renderAxesOverPolygons","_ref3","dataPoint","getPolygons","polygonPoints","_ref4","_ref5","dataName","getPolygonPoints","xDomain","fillOpacity","RadialChart","getAngle","getSubLabel","hideRootNode","labelsAboveChildren","labelsRadiusMultiplier","labelsStyle","showLabels","getWedgesToRender","radialDomain","arcProps","radiusNoFallBack","radiusType","defaultMargin","getMaxRadius","accessors","updatedAngle","newLabels","generateLabels","getAngle0","getRadius","getRadius0","subLabel","targetDepth","justify","sourceLinks","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","nodeCenter","weightedSource","weightedTarget","defaultId","defaultNodes","graph","defaultLinks","nodeById","horizontalSource","horizontalTarget","DEFAULT_LINK_COLOR","SankeyLink","onLinkClick","onLinkMouseOver","onLinkMouseOut","ALIGNMENTS","targetLinks","Sankey","hasVoronoi","hideLabels","layout","linkOpacity","nodePadding","nodeWidth","nodesCopy","linksCopy","sankeyInstance","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeBreadths","computeLinkBreadths","ky","columns","resolveCollisions","relaxRightToLeft","relaxLeftToRight","update","nodeId","nodeAlign","nWidth","yType","rects","partition","eachBefore","positionNode","hierarchy","childs","Node","valued","defaultChildren","computeHeight","copyData","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","LISTENERS_TO_OVERWRITE","Sunburst","getSize","partitionFunction","structuredInput","getNodesToRender","labelData","rotateLabels","dontRotateLabel","rotAngle","labelStyle","buildLabels","propName","getColor","phi","squarifyRatio","ratio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","rows","dice","squarify","resquarify","_squarify","B","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","dr","r2","r21","r3","a2","a3","b2","b3","c2","c3","d3","ab","xa","xb","ya","yb","place","intersects","score","packEnclose","aa","ca","sj","pack","enclose","optional","required","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","ANIMATED_PROPS","TreemapLeaf","mode","onLeafClick","onLeafMouseOver","onLeafMouseOut","useCirclePacking","leafStyle","TreemapDOM","nodeProps","TreemapSVG","_nodes$reduce","maxY","minY","maxX","minX","updatedNodes","onSeriesMouseEnter","onSeriesMouseLeave","sizeType","nodeHeight","getCircularNodes","getNonCircularNodes","TREEMAP_TILE_MODES","slicedice","binary","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","_getScaleFns","compatibleProps","Treemap","sortFunction","mappedNodes","packingFunction","tileFn","tile","paddingStack","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","treemapingFunction","renderMode","_getNodesToRender","TreemapElement","resizeSubscribers","timeoutId","debounceEmitResize","clearTimeout","setTimeout","emitResize","cb","subscribeToDebouncedResize","addEventListener","removeSubscriber","removeEventListener","makeFlexible","isWidthFlexible","isHeightFlexible","ResultClass","_onResize","containerElement","offsetHeight","offsetWidth","newHeight","newWidth","_Component$propTypes","cancelSubscription","updatedDimensions","getDisplayName","FlexibleWidthXYPlot","makeHeightFlexible","makeVisFlexible","Graph","_onMouseLeave","crosshairValues","_onNearestX","Crossdata","Data","CrostitleData","crosshairItems","barvalue","GetCrosshairItems","Items","Type","Json_data","itle","Yaxis","strokeLinejoin","whiteSpace","caption","swappedArray","swappedLabel","barHeight","swappedData","swap","fontFamily","fontWeight","pie_data","Label","sub","sublabel","inner","outer","textAlign","CTA","TextColour","link_object","download","publicURL","ArticleContent","Content","backgroundColor","HeaderBackgroundColour","HeaderTitleColour","escapeHtml","aria-hidden","BackgroundColour","Image","inline","StrapiImage","imageInfo","wistia_id","hashedId","playerColor","mp3","src","customAdditionalControls","onPlay","gtag","Location","rel","teaser","DisplayType","TitleColour","Title","skipHtml","Tile_text_pacement","accordian_item","column_item","returnImage","overlayOpacity","buttontext","arrayMap","symbolToString"],"mappings":"gFAAA,IAAIA,EAAe,EAAQ,QAe3BC,EAAOC,QAJP,SAAsBC,GACpB,OAAOH,EAAaI,KAAKC,SAAUF,IAAQ,I,uBCZ7C,IAAIG,EAAe,EAAQ,QACvBC,EAAmB,EAAQ,QAC3BC,EAAQ,EAAQ,QAChBC,EAAQ,EAAQ,QA4BpBR,EAAOC,QAJP,SAAkBQ,GAChB,OAAOF,EAAME,GAAQJ,EAAaG,EAAMC,IAASH,EAAiBG,K,uBC5BpE,IAAIC,EAAa,EAAQ,QACrBC,EAAe,EAAQ,QA2B3BX,EAAOC,QALP,SAAkBW,GAChB,MAAuB,iBAATA,GACXD,EAAaC,IArBF,mBAqBYF,EAAWE,K,uBCzBvC,IAAIC,EAAkB,EAAQ,QAC1BF,EAAe,EAAQ,QAGvBG,EAAcC,OAAOC,UAGrBC,EAAiBH,EAAYG,eAG7BC,EAAuBJ,EAAYI,qBAoBnCC,EAAcN,EAAgB,WAAa,OAAOO,UAApB,IAAsCP,EAAkB,SAASD,GACjG,OAAOD,EAAaC,IAAUK,EAAeI,KAAKT,EAAO,YACtDM,EAAqBG,KAAKT,EAAO,WAGtCZ,EAAOC,QAAUkB,G,uBCnCjB,IAAIG,EAAY,EAAQ,QACpBC,EAAM,EAAQ,QACdC,EAAW,EAAQ,QA+BvBxB,EAAOC,QAhBP,SAAkBC,EAAKU,GACrB,IAAIa,EAAOtB,KAAKC,SAChB,GAAIqB,aAAgBH,EAAW,CAC7B,IAAII,EAAQD,EAAKrB,SACjB,IAAKmB,GAAQG,EAAMC,OAASC,IAG1B,OAFAF,EAAMG,KAAK,CAAC3B,EAAKU,IACjBT,KAAK2B,OAASL,EAAKK,KACZ3B,KAETsB,EAAOtB,KAAKC,SAAW,IAAIoB,EAASE,GAItC,OAFAD,EAAKM,IAAI7B,EAAKU,GACdT,KAAK2B,KAAOL,EAAKK,KACV3B,O,oCC1BT,SAAS6B,EAAgBC,GACvB,OAAOA,GAAOA,EAAIC,WAAaD,EAAa,QAAIA,EAHlDhC,EAAQiC,YAAa,EAMrB,IAAIC,EAAU,EAAQ,QAEtBlC,EAAQmC,OAASJ,EAAgBG,GAEjC,IAAIE,EAAmB,EAAQ,QAE/BpC,EAAQqC,gBAAkBN,EAAgBK,GAE1C,IAAIE,EAAoB,EAAQ,QAEhCtC,EAAQuC,iBAAmBR,EAAgBO,GAE3C,IAAIE,EAAU,EAAQ,QAEtBxC,EAAQyC,OAASV,EAAgBS,GAEjC,IAAIE,EAAW,EAAQ,QAEvB1C,EAAQ2C,QAAUZ,EAAgBW,GAElC,IAAIE,EAAc,EAAQ,QAE1B5C,EAAQ6C,WAAad,EAAgBa,GAErC,IAAIE,EAAe,EAAQ,QAE3B9C,EAAQ+C,YAAchB,EAAgBe,I,qBCZtC/C,EAAOC,QAJP,WACE,MAAO,K,oCCjBT,IAAIgD,EAAQlC,OAAOC,UAAUkC,SAE7BlD,EAAOC,QAAU,SAAqBW,GACpC,IAAIuC,EAAMF,EAAM5B,KAAKT,GACjBwC,EAAiB,uBAARD,EAMb,OAJKC,IACHA,EAAiB,mBAARD,GAAsC,OAAVvC,GAAmC,iBAAVA,GAA8C,iBAAjBA,EAAMe,QAAuBf,EAAMe,QAAU,GAAkC,sBAA7BsB,EAAM5B,KAAKT,EAAMyC,SAGzJD,I,uBCZT,IAAI5B,EAAW,EAAQ,QACnB8B,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QAU1B,SAASC,EAASC,GAChB,IAAIC,GAAS,EACT/B,EAAmB,MAAV8B,EAAiB,EAAIA,EAAO9B,OAGzC,IADAxB,KAAKC,SAAW,IAAIoB,IACXkC,EAAQ/B,GACfxB,KAAKwD,IAAIF,EAAOC,IAKpBF,EAASxC,UAAU2C,IAAMH,EAASxC,UAAUa,KAAOyB,EACnDE,EAASxC,UAAU4C,IAAML,EAEzBvD,EAAOC,QAAUuD,G,oCCxBjB,IAAIK,EAAQC,MAAM9C,UAAU6C,MAExBT,EAAS,EAAQ,QAEjBW,EAAWhD,OAAOiD,KAClBC,EAAWF,EAAW,SAAcG,GACtC,OAAOH,EAASG,IACd,EAAQ,QACRC,EAAepD,OAAOiD,KAE1BC,EAASG,KAAO,WACVrD,OAAOiD,KACoB,WAE3B,IAAIK,EAAOtD,OAAOiD,KAAK5C,WACvB,OAAOiD,GAAQA,EAAK1C,SAAWP,UAAUO,OAHd,CAI3B,EAAG,KAGHZ,OAAOiD,KAAO,SAAcM,GAE1B,OAAIlB,EAAOkB,GACFH,EAAaN,EAAMxC,KAAKiD,IAG1BH,EAAaG,KAIxBvD,OAAOiD,KAAOC,EAGhB,OAAOlD,OAAOiD,MAAQC,GAGxBjE,EAAOC,QAAUgE,G,oCCnCjB,IAAIM,EAAc,SAAqB3D,GACrC,OAAOA,GAAUA,GAGnBZ,EAAOC,QAAU,SAAYuE,EAAGC,GAC9B,OAAU,IAAND,GAAiB,IAANC,EACN,EAAID,GAAM,EAAIC,EAGnBD,IAAMC,MAINF,EAAYC,KAAMD,EAAYE,M,oCCbpC,IAIIb,EACAc,EACAC,EACAC,EAPAC,EAAY,EAAQ,QAEpBC,EAAiB,EAAQ,OAAR,GAOrB,GAAIA,EAAgB,CAClBlB,EAAMiB,EAAU,mCAChBH,EAAQG,EAAU,yBAClBF,EAAgB,GAEhB,IAAII,EAAmB,WACrB,MAAMJ,GAGRC,EAAiB,CACf1B,SAAU6B,EACVC,QAASD,GAGuB,iBAAvBE,OAAOC,cAChBN,EAAeK,OAAOC,aAAeH,GAIzC,IAAII,EAAYN,EAAU,6BACtBO,EAAOrE,OAAOsE,yBAElBrF,EAAOC,QAAU6E,EACf,SAAiBlE,GACjB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,EAGT,IAAI0E,EAAaF,EAAKxE,EAAO,aAG7B,KAF+B0E,GAAc1B,EAAI0B,EAAY,UAG3D,OAAO,EAGT,IACEZ,EAAM9D,EAAOgE,GACb,MAAOW,GACP,OAAOA,IAAMZ,IAEb,SAAiB/D,GAEnB,SAAKA,GAA0B,iBAAVA,GAAuC,mBAAVA,IArBnC,oBAyBRuE,EAAUvE,K,uBCzDnB,IAGI4E,EAHO,EAAQ,QAGG,sBAEtBxF,EAAOC,QAAUuF,G,qBCQjBxF,EAAOC,QAJP,SAAqBW,GACnB,OAAOT,KAAKC,SAASwD,IAAIhD,K,qBCT3B,IAGI6E,EAHYC,SAAS1E,UAGIkC,SAqB7BlD,EAAOC,QAZP,SAAkB0F,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOF,EAAapE,KAAKsE,GACzB,MAAOJ,IACT,IACE,OAAQI,EAAO,GACf,MAAOJ,KAEX,MAAO,K,oCCtBT,kFAgGeK,IAtFO,SAAAC,GACpB,OACI,yBAAKC,UAAU,iBACb,yBAAKA,UAAU,2DACH,OAAfD,EAAMpE,KACPoE,EAAMpE,KAAKsE,KAAI,SAACC,EAAUtC,GAAX,OACfsC,EAASC,YACS,yBAAKH,UAAU,6DACnB,kBAAC,OAAD,CAAOI,GAAE,WAAaF,EAASG,MAC/B,yBAAKL,UAAU,iBAAiBM,MAAO,CAACC,MAAMR,EAAMQ,QAChD,yBAAKP,UAAU,UACb,yBAAKA,UAAU,yDAAyDQ,WAAS,EAACC,SAAS,4BAA4BC,SAAS,UACpH,yBAAKV,UAAU,2EACvB,kBAAC,IAAD,CAAiBW,IAAI,MAAMX,UAAU,iBAAiBM,MAAO,CAACM,YAAYb,EAAMQ,OAAQM,MAAOX,EAASY,MAAMC,gBAAgBF,SAGhI,yBAAKb,UAAU,0EACT,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,+BAA+BU,SAAS,QACvDR,EAASc,MAEX,yBAAKhB,UAAU,oCACZE,EAASe,UAEZ,yBAAKjB,UAAU,6BAa3C,yBAAKA,UAAU,6DACD,yBAAKA,UAAU,iBAAiBM,MAAO,CAACC,MAAMR,EAAMQ,QAChD,yBAAKP,UAAU,UACb,yBAAKA,UAAU,yDAAyDQ,WAAS,EAACC,SAAS,4BAA4BC,SAAS,UAC9H,yBAAKV,UAAU,2EACb,kBAAC,IAAD,CAAiBW,IAAI,MAAMX,UAAU,iBAAiBM,MAAO,CAACM,YAAYb,EAAMQ,OAASM,MAAOX,EAASY,MAAMC,gBAAgBF,SAGjI,yBAAKb,UAAU,0EACT,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,+BAA+BU,SAAS,QACvDR,EAASc,MAEX,yBAAKhB,UAAU,oCACZE,EAASe,UAEZ,yBAAKjB,UAAU,qBACf,yBAAKA,UAAU,gBACf,yBAAKA,UAAU,gCACf,uBAAGkB,KAAMhB,EAASiB,OAAQC,OAAO,UAC/B,kBAAC,IAAD,CAAUb,MAAOR,EAAMQ,UAGzB,yBAAKP,UAAU,gCACf,uBAAGkB,KAAI,UAAYhB,EAASmB,MAASD,OAAO,UAC1C,kBAAC,IAAD,CAAMb,MAAOR,EAAMQ,qBAehD,yC,uBCvFL,IAAIe,EAAU,EAAQ,QAetBpH,EAAOC,QANP,SAA0BQ,GACxB,OAAO,SAAS6D,GACd,OAAO8C,EAAQ9C,EAAQ7D,M,uBCX3B,IAAIe,EAAW,EAAQ,QAiDvB,SAAS6F,EAAQ1B,EAAM2B,GACrB,GAAmB,mBAAR3B,GAAmC,MAAZ2B,GAAuC,mBAAZA,EAC3D,MAAM,IAAIC,UAhDQ,uBAkDpB,IAAIC,EAAW,WACb,IAAInD,EAAOjD,UACPlB,EAAMoH,EAAWA,EAASG,MAAMtH,KAAMkE,GAAQA,EAAK,GACnDqD,EAAQF,EAASE,MAErB,GAAIA,EAAM9D,IAAI1D,GACZ,OAAOwH,EAAMC,IAAIzH,GAEnB,IAAI0H,EAASjC,EAAK8B,MAAMtH,KAAMkE,GAE9B,OADAmD,EAASE,MAAQA,EAAM3F,IAAI7B,EAAK0H,IAAWF,EACpCE,GAGT,OADAJ,EAASE,MAAQ,IAAKL,EAAQQ,OAASrG,GAChCgG,EAITH,EAAQQ,MAAQrG,EAEhBxB,EAAOC,QAAUoH,G,oCCtEjB,IAAIvC,EAAiB,EAAQ,OAAR,GAIjBK,EAFY,EAAQ,OAERN,CAAU,6BAEtBiD,EAAsB,SAAqBlH,GAC7C,QAAIkE,GAAkBlE,GAA0B,iBAAVA,GAAsBqE,OAAO8C,eAAenH,IAItD,uBAArBuE,EAAUvE,IAGfoH,EAAoB,SAAqBpH,GAC3C,QAAIkH,EAAoBlH,IAIP,OAAVA,GAAmC,iBAAVA,GAA8C,iBAAjBA,EAAMe,QAAuBf,EAAMe,QAAU,GAA0B,mBAArBwD,EAAUvE,IAA2D,sBAA5BuE,EAAUvE,EAAMyC,SAGtK4E,EAA4B,WAC9B,OAAOH,EAAoB1G,WADG,GAIhC0G,EAAoBE,kBAAoBA,EAExChI,EAAOC,QAAUgI,EAA4BH,EAAsBE,G,uBC9BnE,IAAIE,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAStB,SAASC,EAAKC,GACZ,IAAI9E,GAAS,EACT/B,EAAoB,MAAX6G,EAAkB,EAAIA,EAAQ7G,OAG3C,IADAxB,KAAKsI,UACI/E,EAAQ/B,GAAQ,CACvB,IAAI+G,EAAQF,EAAQ9E,GACpBvD,KAAK4B,IAAI2G,EAAM,GAAIA,EAAM,KAK7BH,EAAKvH,UAAUyH,MAAQP,EACvBK,EAAKvH,UAAkB,OAAImH,EAC3BI,EAAKvH,UAAU2G,IAAMS,EACrBG,EAAKvH,UAAU4C,IAAMyE,EACrBE,EAAKvH,UAAUe,IAAMuG,EAErBtI,EAAOC,QAAUsI,G,uBC/BjB,IAAII,EAAW,EAAQ,QACnBxH,EAAc,EAAQ,QACtByH,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAW,EAAQ,QACnBtI,EAAQ,EAAQ,QAiCpBR,EAAOC,QAtBP,SAAiBqE,EAAQ7D,EAAMsI,GAO7B,IAJA,IAAIrF,GAAS,EACT/B,GAHJlB,EAAOkI,EAASlI,EAAM6D,IAGJ3C,OACdiG,GAAS,IAEJlE,EAAQ/B,GAAQ,CACvB,IAAIzB,EAAMM,EAAMC,EAAKiD,IACrB,KAAMkE,EAAmB,MAAVtD,GAAkByE,EAAQzE,EAAQpE,IAC/C,MAEFoE,EAASA,EAAOpE,GAElB,OAAI0H,KAAYlE,GAAS/B,EAChBiG,KAETjG,EAAmB,MAAV2C,EAAiB,EAAIA,EAAO3C,SAClBmH,EAASnH,IAAWkH,EAAQ3I,EAAKyB,KACjDiH,EAAQtE,IAAWnD,EAAYmD,M,uBCnCpC,IAAIsE,EAAU,EAAQ,QAClBrI,EAAQ,EAAQ,QAChByI,EAAe,EAAQ,QACvB9F,EAAW,EAAQ,QAiBvBlD,EAAOC,QAPP,SAAkBW,EAAO0D,GACvB,OAAIsE,EAAQhI,GACHA,EAEFL,EAAMK,EAAO0D,GAAU,CAAC1D,GAASoI,EAAa9F,EAAStC,M,oCCfhE,IAAIqI,EAAS,EAAQ,QAEjBC,EAAW,EAAQ,QAEnBC,EAAiB,EAAQ,QAEzBC,EAAc,EAAQ,QAEtBhF,EAAO,EAAQ,QAEfiF,EAAaH,EAASC,GAC1BF,EAAOI,EAAY,CACjBD,YAAaA,EACbD,eAAgBA,EAChB/E,KAAMA,IAERpE,EAAOC,QAAUoJ,G,qBCjBjB,IAAIvI,EAAcC,OAAOC,UAgBzBhB,EAAOC,QAPP,SAAqBW,GACnB,IAAI0I,EAAO1I,GAASA,EAAM2I,YAG1B,OAAO3I,KAFqB,mBAAR0I,GAAsBA,EAAKtI,WAAcF,K,qBCC/Dd,EAAOC,QANP,SAAsBC,GACpB,OAAO,SAASoE,GACd,OAAiB,MAAVA,OAAiBkF,EAAYlF,EAAOpE,M,uBCT/C,IAAIoB,EAAY,EAAQ,QAcxBtB,EAAOC,QALP,WACEE,KAAKC,SAAW,IAAIkB,EACpBnB,KAAK2B,KAAO,I,uBCXd,IAAI2H,EAAgB,EAAQ,QACxBC,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QAkC1B3J,EAAOC,QAJP,SAAcqE,GACZ,OAAOqF,EAAYrF,GAAUmF,EAAcnF,GAAUoF,EAASpF,K,qBChBhEtE,EAAOC,QAVP,SAAoB8F,GAClB,IAAIrC,GAAS,EACTkE,EAAS9D,MAAMiC,EAAIjE,MAKvB,OAHAiE,EAAI6D,SAAQ,SAAShJ,EAAOV,GAC1B0H,IAASlE,GAAS,CAACxD,EAAKU,MAEnBgH,I,oCCZT,IAAI5D,EAAO,EAAQ,QAEf6F,EAA+B,mBAAX5E,QAAkD,iBAAlBA,OAAO,OAC3DhC,EAAQlC,OAAOC,UAAUkC,SACzB4G,EAAShG,MAAM9C,UAAU8I,OACzBC,EAAqBhJ,OAAOiJ,eA2B5BC,EAAsBF,GArBY,WACpC,IAAI9H,EAAM,GAEV,IAME,IAAK,IAAIiI,KALTH,EAAmB9H,EAAK,IAAK,CAC3BkI,YAAY,EACZvJ,MAAOqB,IAGKA,EAEZ,OAAO,EAGT,OAAOA,EAAImI,IAAMnI,EACjB,MAAOsD,GAEP,OAAO,GAIqC8E,GAE5CL,EAAiB,SAAwB1F,EAAQwC,EAAMlG,EAAO0J,GA3BjD,IAAoBC,KA4B/BzD,KAAQxC,IA3BS,mBADciG,EA4BAD,IA3BmB,sBAAnBrH,EAAM5B,KAAKkJ,IA2BID,OAI9CL,EACFF,EAAmBzF,EAAQwC,EAAM,CAC/B0D,cAAc,EACdL,YAAY,EACZvJ,MAAOA,EACP6J,UAAU,IAGZnG,EAAOwC,GAAQlG,IAIf8J,EAAmB,SAA0BpG,EAAQyB,GACvD,IAAI4E,EAAavJ,UAAUO,OAAS,EAAIP,UAAU,GAAK,GACnDyE,EAAQ7B,EAAK+B,GAEb8D,IACFhE,EAAQiE,EAAOzI,KAAKwE,EAAO9E,OAAO6J,sBAAsB7E,KAG1D,IAAK,IAAI8E,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,GAAK,EACrCb,EAAe1F,EAAQuB,EAAMgF,GAAI9E,EAAIF,EAAMgF,IAAKF,EAAW9E,EAAMgF,MAIrEH,EAAiBT,sBAAwBA,EACzCjK,EAAOC,QAAUyK,G,uBCnEjB,IAAII,EAAW,EAAQ,QAoBvB9K,EAAOC,QARP,SAAeW,GACb,GAAoB,iBAATA,GAAqBkK,EAASlK,GACvC,OAAOA,EAET,IAAIgH,EAAUhH,EAAQ,GACtB,MAAkB,KAAVgH,GAAkB,EAAIhH,IAdjB,IAcwC,KAAOgH,I,uBCjB9D,IAAIgB,EAAU,EAAQ,QAClBkC,EAAW,EAAQ,QAGnBC,EAAe,mDACfC,EAAgB,QAuBpBhL,EAAOC,QAbP,SAAeW,EAAO0D,GACpB,GAAIsE,EAAQhI,GACV,OAAO,EAET,IAAIqK,SAAcrK,EAClB,QAAY,UAARqK,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAATrK,IAAiBkK,EAASlK,MAGvBoK,EAAcE,KAAKtK,KAAWmK,EAAaG,KAAKtK,IAC1C,MAAV0D,GAAkB1D,KAASG,OAAOuD,M,qBCzBvC,IAAI6G,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QAMrBnK,EAHcF,OAAOC,UAGQC,eAsBjCjB,EAAOC,QAbP,SAAkBqE,GAChB,IAAK6G,EAAY7G,GACf,OAAO8G,EAAW9G,GAEpB,IAAIsD,EAAS,GACb,IAAK,IAAI1H,KAAOa,OAAOuD,GACjBrD,EAAeI,KAAKiD,EAAQpE,IAAe,eAAPA,GACtC0H,EAAO/F,KAAK3B,GAGhB,OAAO0H,I,kCCxBT,EAAQ,QAGR,IAAIyD,EAAeC,YACfC,EAAY7F,SACZ8F,EAAajE,UAEbkE,EAAwB,SAA+BC,GACzD,IACE,OAAOH,EAAU,yBAA2BG,EAAmB,iBAAxDH,GACP,MAAOhG,MAGPoG,EAAQ5K,OAAOsE,yBAEnB,GAAIsG,EACF,IACEA,EAAM,GAAI,IACV,MAAOpG,GACPoG,EAAQ,KAIZ,IAAIC,EAAiB,WACnB,MAAM,IAAIJ,GAGRK,EAAiBF,EAAQ,WAC3B,IAIE,OAAOC,EACP,MAAOE,GACP,IAEE,OAAOH,EAAMvK,UAAW,UAAUuG,IAClC,MAAOoE,GACP,OAAOH,IAXgB,GAcvBA,EAEF/B,EAAa,EAAQ,OAAR,GAEbmC,EAAWjL,OAAOkL,gBAAkB,SAAU7B,GAChD,OAAOA,EAAE8B,WAIPC,EAAY,GACZC,EAAmC,oBAAfC,gBAjDpB7C,EAiD6DwC,EAASK,YACtEC,EAAa,CACf,mBAA8C,oBAAnBC,oBAnDzB/C,EAmDsE+C,eACxE,UAAWzI,MACX,gBAAwC,oBAAhB0I,iBArDtBhD,EAqDgEgD,YAClE,2BAA4B3C,EAAamC,EAAS,GAAG/G,OAAOwH,kBAtD1DjD,EAuDF,wCAvDEA,EAwDF,kBAAmB2C,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZO,aA5DlBlD,EA4DwDkD,QAC1D,WAA8B,oBAAXC,YA7DjBnD,EA6DsDmD,OACxD,YAAaC,QACb,aAAkC,oBAAbC,cA/DnBrD,EA+D0DqD,SAC5D,SAAUC,KACV,cAAeC,UACf,uBAAwBC,mBACxB,cAAeC,UACf,uBAAwBC,mBACxB,UAAWC,MACX,SAAUC,KAEV,cAAeC,UACf,iBAA0C,oBAAjBC,kBAzEvB9D,EAyEkE8D,aACpE,iBAA0C,oBAAjBC,kBA1EvB/D,EA0EkE+D,aACpE,yBAA0D,oBAAzBC,0BA3E/BhE,EA2EkFgE,qBACpF,aAAcjC,EACd,sBAAuBY,EACvB,cAAoC,oBAAdsB,eA9EpBjE,EA8E4DiE,UAC9D,eAAsC,oBAAfC,gBA/ErBlE,EA+E8DkE,WAChE,eAAsC,oBAAfC,gBAhFrBnE,EAgF8DmE,WAChE,aAAcC,SACd,UAAWC,MACX,sBAAuBhE,EAAamC,EAASA,EAAS,GAAG/G,OAAOwH,mBAnF9DjD,EAoFF,SAA0B,iBAATsE,KAAoBA,UApFnCtE,EAqFF,QAAwB,oBAARjI,SArFdiI,EAqFgDjI,IAClD,yBAAyC,oBAARA,KAAwBsI,EAAyBmC,GAAS,IAAIzK,KAAM0D,OAAOwH,kBAtF1GjD,EAuFF,SAAUuE,KACV,WAAYC,OACZ,WAAYjN,OACZ,eAAgBkN,WAChB,aAAcC,SACd,YAAgC,oBAAZC,aA5FlB3E,EA4FwD2E,QAC1D,UAA4B,oBAAVC,WA7FhB5E,EA6FoD4E,MACtD,eAAgBC,WAChB,mBAAoBC,eACpB,YAAgC,oBAAZC,aAhGlB/E,EAgGwD+E,QAC1D,WAAYC,OACZ,QAAwB,oBAARC,SAlGdjF,EAkGgDiF,IAClD,yBAAyC,oBAARA,KAAwB5E,EAAyBmC,GAAS,IAAIyC,KAAMxJ,OAAOwH,kBAnG1GjD,EAoGF,sBAAoD,oBAAtBkF,uBApG5BlF,EAoG4EkF,kBAC9E,WAAYC,OACZ,4BAA6B9E,EAAamC,EAAS,GAAG/G,OAAOwH,kBAtG3DjD,EAuGF,WAAYK,EAAa5E,YAvGvBuE,EAwGF,gBAAiB6B,EACjB,mBAAoBQ,EACpB,eAAgBO,EAChB,cAAeZ,EACf,eAAsC,oBAAfa,gBA5GrB7C,EA4G8D6C,WAChE,sBAAoD,oBAAtBuC,uBA7G5BpF,EA6G4EoF,kBAC9E,gBAAwC,oBAAhBC,iBA9GtBrF,EA8GgEqF,YAClE,gBAAwC,oBAAhBC,iBA/GtBtF,EA+GgEsF,YAClE,aAAcC,SACd,YAAgC,oBAAZC,aAjHlBxF,EAiHwDwF,QAC1D,YAAgC,oBAAZC,aAlHlBzF,EAkHwDyF,QAC1D,YAAgC,oBAAZC,aAnHlB1F,EAmHwD0F,SA8BxDC,EAAiB,CACnB,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAGhCC,EAAO,EAAQ,QAEfC,EAAS,EAAQ,QAEjBC,EAAUF,EAAK/N,KAAKqE,SAASrE,KAAMyC,MAAM9C,UAAU8I,QACnDyF,EAAeH,EAAK/N,KAAKqE,SAAS+B,MAAO3D,MAAM9C,UAAUwO,QACzDC,EAAWL,EAAK/N,KAAKqE,SAASrE,KAAMsN,OAAO3N,UAAU0O,SACrDC,EAAYP,EAAK/N,KAAKqE,SAASrE,KAAMsN,OAAO3N,UAAU6C,OAGtD+L,EAAa,qGACbC,EAAe,WAGf7G,EAAe,SAAsB8G,GACvC,IAAIC,EAAQJ,EAAUG,EAAQ,EAAG,GAC7BE,EAAOL,EAAUG,GAAS,GAE9B,GAAc,MAAVC,GAA0B,MAATC,EACnB,MAAM,IAAI3E,EAAa,kDAClB,GAAa,MAAT2E,GAA0B,MAAVD,EACzB,MAAM,IAAI1E,EAAa,kDAGzB,IAAIzD,EAAS,GAIb,OAHA6H,EAASK,EAAQF,GAAY,SAAUK,EAAOC,EAAQC,EAAOC,GAC3DxI,EAAOA,EAAOjG,QAAUwO,EAAQV,EAASW,EAAWP,EAAc,MAAQK,GAAUD,KAE/ErI,GAKLyI,EAAmB,SAA0BvJ,EAAMwJ,GACrD,IACIC,EADAC,EAAgB1J,EAQpB,GALIuI,EAAOF,EAAgBqB,KAEzBA,EAAgB,KADhBD,EAAQpB,EAAeqB,IACK,GAAK,KAG/BnB,EAAO/C,EAAYkE,GAAgB,CACrC,IAAI5P,EAAQ0L,EAAWkE,GAMvB,GAJI5P,IAAUuL,IACZvL,EA/HO,SAAS6P,EAAO3J,GAC3B,IAAIlG,EAEJ,GAAa,oBAATkG,EACFlG,EAAQ6K,EAAsB,6BACzB,GAAa,wBAAT3E,EACTlG,EAAQ6K,EAAsB,wBACzB,GAAa,6BAAT3E,EACTlG,EAAQ6K,EAAsB,8BACzB,GAAa,qBAAT3E,EAA6B,CACtC,IAAIyD,EAAKkG,EAAO,4BAEZlG,IACF3J,EAAQ2J,EAAGvJ,gBAER,GAAa,6BAAT8F,EAAqC,CAC9C,IAAI4J,EAAMD,EAAO,oBAEbC,IACF9P,EAAQoL,EAAS0E,EAAI1P,YAKzB,OADAsL,EAAWxF,GAAQlG,EACZA,EAuGK6P,CAAOD,SAGI,IAAV5P,IAA0B0P,EACnC,MAAM,IAAI9E,EAAW,aAAe1E,EAAO,wDAG7C,MAAO,CACLyJ,MAAOA,EACPzJ,KAAM0J,EACN5P,MAAOA,GAIX,MAAM,IAAIyK,EAAa,aAAevE,EAAO,qBAG/C9G,EAAOC,QAAU,SAAsB6G,EAAMwJ,GAC3C,GAAoB,iBAATxJ,GAAqC,IAAhBA,EAAKnF,OACnC,MAAM,IAAI6J,EAAW,6CAGvB,GAAIpK,UAAUO,OAAS,GAA6B,kBAAjB2O,EACjC,MAAM,IAAI9E,EAAW,6CAGvB,IAAImF,EAAQ3H,EAAalC,GACrB8J,EAAoBD,EAAMhP,OAAS,EAAIgP,EAAM,GAAK,GAClDE,EAAYR,EAAiB,IAAMO,EAAoB,IAAKN,GAC5DQ,EAAoBD,EAAU/J,KAC9BlG,EAAQiQ,EAAUjQ,MAClBmQ,GAAqB,EACrBR,EAAQM,EAAUN,MAElBA,IACFK,EAAoBL,EAAM,GAC1BhB,EAAaoB,EAAOrB,EAAQ,CAAC,EAAG,GAAIiB,KAGtC,IAAK,IAAI1F,EAAI,EAAGmG,GAAQ,EAAMnG,EAAI8F,EAAMhP,OAAQkJ,GAAK,EAAG,CACtD,IAAIoG,EAAON,EAAM9F,GACbkF,EAAQJ,EAAUsB,EAAM,EAAG,GAC3BjB,EAAOL,EAAUsB,GAAO,GAE5B,IAAe,MAAVlB,GAA2B,MAAVA,GAA2B,MAAVA,GAA0B,MAATC,GAAyB,MAATA,GAAyB,MAATA,IAAiBD,IAAUC,EACjH,MAAM,IAAI3E,EAAa,wDAUzB,GAPa,gBAAT4F,GAA2BD,IAC7BD,GAAqB,GAMnB1B,EAAO/C,EAFXwE,EAAoB,KADpBF,GAAqB,IAAMK,GACmB,KAG5CrQ,EAAQ0L,EAAWwE,QACd,GAAa,MAATlQ,EAAe,CACxB,KAAMqQ,KAAQrQ,GAAQ,CACpB,IAAK0P,EACH,MAAM,IAAI9E,EAAW,sBAAwB1E,EAAO,+CAGtD,OAGF,GAAI6E,GAASd,EAAI,GAAK8F,EAAMhP,OAAQ,CAClC,IAAIuP,EAAOvF,EAAM/K,EAAOqQ,GAUtBrQ,GATFoQ,IAAUE,IAQG,QAASA,KAAU,kBAAmBA,EAAKvJ,KAC9CuJ,EAAKvJ,IAEL/G,EAAMqQ,QAGhBD,EAAQ3B,EAAOzO,EAAOqQ,GACtBrQ,EAAQA,EAAMqQ,GAGZD,IAAUD,IACZzE,EAAWwE,GAAqBlQ,IAKtC,OAAOA,I,qBCrVT,IAAIqE,EAAS,EAAQ,QAGjBnE,EAAcC,OAAOC,UAGrBC,EAAiBH,EAAYG,eAO7BkQ,EAAuBrQ,EAAYoC,SAGnCkO,EAAiBnM,EAASA,EAAO8C,iBAAcyB,EA6BnDxJ,EAAOC,QApBP,SAAmBW,GACjB,IAAIoQ,EAAQ/P,EAAeI,KAAKT,EAAOwQ,GACnCC,EAAMzQ,EAAMwQ,GAEhB,IACExQ,EAAMwQ,QAAkB5H,EACxB,IAAI8H,GAAW,EACf,MAAO/L,IAET,IAAIqC,EAASuJ,EAAqB9P,KAAKT,GAQvC,OAPI0Q,IACEN,EACFpQ,EAAMwQ,GAAkBC,SAEjBzQ,EAAMwQ,IAGVxJ,I,kCC1CT,yBAae2J,IAVD,SAAA1L,GACZ,OACE,oCACJ,yBAAK2L,MAAM,6BAA6BpL,MAAO,CAAEqL,KAAM5L,EAAMQ,MAAOqL,OAAO7L,EAAMQ,OAAQsL,QAAQ,eAAc,0BAAMC,EAAE,kQ,2DCJvH,IAAI/H,EAAa,EAAQ,QAEzB7J,EAAOC,QAAU,WACf,OAAO4J,OAAkB5E,OAAO8C,c,mBCYlC/H,EAAOC,QAJP,WACE,OAAO,I,mBCKTD,EAAOC,QAXP,SAAmB4R,EAAOpO,GAKxB,IAJA,IAAIC,GAAS,EACT/B,EAAS8B,EAAO9B,OAChBmQ,EAASD,EAAMlQ,SAEV+B,EAAQ/B,GACfkQ,EAAMC,EAASpO,GAASD,EAAOC,GAEjC,OAAOmO,I,qBChBT,IAAIE,EAAW,EAAQ,QAcvB/R,EAAOC,QAJP,SAA4BW,GAC1B,OAAOA,GAAUA,IAAUmR,EAASnR,K,qBCXtC,IAAIoR,EAAe,EAAQ,QACvBC,EAAW,EAAQ,QAevBjS,EAAOC,QALP,SAAmBqE,EAAQpE,GACzB,IAAIU,EAAQqR,EAAS3N,EAAQpE,GAC7B,OAAO8R,EAAapR,GAASA,OAAQ4I,I,kCCXvC,IAAIL,EAAiB,EAAQ,QAE7BnJ,EAAOC,QAAUyF,SAAS1E,UAAUoO,MAAQjG,G,sBCJ5C,kBAAW,EAAQ,QACf+I,EAAY,EAAQ,QAGpBC,EAA4ClS,IAAYA,EAAQmS,UAAYnS,EAG5EoS,EAAaF,GAAgC,iBAAVnS,GAAsBA,IAAWA,EAAOoS,UAAYpS,EAMvFsS,EAHgBD,GAAcA,EAAWpS,UAAYkS,EAG5BI,EAAKD,YAAS9I,EAsBvCgJ,GAnBiBF,EAASA,EAAOE,cAAWhJ,IAmBf0I,EAEjClS,EAAOC,QAAUuS,I,2DCnCjB,IAAIC,EAAS3F,KAAK9L,UAAUyR,OAWxBxP,EAAQlC,OAAOC,UAAUkC,SAGzB4B,EAAiB,EAAQ,OAAR,GAErB9E,EAAOC,QAAU,SAAsBW,GACrC,MAAqB,iBAAVA,GAAgC,OAAVA,IAI1BkE,EAnBW,SAA2BlE,GAC7C,IAEE,OADA6R,EAAOpR,KAAKT,IACL,EACP,MAAO2E,GACP,OAAO,GAcemN,CAAc9R,GATxB,kBASiCqC,EAAM5B,KAAKT,M,qBCvB5D,IAIM+R,EAJFnN,EAAa,EAAQ,QAGrBoN,GACED,EAAM,SAASE,KAAKrN,GAAcA,EAAWxB,MAAQwB,EAAWxB,KAAK8O,UAAY,KACvE,iBAAmBH,EAAO,GAc1C3S,EAAOC,QAJP,SAAkB0F,GAChB,QAASiN,GAAeA,KAAcjN,I,mBCFxC3F,EAAOC,QAPP,SAAmBW,GACjB,IAAIqK,SAAcrK,EAClB,MAAgB,UAARqK,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVrK,EACU,OAAVA,I,mBCiBPZ,EAAOC,QAJP,SAAsBW,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,kCCtBjCZ,EAAOC,QAAU,WACf,GAAsB,mBAAXgF,QAAiE,mBAAjClE,OAAO6J,sBAChD,OAAO,EAGT,GAA+B,iBAApB3F,OAAOwH,SAChB,OAAO,EAGT,IAAIxK,EAAM,GACN8Q,EAAM9N,OAAO,QACb+N,EAASjS,OAAOgS,GAEpB,GAAmB,iBAARA,EACT,OAAO,EAGT,GAA4C,oBAAxChS,OAAOC,UAAUkC,SAAS7B,KAAK0R,GACjC,OAAO,EAGT,GAA+C,oBAA3ChS,OAAOC,UAAUkC,SAAS7B,KAAK2R,GACjC,OAAO,EAYT,IAAKD,KAFL9Q,EAAI8Q,GADS,GAGD9Q,EACV,OAAO,EAIT,GAA2B,mBAAhBlB,OAAOiD,MAAmD,IAA5BjD,OAAOiD,KAAK/B,GAAKN,OACxD,OAAO,EAGT,GAA0C,mBAA/BZ,OAAOkS,qBAAiF,IAA3ClS,OAAOkS,oBAAoBhR,GAAKN,OACtF,OAAO,EAGT,IAAIuR,EAAOnS,OAAO6J,sBAAsB3I,GAExC,GAAoB,IAAhBiR,EAAKvR,QAAgBuR,EAAK,KAAOH,EACnC,OAAO,EAGT,IAAKhS,OAAOC,UAAUE,qBAAqBG,KAAKY,EAAK8Q,GACnD,OAAO,EAGT,GAA+C,mBAApChS,OAAOsE,yBAAyC,CACzD,IAAIC,EAAavE,OAAOsE,yBAAyBpD,EAAK8Q,GAEtD,GA7BW,KA6BPzN,EAAW1E,QAA8C,IAA1B0E,EAAW6E,WAC5C,OAAO,EAIX,OAAO,I,qBCpET,IAAIgJ,EAAe,EAAQ,QACvBC,EAAS,EAAQ,QACjBC,EAAe,EAAQ,QA+B3BrT,EAAOC,QANP,SAAe4R,EAAOyB,GACpB,OAAQzB,GAASA,EAAMlQ,OACnBwR,EAAatB,EAAOwB,EAAaC,EAAU,GAAIF,QAC/C5J,I,qBC9BN,IAAI+J,EAAc,EAAQ,QACtB5L,EAAM,EAAQ,QACd6L,EAAQ,EAAQ,QAChBjT,EAAQ,EAAQ,QAChBkT,EAAqB,EAAQ,QAC7BC,EAA0B,EAAQ,QAClClT,EAAQ,EAAQ,QA0BpBR,EAAOC,QAZP,SAA6BQ,EAAMkT,GACjC,OAAIpT,EAAME,IAASgT,EAAmBE,GAC7BD,EAAwBlT,EAAMC,GAAOkT,GAEvC,SAASrP,GACd,IAAIsP,EAAWjM,EAAIrD,EAAQ7D,GAC3B,YAAqB+I,IAAboK,GAA0BA,IAAaD,EAC3CH,EAAMlP,EAAQ7D,GACd8S,EAAYI,EAAUC,EAAUC,M,qBC5BxC,IAAIC,EAAgB,EAAQ,QAGxBlE,EAAa,mGAGbC,EAAe,WASf7G,EAAe8K,GAAc,SAAShE,GACxC,IAAIlI,EAAS,GAOb,OAN6B,KAAzBkI,EAAOiE,WAAW,IACpBnM,EAAO/F,KAAK,IAEdiO,EAAOJ,QAAQE,GAAY,SAASK,EAAOC,EAAQC,EAAOC,GACxDxI,EAAO/F,KAAKsO,EAAQC,EAAUV,QAAQG,EAAc,MAASK,GAAUD,MAElErI,KAGT5H,EAAOC,QAAU+I,G,mBCIjBhJ,EAAOC,QALP,SAAkBW,GAChB,IAAIqK,SAAcrK,EAClB,OAAgB,MAATA,IAA0B,UAARqK,GAA4B,YAARA,K,qBC3B/C,IAAI+I,EAAa,EAAQ,QAqBzBhU,EAAOC,QATP,SAAqBC,EAAKU,GACxB,IAAIa,EAAOuS,EAAW7T,KAAMD,GACxB4B,EAAOL,EAAKK,KAIhB,OAFAL,EAAKM,IAAI7B,EAAKU,GACdT,KAAK2B,MAAQL,EAAKK,MAAQA,EAAO,EAAI,EAC9B3B,O,qBClBT,IAAI8E,EAAS,EAAQ,QACjBoH,EAAa,EAAQ,QACrB4H,EAAK,EAAQ,QACbC,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QACrBC,EAAa,EAAQ,QAqBrBC,EAAcpP,EAASA,EAAOjE,eAAYwI,EAC1C8K,EAAgBD,EAAcA,EAAYrP,aAAUwE,EAoFxDxJ,EAAOC,QAjEP,SAAoBqE,EAAQiQ,EAAOlD,EAAKmD,EAASC,EAAYC,EAAWC,GACtE,OAAQtD,GACN,IAzBc,oBA0BZ,GAAK/M,EAAOsQ,YAAcL,EAAMK,YAC3BtQ,EAAOuQ,YAAcN,EAAMM,WAC9B,OAAO,EAETvQ,EAASA,EAAOwQ,OAChBP,EAAQA,EAAMO,OAEhB,IAlCiB,uBAmCf,QAAKxQ,EAAOsQ,YAAcL,EAAMK,aAC3BF,EAAU,IAAIrI,EAAW/H,GAAS,IAAI+H,EAAWkI,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAON,GAAI3P,GAASiQ,GAEtB,IAxDW,iBAyDT,OAAOjQ,EAAOwC,MAAQyN,EAAMzN,MAAQxC,EAAOyQ,SAAWR,EAAMQ,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOzQ,GAAWiQ,EAAQ,GAE5B,IAjES,eAkEP,IAAIS,EAAUb,EAEhB,IAjES,eAkEP,IAAIc,EA5EiB,EA4ELT,EAGhB,GAFAQ,IAAYA,EAAUZ,GAElB9P,EAAOxC,MAAQyS,EAAMzS,OAASmT,EAChC,OAAO,EAGT,IAAIC,EAAUP,EAAMhN,IAAIrD,GACxB,GAAI4Q,EACF,OAAOA,GAAWX,EAEpBC,GAtFuB,EAyFvBG,EAAM5S,IAAIuC,EAAQiQ,GAClB,IAAI3M,EAASsM,EAAYc,EAAQ1Q,GAAS0Q,EAAQT,GAAQC,EAASC,EAAYC,EAAWC,GAE1F,OADAA,EAAc,OAAErQ,GACTsD,EAET,IAnFY,kBAoFV,GAAI0M,EACF,OAAOA,EAAcjT,KAAKiD,IAAWgQ,EAAcjT,KAAKkT,GAG9D,OAAO,I,kCC1GT,IAAItK,EAAsB,EAAQ,QAAqBA,oBAEnDb,EAAc,EAAQ,QAEtBhE,EAAOrE,OAAOsE,yBACd2E,EAAiBjJ,OAAOiJ,eACxBmL,EAAU5N,UACVyE,EAAWjL,OAAOkL,eAClBmJ,EAAQ,IAEZpV,EAAOC,QAAU,WACf,IAAKgK,IAAwB+B,EAC3B,MAAM,IAAImJ,EAAQ,6FAGpB,IAAIE,EAAWjM,IACXkM,EAAQtJ,EAASoJ,GACjB9P,EAAaF,EAAKkQ,EAAO,SAU7B,OARKhQ,GAAcA,EAAWqC,MAAQ0N,GACpCrL,EAAesL,EAAO,QAAS,CAC7B9K,cAAc,EACdL,YAAY,EACZxC,IAAK0N,IAIFA,I,qBC7BT,IAAIE,EAAY,EAAQ,QACpBC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QA2BvBzV,EAAOC,QAlBP,SAAqByV,GACnB,OAAO,SAASC,EAAOC,EAAKC,GAa1B,OAZIA,GAAuB,iBAARA,GAAoBL,EAAeG,EAAOC,EAAKC,KAChED,EAAMC,OAAOrM,GAGfmM,EAAQF,EAASE,QACLnM,IAARoM,GACFA,EAAMD,EACNA,EAAQ,GAERC,EAAMH,EAASG,GAEjBC,OAAgBrM,IAATqM,EAAsBF,EAAQC,EAAM,GAAK,EAAKH,EAASI,GACvDN,EAAUI,EAAOC,EAAKC,EAAMH,M,qBCzBvC,IAIIvH,EAJY,EAAQ,OAIV2H,CAHH,EAAQ,QAGW,WAE9B9V,EAAOC,QAAUkO,G,mBCUjBnO,EAAOC,QANP,SAAoBC,GAClB,IAAI0H,EAASzH,KAAKyD,IAAI1D,WAAeC,KAAKC,SAASF,GAEnD,OADAC,KAAK2B,MAAQ8F,EAAS,EAAI,EACnBA,I,qBCbT,IAAIP,EAAU,EAAQ,QAyBtBrH,EAAOC,QAZP,SAAuB0F,GACrB,IAAIiC,EAASP,EAAQ1B,GAAM,SAASzF,GAIlC,OAfmB,MAYfwH,EAAM5F,MACR4F,EAAMe,QAEDvI,KAGLwH,EAAQE,EAAOF,MACnB,OAAOE,I,mBCHT5H,EAAOC,QAVP,SAAiCC,EAAKyT,GACpC,OAAO,SAASrP,GACd,OAAc,MAAVA,IAGGA,EAAOpE,KAASyT,SACPnK,IAAbmK,GAA2BzT,KAAOa,OAAOuD,Q,qBCfhD,IAGI+H,EAHO,EAAQ,QAGGA,WAEtBrM,EAAOC,QAAUoM,G,qBCLjB,IAAI2H,EAAa,EAAQ,QAezBhU,EAAOC,QAJP,SAAqBC,GACnB,OAAO8T,EAAW7T,KAAMD,GAAKyH,IAAIzH,K,qBCZnC,IAAI6V,EAAe,EAAQ,QAsB3B/V,EAAOC,QAPP,SAAiBC,EAAKU,GACpB,IAAIa,EAAOtB,KAAKC,SAGhB,OAFAD,KAAK2B,MAAQ3B,KAAKyD,IAAI1D,GAAO,EAAI,EACjCuB,EAAKvB,GAAQ6V,QAA0BvM,IAAV5I,EAfV,4BAekDA,EAC9DT,O,qBCnBT,IAAIO,EAAa,EAAQ,QACrBC,EAAe,EAAQ,QAgB3BX,EAAOC,QAJP,SAAyBW,GACvB,OAAOD,EAAaC,IAVR,sBAUkBF,EAAWE,K,mBCF3CZ,EAAOC,QAJP,SAAmBqE,EAAQpE,GACzB,OAAiB,MAAVoE,GAAkBpE,KAAOa,OAAOuD,K,mBCGzCtE,EAAOC,QALP,WACEE,KAAKC,SAAW,GAChBD,KAAK2B,KAAO,I,mBCRd,IAOIqP,EAPcpQ,OAAOC,UAOckC,SAavClD,EAAOC,QAJP,SAAwBW,GACtB,OAAOuQ,EAAqB9P,KAAKT,K,qBClBnC,IAAIoV,EAAa,EAAQ,QAGrBC,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKnV,SAAWA,QAAUmV,KAGxE3D,EAAOyD,GAAcC,GAAYvQ,SAAS,cAATA,GAErC1F,EAAOC,QAAUsS,G,mBCSjBvS,EAAOC,QARP,SAAqBC,GACnB,IAAIuB,EAAOtB,KAAKC,SACZwH,EAASnG,EAAa,OAAEvB,GAG5B,OADAC,KAAK2B,KAAOL,EAAKK,KACV8F,I,kCCZT3H,EAAQiC,YAAa,EACrBjC,EAAiB,QAAI,CACnBkW,SAAU,CACRC,UAAW,IACXC,QAAS,IAGXC,OAAQ,CACNF,UAAW,IACXC,QAAS,IAEXE,OAAQ,CACNH,UAAW,IACXC,QAAS,IAEXG,MAAO,CACLJ,UAAW,IACXC,QAAS,KAGbrW,EAAOC,QAAUA,EAAiB,S,mBCElCD,EAAOC,QAfP,SAAqB4R,EAAOvH,GAM1B,IALA,IAAI5G,GAAS,EACT/B,EAAkB,MAATkQ,EAAgB,EAAIA,EAAMlQ,OACnC8U,EAAW,EACX7O,EAAS,KAEJlE,EAAQ/B,GAAQ,CACvB,IAAIf,EAAQiR,EAAMnO,GACd4G,EAAU1J,EAAO8C,EAAOmO,KAC1BjK,EAAO6O,KAAc7V,GAGzB,OAAOgH,I,kCCnBT3H,EAAQiC,YAAa,EACrBjC,EAAiB,QAGjB,WACM,GAQND,EAAOC,QAAUA,EAAiB,S,qBCflC,IAAIyW,EAAa,EAAQ,QACrB5N,EAAW,EAAQ,QA+BvB9I,EAAOC,QAJP,SAAqBW,GACnB,OAAgB,MAATA,GAAiBkI,EAASlI,EAAMe,UAAY+U,EAAW9V,K,qBC7BhE,IAAI+V,EAAc,EAAQ,QACtBC,EAAY,EAAQ,QAMpB1V,EAHcH,OAAOC,UAGcE,qBAGnC2V,EAAmB9V,OAAO6J,sBAS1BkM,EAAcD,EAA+B,SAASvS,GACxD,OAAc,MAAVA,EACK,IAETA,EAASvD,OAAOuD,GACTqS,EAAYE,EAAiBvS,IAAS,SAASyS,GACpD,OAAO7V,EAAqBG,KAAKiD,EAAQyS,QANRH,EAUrC5W,EAAOC,QAAU6W,G,qBC7BjB,IAAIJ,EAAa,EAAQ,QACrBM,EAAW,EAAQ,QACnBjF,EAAW,EAAQ,QACnBkF,EAAW,EAAQ,QASnBC,EAAe,8BAGfC,EAAYzR,SAAS1E,UACrBF,EAAcC,OAAOC,UAGrByE,EAAe0R,EAAUjU,SAGzBjC,EAAiBH,EAAYG,eAG7BmW,EAAa5I,OAAO,IACtB/I,EAAapE,KAAKJ,GAAgByO,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF1P,EAAOC,QARP,SAAsBW,GACpB,SAAKmR,EAASnR,IAAUoW,EAASpW,MAGnB8V,EAAW9V,GAASwW,EAAaF,GAChChM,KAAK+L,EAASrW,M,mBC/B/BZ,EAAOC,QAJP,SAAkBqE,EAAQpE,GACxB,OAAiB,MAAVoE,OAAiBkF,EAAYlF,EAAOpE,K,qBCT7C,IAAI+E,EAAS,EAAQ,QACjBoS,EAAY,EAAQ,QACpBC,EAAiB,EAAQ,QAOzBlG,EAAiBnM,EAASA,EAAO8C,iBAAcyB,EAkBnDxJ,EAAOC,QATP,SAAoBW,GAClB,OAAa,MAATA,OACe4I,IAAV5I,EAdQ,qBADL,gBAiBJwQ,GAAkBA,KAAkBrQ,OAAOH,GAC/CyW,EAAUzW,GACV0W,EAAe1W,K,qBCxBrB,IAAI6S,EAAqB,EAAQ,QAC7BzP,EAAO,EAAQ,QAsBnBhE,EAAOC,QAbP,SAAsBqE,GAIpB,IAHA,IAAIsD,EAAS5D,EAAKM,GACd3C,EAASiG,EAAOjG,OAEbA,KAAU,CACf,IAAIzB,EAAM0H,EAAOjG,GACbf,EAAQ0D,EAAOpE,GAEnB0H,EAAOjG,GAAU,CAACzB,EAAKU,EAAO6S,EAAmB7S,IAEnD,OAAOgH,I,uBCpBT,IAIIoH,EAJY,EAAQ,OAIV8G,CAHH,EAAQ,QAGW,WAE9B9V,EAAOC,QAAU+O,G,kCCJjB,IAAII,EAAO,EAAQ,QAEfmI,EAAe,EAAQ,QAEvBC,EAASD,EAAa,8BACtBE,EAAQF,EAAa,6BACrBG,EAAgBH,EAAa,mBAAmB,IAASnI,EAAK/N,KAAKoW,EAAOD,GAC1E7L,EAAQ4L,EAAa,qCAAqC,GAC1DI,EAAkBJ,EAAa,2BAA2B,GAC1DK,EAAOL,EAAa,cAExB,GAAII,EACF,IACEA,EAAgB,GAAI,IAAK,CACvB/W,MAAO,IAET,MAAO2E,GAEPoS,EAAkB,KAItB3X,EAAOC,QAAU,SAAkB4X,GACjC,IAAIlS,EAAO+R,EAActI,EAAMqI,EAAOrW,WAEtC,GAAIuK,GAASgM,EAAiB,CAC5B,IAAIzG,EAAOvF,EAAMhG,EAAM,UAEnBuL,EAAK1G,cAEPmN,EAAgBhS,EAAM,SAAU,CAC9B/E,MAAO,EAAIgX,EAAK,EAAGC,EAAiBlW,QAAUP,UAAUO,OAAS,MAKvE,OAAOgE,GAGT,IAAImS,EAAY,WACd,OAAOJ,EAActI,EAAMoI,EAAQpW,YAGjCuW,EACFA,EAAgB3X,EAAOC,QAAS,QAAS,CACvCW,MAAOkX,IAGT9X,EAAOC,QAAQwH,MAAQqQ,G,qBClDzB,IAAIC,EAAY,EAAQ,QAiBxB/X,EAAOC,QAPP,SAAoB8F,EAAK7F,GACvB,IAAIuB,EAAOsE,EAAI3F,SACf,OAAO2X,EAAU7X,GACbuB,EAAmB,iBAAPvB,EAAkB,SAAW,QACzCuB,EAAKsE,M,mBCQX/F,EAAOC,QAZP,SAAmB4R,EAAOvH,GAIxB,IAHA,IAAI5G,GAAS,EACT/B,EAAkB,MAATkQ,EAAgB,EAAIA,EAAMlQ,SAE9B+B,EAAQ/B,GACf,GAAI2I,EAAUuH,EAAMnO,GAAQA,EAAOmO,GACjC,OAAO,EAGX,OAAO,I,qBCnBT,IAAIhF,EAAW,EAAQ,QACnBtL,EAAM,EAAQ,QACd4M,EAAU,EAAQ,QAClBM,EAAM,EAAQ,QACdO,EAAU,EAAQ,QAClBtO,EAAa,EAAQ,QACrBuW,EAAW,EAAQ,QAYnBe,EAAqBf,EAASpK,GAC9BoL,EAAgBhB,EAAS1V,GACzB2W,EAAoBjB,EAAS9I,GAC7BgK,EAAgBlB,EAASxI,GACzB2J,EAAoBnB,EAASjI,GAS7BqJ,EAAS3X,GAGRmM,GAnBa,qBAmBDwL,EAAO,IAAIxL,EAAS,IAAIL,YAAY,MAChDjL,GA1BQ,gBA0BD8W,EAAO,IAAI9W,IAClB4M,GAzBY,oBAyBDkK,EAAOlK,EAAQmK,YAC1B7J,GAzBQ,gBAyBD4J,EAAO,IAAI5J,IAClBO,GAzBY,oBAyBDqJ,EAAO,IAAIrJ,MACzBqJ,EAAS,SAASzX,GAChB,IAAIgH,EAASlH,EAAWE,GACpB0I,EA/BQ,mBA+BD1B,EAAsBhH,EAAM2I,iBAAcC,EACjD+O,EAAajP,EAAO2N,EAAS3N,GAAQ,GAEzC,GAAIiP,EACF,OAAQA,GACN,KAAKP,EAAoB,MA/Bf,oBAgCV,KAAKC,EAAe,MAtCf,eAuCL,KAAKC,EAAmB,MArCf,mBAsCT,KAAKC,EAAe,MArCf,eAsCL,KAAKC,EAAmB,MArCf,mBAwCb,OAAOxQ,IAIX5H,EAAOC,QAAUoY,G,mBCxDjB,IAAIG,EAAazK,KAAK0K,KAClBC,EAAY3K,KAAK4K,IAyBrB3Y,EAAOC,QAZP,SAAmB0V,EAAOC,EAAKC,EAAMH,GAKnC,IAJA,IAAIhS,GAAS,EACT/B,EAAS+W,EAAUF,GAAY5C,EAAMD,IAAUE,GAAQ,IAAK,GAC5DjO,EAAS9D,MAAMnC,GAEZA,KACLiG,EAAO8N,EAAY/T,IAAW+B,GAASiS,EACvCA,GAASE,EAEX,OAAOjO,I,qBCxBT,IAAImO,EAAe,EAAQ,QAc3B/V,EAAOC,QALP,WACEE,KAAKC,SAAW2V,EAAeA,EAAa,MAAQ,GACpD5V,KAAK2B,KAAO,I,mBCVd,IAAI8W,EAAe,KAiBnB5Y,EAAOC,QAPP,SAAyB6P,GAGvB,IAFA,IAAIpM,EAAQoM,EAAOnO,OAEZ+B,KAAWkV,EAAa1N,KAAK4E,EAAO+I,OAAOnV,MAClD,OAAOA,I,qBCIT1D,EAAOC,QAVP,SAAmB6Y,EAAGxF,GAIpB,IAHA,IAAI5P,GAAS,EACTkE,EAAS9D,MAAMgV,KAEVpV,EAAQoV,GACflR,EAAOlE,GAAS4P,EAAS5P,GAE3B,OAAOkE,I,kCCdT,IAAImR,EAA+B,oBAAX9T,QAA0BA,OAE9C+T,EAAgB,EAAQ,QAE5BhZ,EAAOC,QAAU,WACf,MAA0B,mBAAf8Y,IAIW,mBAAX9T,SAIsB,iBAAtB8T,EAAW,SAIO,iBAAlB9T,OAAO,QAIX+T,S,oCCrBT,IAAI7P,EAAiB,EAAQ,QAEzBc,EAAsB,EAAQ,QAAqBA,oBAEnD0B,EAAQ5K,OAAOsE,yBACfmG,EAAajE,UAEjBvH,EAAOC,QAAU,WACf,IAAKgK,EACH,MAAM,IAAIuB,EAAW,6FAGvB,GAAqB,QAAjB,OAAOyN,MAAiB,CAC1B,IAAI3T,EAAaqG,EAAM6C,OAAOxN,UAAW,SAEzC,GAAIsE,GAAwC,mBAAnBA,EAAWqC,KAA4C,iBAAf,IAAIuR,OACnE,OAAO5T,EAAWqC,IAItB,OAAOwB,I,qBCtBT,IAGIiC,EAHU,EAAQ,OAGL+N,CAAQpY,OAAOiD,KAAMjD,QAEtCf,EAAOC,QAAUmL,G,mBCQjBpL,EAAOC,QAJP,SAAgBW,EAAO2T,GACrB,OAAO3T,EAAQ2T,I,kCCRjB,IAAIgD,EAAe,EAAQ,QAEvBrO,EAAW,EAAQ,QAEnBkQ,EAAWlQ,EAASqO,EAAa,6BAErCvX,EAAOC,QAAU,SAA4B6G,EAAMwJ,GACjD,IAAIO,EAAY0G,EAAazQ,IAAQwJ,GAErC,MAAyB,mBAAdO,GAA4BuI,EAAStS,EAAM,gBAAkB,EAC/DoC,EAAS2H,GAGXA,I,mBCFT7Q,EAAOC,QAJP,SAAkBC,GAChB,OAAOC,KAAKC,SAASwD,IAAI1D,K,kCCR3B,IAAImZ,EAAUtY,OACVyK,EAAajE,UAEjBvH,EAAOC,QAAU,WACf,GAAY,MAARE,MAAgBA,OAASkZ,EAAQlZ,MACnC,MAAM,IAAIqL,EAAW,sDAGvB,IAAI5D,EAAS,GA0Bb,OAxBIzH,KAAKmZ,SACP1R,GAAU,KAGRzH,KAAKoZ,aACP3R,GAAU,KAGRzH,KAAKqZ,YACP5R,GAAU,KAGRzH,KAAK+Y,SACPtR,GAAU,KAGRzH,KAAKsZ,UACP7R,GAAU,KAGRzH,KAAKuZ,SACP9R,GAAU,KAGLA,I,kCClCT,IAAIuB,EAAiB,EAAQ,QAE7BnJ,EAAOC,QAAU,WACf,MAA4B,mBAAdc,OAAO4Y,GAAoB5Y,OAAO4Y,GAAKxQ,I,sBCLvD,YACA,IAAI6M,EAA8B,iBAAVsD,GAAsBA,GAAUA,EAAOvY,SAAWA,QAAUuY,EAEpFtZ,EAAOC,QAAU+V,I,2CCHjB,IA2CI4D,EA3Cc,EAAQ,OA2CdC,GAEZ7Z,EAAOC,QAAU2Z,G,qBC7CjB,IAAIE,EAAiB,EAAQ,QACzBC,EAAkB,EAAQ,QAC1BC,EAAe,EAAQ,QACvBC,EAAe,EAAQ,QACvBC,EAAe,EAAQ,QAS3B,SAAS5Y,EAAUkH,GACjB,IAAI9E,GAAS,EACT/B,EAAoB,MAAX6G,EAAkB,EAAIA,EAAQ7G,OAG3C,IADAxB,KAAKsI,UACI/E,EAAQ/B,GAAQ,CACvB,IAAI+G,EAAQF,EAAQ9E,GACpBvD,KAAK4B,IAAI2G,EAAM,GAAIA,EAAM,KAK7BpH,EAAUN,UAAUyH,MAAQqR,EAC5BxY,EAAUN,UAAkB,OAAI+Y,EAChCzY,EAAUN,UAAU2G,IAAMqS,EAC1B1Y,EAAUN,UAAU4C,IAAMqW,EAC1B3Y,EAAUN,UAAUe,IAAMmY,EAE1Bla,EAAOC,QAAUqB,G,qBC/BjB,IAGIyU,EAHY,EAAQ,OAGLD,CAAU/U,OAAQ,UAErCf,EAAOC,QAAU8V,G,mBCLjB/V,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOma,kBACXna,EAAOoa,UAAY,aACnBpa,EAAOqa,MAAQ,GAEVra,EAAOsa,WAAUta,EAAOsa,SAAW,IACxCvZ,OAAOiJ,eAAehK,EAAQ,SAAU,CACvCmK,YAAY,EACZxC,IAAK,WACJ,OAAO3H,EAAOua,KAGhBxZ,OAAOiJ,eAAehK,EAAQ,KAAM,CACnCmK,YAAY,EACZxC,IAAK,WACJ,OAAO3H,EAAO6K,KAGhB7K,EAAOma,gBAAkB,GAEnBna,I,mBCGR,IAAI4I,EAAU9E,MAAM8E,QAEpB5I,EAAOC,QAAU2I,G,kCCtBjB3I,EAAQiC,YAAa,EACrBjC,EAAiB,QAEjB,SAAmBgC,GACjB,IAAIuY,EAAM,GAEV,IAAK,IAAIta,KAAO+B,EACVlB,OAAOC,UAAUC,eAAeI,KAAKY,EAAK/B,KAC5Csa,EAAIta,GAAO,GAIf,OAAOsa,GAGTxa,EAAOC,QAAUA,EAAiB,S,qBClBlC,IAAIF,EAAe,EAAQ,QAyB3BC,EAAOC,QAbP,SAAsBC,EAAKU,GACzB,IAAIa,EAAOtB,KAAKC,SACZsD,EAAQ3D,EAAa0B,EAAMvB,GAQ/B,OANIwD,EAAQ,KACRvD,KAAK2B,KACPL,EAAKI,KAAK,CAAC3B,EAAKU,KAEhBa,EAAKiC,GAAO,GAAK9C,EAEZT,O,qBCtBT,IAAIsa,EAAW,EAAQ,QAyCvBza,EAAOC,QAZP,SAAkBW,GAChB,OAAKA,GAGLA,EAAQ6Z,EAAS7Z,MA9BJ,KA+BaA,KA/Bb,IACG,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,GAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,I,qBC/BjC,IAAI8Z,EAAc,EAAQ,QACtBC,EAAe,EAAQ,QACvBjH,EAA0B,EAAQ,QAmBtC1T,EAAOC,QAVP,SAAqB2a,GACnB,IAAIC,EAAYF,EAAaC,GAC7B,OAAwB,GAApBC,EAAUlZ,QAAekZ,EAAU,GAAG,GACjCnH,EAAwBmH,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASvW,GACd,OAAOA,IAAWsW,GAAUF,EAAYpW,EAAQsW,EAAQC,M,qBCjB5D,IAAIlS,EAAW,EAAQ,QACnBnI,EAAQ,EAAQ,QAsBpBR,EAAOC,QAZP,SAAiBqE,EAAQ7D,GAMvB,IAHA,IAAIiD,EAAQ,EACR/B,GAHJlB,EAAOkI,EAASlI,EAAM6D,IAGJ3C,OAED,MAAV2C,GAAkBZ,EAAQ/B,GAC/B2C,EAASA,EAAO9D,EAAMC,EAAKiD,OAE7B,OAAQA,GAASA,GAAS/B,EAAU2C,OAASkF,I,kCCjB/C,IAAIsR,EAAgB,kDAChBjX,EAAQC,MAAM9C,UAAU6C,MACxBZ,EAAQlC,OAAOC,UAAUkC,SAG7BlD,EAAOC,QAAU,SAAc8a,GAC7B,IAAI7T,EAAS/G,KAEb,GAAsB,mBAAX+G,GALE,sBAKuBjE,EAAM5B,KAAK6F,GAC7C,MAAM,IAAIK,UAAUuT,EAAgB5T,GAuBtC,IApBA,IACI8T,EADA3W,EAAOR,EAAMxC,KAAKD,UAAW,GAG7B6Z,EAAS,WACX,GAAI9a,gBAAgB6a,EAAO,CACzB,IAAIpT,EAASV,EAAOO,MAAMtH,KAAMkE,EAAKyF,OAAOjG,EAAMxC,KAAKD,aAEvD,OAAIL,OAAO6G,KAAYA,EACdA,EAGFzH,KAEP,OAAO+G,EAAOO,MAAMsT,EAAM1W,EAAKyF,OAAOjG,EAAMxC,KAAKD,cAIjD8Z,EAAcnN,KAAK4K,IAAI,EAAGzR,EAAOvF,OAAS0C,EAAK1C,QAC/CwZ,EAAY,GAEPtQ,EAAI,EAAGA,EAAIqQ,EAAarQ,IAC/BsQ,EAAUtZ,KAAK,IAAMgJ,GAKvB,GAFAmQ,EAAQtV,SAAS,SAAU,oBAAsByV,EAAUC,KAAK,KAAO,4CAA/D1V,CAA4GuV,GAEhH/T,EAAOlG,UAAW,CACpB,IAAIqa,EAAQ,aAEZA,EAAMra,UAAYkG,EAAOlG,UACzBga,EAAMha,UAAY,IAAIqa,EACtBA,EAAMra,UAAY,KAGpB,OAAOga,I,qBCjDT,IAAIjb,EAAe,EAAQ,QAMvByP,EAHa1L,MAAM9C,UAGCwO,OA4BxBxP,EAAOC,QAjBP,SAAyBC,GACvB,IAAIuB,EAAOtB,KAAKC,SACZsD,EAAQ3D,EAAa0B,EAAMvB,GAE/B,QAAIwD,EAAQ,KAIRA,GADYjC,EAAKE,OAAS,EAE5BF,EAAK6Z,MAEL9L,EAAOnO,KAAKI,EAAMiC,EAAO,KAEzBvD,KAAK2B,MACA,K,qBC/BT,IAAIyZ,EAAY,EAAQ,QACpBpa,EAAc,EAAQ,QACtByH,EAAU,EAAQ,QAClB4J,EAAW,EAAQ,QACnB3J,EAAU,EAAQ,QAClB2S,EAAe,EAAQ,QAMvBva,EAHcF,OAAOC,UAGQC,eAqCjCjB,EAAOC,QA3BP,SAAuBW,EAAO6a,GAC5B,IAAIC,EAAQ9S,EAAQhI,GAChB+a,GAASD,GAASva,EAAYP,GAC9Bgb,GAAUF,IAAUC,GAASnJ,EAAS5R,GACtCib,GAAUH,IAAUC,IAAUC,GAAUJ,EAAa5a,GACrDkb,EAAcJ,GAASC,GAASC,GAAUC,EAC1CjU,EAASkU,EAAcP,EAAU3a,EAAMe,OAAQgN,QAAU,GACzDhN,EAASiG,EAAOjG,OAEpB,IAAK,IAAIzB,KAAOU,GACT6a,IAAaxa,EAAeI,KAAKT,EAAOV,IACvC4b,IAEQ,UAAP5b,GAEC0b,IAAkB,UAAP1b,GAA0B,UAAPA,IAE9B2b,IAAkB,UAAP3b,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD2I,EAAQ3I,EAAKyB,KAElBiG,EAAO/F,KAAK3B,GAGhB,OAAO0H,I,sBC7CT,aACA,WACE,IAAImU,EAAgBC,EAAQC,EAED,oBAAhBC,aAA+C,OAAhBA,aAAwBA,YAAYC,IAC5Enc,EAAOC,QAAU,WACf,OAAOic,YAAYC,OAEZ,MAAOC,GAA+CA,EAAQJ,QACvEhc,EAAOC,QAAU,WACf,OAAQ8b,IAAmBE,GAAY,KAGzCD,EAASI,EAAQJ,OAQjBC,GANAF,EAAiB,WACf,IAAIM,EAEJ,OAAe,KADfA,EAAKL,KACK,GAAWK,EAAG,QAIjBvP,KAAKqP,KACdnc,EAAOC,QAAU,WACf,OAAO6M,KAAKqP,MAAQF,GAGtBA,EAAWnP,KAAKqP,QAEhBnc,EAAOC,QAAU,WACf,OAAO,IAAI6M,MAAOwP,UAAYL,GAGhCA,GAAW,IAAInP,MAAOwP,aAEvBjb,KAAKlB,Q,wDCjCR,IAAI8I,EAAS,EAAQ,QAEjBC,EAAW,EAAQ,QAEnBC,EAAiB,EAAQ,QAEzBC,EAAc,EAAQ,QAEtBhF,EAAO,EAAQ,QAEfiR,EAAWnM,EAASE,IAAerI,QACvCkI,EAAOoM,EAAU,CACfjM,YAAaA,EACbD,eAAgBA,EAChB/E,KAAMA,IAERpE,EAAOC,QAAUoV,G,qBClBjB,IAAIkH,EAAmB,EAAQ,QAC3BC,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QAGnBC,EAAmBD,GAAYA,EAASjB,aAmBxCA,EAAekB,EAAmBF,EAAUE,GAAoBH,EAEpEvc,EAAOC,QAAUub,G,qBC1BjB,IAAI9a,EAAa,EAAQ,QACrBoI,EAAW,EAAQ,QACnBnI,EAAe,EAAQ,QA8BvBgc,EAAiB,GACrBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B3c,EAAOC,QALP,SAA0BW,GACxB,OAAOD,EAAaC,IAClBkI,EAASlI,EAAMe,WAAagb,EAAejc,EAAWE,M,qBCxD1D,IAAIgc,EAAe,EAAQ,QA2B3B5c,EAAOC,QAJP,SAAkBW,GAChB,OAAgB,MAATA,EAAgB,GAAKgc,EAAahc,K,qBCxB3C,IAAIkK,EAAW,EAAQ,QA+BvB9K,EAAOC,QAnBP,SAAsB4R,EAAOyB,EAAUuJ,GAIrC,IAHA,IAAInZ,GAAS,EACT/B,EAASkQ,EAAMlQ,SAEV+B,EAAQ/B,GAAQ,CACvB,IAAIf,EAAQiR,EAAMnO,GACdoZ,EAAUxJ,EAAS1S,GAEvB,GAAe,MAAXkc,SAAiCtT,IAAbuT,EACfD,GAAYA,IAAYhS,EAASgS,GAClCD,EAAWC,EAASC,IAE1B,IAAIA,EAAWD,EACXlV,EAAShH,EAGjB,OAAOgH,I,qBC5BT,IAAIoV,EAAgB,EAAQ,QACxBC,EAAiB,EAAQ,QACzBC,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QAS1B,SAAS5b,EAASgH,GAChB,IAAI9E,GAAS,EACT/B,EAAoB,MAAX6G,EAAkB,EAAIA,EAAQ7G,OAG3C,IADAxB,KAAKsI,UACI/E,EAAQ/B,GAAQ,CACvB,IAAI+G,EAAQF,EAAQ9E,GACpBvD,KAAK4B,IAAI2G,EAAM,GAAIA,EAAM,KAK7BlH,EAASR,UAAUyH,MAAQuU,EAC3Bxb,EAASR,UAAkB,OAAIic,EAC/Bzb,EAASR,UAAU2G,IAAMuV,EACzB1b,EAASR,UAAU4C,IAAMuZ,EACzB3b,EAASR,UAAUe,IAAMqb,EAEzBpd,EAAOC,QAAUuB,G,qBC/BjB,IAAI6b,EAAQ,EAAQ,QAChBnJ,EAAc,EAAQ,QACtBoJ,EAAa,EAAQ,QACrBC,EAAe,EAAQ,QACvBlF,EAAS,EAAQ,QACjBzP,EAAU,EAAQ,QAClB4J,EAAW,EAAQ,QACnBgJ,EAAe,EAAQ,QAQvBgC,EAAY,kBAMZvc,EAHcF,OAAOC,UAGQC,eA6DjCjB,EAAOC,QA7CP,SAAyBqE,EAAQiQ,EAAOC,EAASC,EAAYC,EAAWC,GACtE,IAAI8I,EAAW7U,EAAQtE,GACnBoZ,EAAW9U,EAAQ2L,GACnBoJ,EAASF,EA1BA,iBA0BsBpF,EAAO/T,GACtCsZ,EAASF,EA3BA,iBA2BsBrF,EAAO9D,GAKtCsJ,GAHJF,EA9BY,sBA8BHA,EAAoBH,EAAYG,IAGhBH,EACrBM,GAHJF,EA/BY,sBA+BHA,EAAoBJ,EAAYI,IAGhBJ,EACrBO,EAAYJ,GAAUC,EAE1B,GAAIG,GAAavL,EAASlO,GAAS,CACjC,IAAKkO,EAAS+B,GACZ,OAAO,EAETkJ,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADAlJ,IAAUA,EAAQ,IAAI0I,GACdI,GAAYjC,EAAalX,GAC7B4P,EAAY5P,EAAQiQ,EAAOC,EAASC,EAAYC,EAAWC,GAC3D2I,EAAWhZ,EAAQiQ,EAAOoJ,EAAQnJ,EAASC,EAAYC,EAAWC,GAExE,KArDyB,EAqDnBH,GAAiC,CACrC,IAAIwJ,EAAeH,GAAY5c,EAAeI,KAAKiD,EAAQ,eACvD2Z,EAAeH,GAAY7c,EAAeI,KAAKkT,EAAO,eAE1D,GAAIyJ,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe1Z,EAAO1D,QAAU0D,EAC/C6Z,EAAeF,EAAe1J,EAAM3T,QAAU2T,EAGlD,OADAI,IAAUA,EAAQ,IAAI0I,GACf3I,EAAUwJ,EAAcC,EAAc3J,EAASC,EAAYE,IAGtE,QAAKoJ,IAGLpJ,IAAUA,EAAQ,IAAI0I,GACfE,EAAajZ,EAAQiQ,EAAOC,EAASC,EAAYC,EAAWC,M,mBC3DrE3U,EAAOC,QAXP,SAAkB4R,EAAOyB,GAKvB,IAJA,IAAI5P,GAAS,EACT/B,EAAkB,MAATkQ,EAAgB,EAAIA,EAAMlQ,OACnCiG,EAAS9D,MAAMnC,KAEV+B,EAAQ/B,GACfiG,EAAOlE,GAAS4P,EAASzB,EAAMnO,GAAQA,EAAOmO,GAEhD,OAAOjK,I,qBCjBT,IAIIrG,EAJY,EAAQ,OAIduU,CAHC,EAAQ,QAGO,OAE1B9V,EAAOC,QAAUsB,G,qBCNjB,IAAIwU,EAAe,EAAQ,QAMvB9U,EAHcF,OAAOC,UAGQC,eAgBjCjB,EAAOC,QALP,SAAiBC,GACf,IAAIuB,EAAOtB,KAAKC,SAChB,OAAO2V,OAA8BvM,IAAd/H,EAAKvB,GAAsBe,EAAeI,KAAKI,EAAMvB,K,qBCnB9E,EAAQ,QAER,IAAIke,EAAa,EAAQ,QAErBjd,EAAc,EAAQ,QAEtBwY,EAAK,EAAQ,QAEb0E,EAAU,EAAQ,QAElBpF,EAAQ,EAAQ,QAEhBqF,EAAS,EAAQ,QAEjBhC,EAAUxP,KAAK9L,UAAUsb,QAE7B,SAASiC,EAAUC,EAAQC,EAAUC,GACnC,IAAIC,EAAOD,GAAW,GAEtB,SAAIC,EAAKC,OAASjF,EAAG6E,EAAQC,GAAYD,IAAWC,MAK/CD,IAAWC,GAA8B,iBAAXD,GAA2C,iBAAbC,EACxDE,EAAKC,OAASjF,EAAG6E,EAAQC,GAAYD,GAAUC,EAoC1D,SAAkBja,EAAGC,EAAGka,GAEtB,IAAI9T,EAAG3K,EAEP,UAAWsE,UAAaC,EACtB,OAAO,EAGT,GAAIoa,EAAkBra,IAAMqa,EAAkBpa,GAC5C,OAAO,EAIT,GAAID,EAAExD,YAAcyD,EAAEzD,UACpB,OAAO,EAGT,GAAIG,EAAYqD,KAAOrD,EAAYsD,GACjC,OAAO,EAGT,IAAIqa,EAAWT,EAAQ7Z,GACnBua,EAAWV,EAAQ5Z,GAEvB,GAAIqa,IAAaC,EACf,OAAO,EAGT,GAAID,GAAYC,EACd,OAAOva,EAAEoW,SAAWnW,EAAEmW,QAAU3B,EAAMzU,KAAOyU,EAAMxU,GAGrD,GAAI6Z,EAAO9Z,IAAM8Z,EAAO7Z,GACtB,OAAO6X,EAAQjb,KAAKmD,KAAO8X,EAAQjb,KAAKoD,GAG1C,IAAIua,EAAYxM,EAAShO,GACrBya,EAAYzM,EAAS/N,GAEzB,GAAIua,IAAcC,EAChB,OAAO,EAGT,GAAID,GAAaC,EAAW,CAE1B,GAAIza,EAAE7C,SAAW8C,EAAE9C,OACjB,OAAO,EAGT,IAAKkJ,EAAI,EAAGA,EAAIrG,EAAE7C,OAAQkJ,IACxB,GAAIrG,EAAEqG,KAAOpG,EAAEoG,GACb,OAAO,EAIX,OAAO,EAGT,UAAWrG,UAAaC,EACtB,OAAO,EAGT,IACE,IAAIya,EAAKd,EAAW5Z,GAChB2a,EAAKf,EAAW3Z,GACpB,MAAOc,GAEP,OAAO,EAIT,GAAI2Z,EAAGvd,SAAWwd,EAAGxd,OACnB,OAAO,EAOT,IAHAud,EAAGE,OACHD,EAAGC,OAEEvU,EAAIqU,EAAGvd,OAAS,EAAGkJ,GAAK,EAAGA,IAC9B,GAAIqU,EAAGrU,IAAMsU,EAAGtU,GACd,OAAO,EAKX,IAAKA,EAAIqU,EAAGvd,OAAS,EAAGkJ,GAAK,EAAGA,IAG9B,GAFA3K,EAAMgf,EAAGrU,IAEJ0T,EAAU/Z,EAAEtE,GAAMuE,EAAEvE,GAAMye,GAC7B,OAAO,EAIX,OAAO,EArHAU,CAASb,EAAQC,EAAUE,IAGpC,SAASE,EAAkBje,GACzB,OAAOA,QAGT,SAAS4R,EAASpI,GAChB,SAAKA,GAAkB,iBAANA,GAAsC,iBAAbA,EAAEzI,UAItB,mBAAXyI,EAAEkV,MAA0C,mBAAZlV,EAAEvG,SAIzCuG,EAAEzI,OAAS,GAAqB,iBAATyI,EAAE,KAwG/BpK,EAAOC,QAAUse,G,qBC9JjB,IAAIhW,EAAO,EAAQ,QACfjH,EAAY,EAAQ,QACpBC,EAAM,EAAQ,QAkBlBvB,EAAOC,QATP,WACEE,KAAK2B,KAAO,EACZ3B,KAAKC,SAAW,CACd,KAAQ,IAAImI,EACZ,IAAO,IAAKhH,GAAOD,GACnB,OAAU,IAAIiH,K,uBChBlB,IAAIgX,EAAY,EAAQ,QACpB3W,EAAU,EAAQ,QAkBtB5I,EAAOC,QALP,SAAwBqE,EAAQkb,EAAUC,GACxC,IAAI7X,EAAS4X,EAASlb,GACtB,OAAOsE,EAAQtE,GAAUsD,EAAS2X,EAAU3X,EAAQ6X,EAAYnb,M,kCCXlErE,EAAQiC,YAAa,EACrBjC,EAAiB,QAGjB,SAAiByf,EAAgBtV,EAAGuV,EAAGC,EAAOC,EAAGpb,EAAGqb,GAIlD,IAOIC,EAAOJ,IAPIE,GAAKzV,EAAIwV,IAETnb,EAAIkb,GAKAD,EACfM,EAAO5V,EAAI2V,EAAOL,EAEtB,GAAI3R,KAAKkS,IAAIF,GAAQD,GAAa/R,KAAKkS,IAAID,EAAOJ,GAASE,EAGzD,OAFAI,EAAY,GAAKN,EACjBM,EAAY,GAAK,EACVA,EAKT,OAFAA,EAAY,GAAKF,EACjBE,EAAY,GAAKH,EACVG,GAxBT,IAAIA,EAAc,CAAC,EAAG,GA2BtBlgB,EAAOC,QAAUA,EAAiB,S,qBClClC,IAAIqB,EAAY,EAAQ,QACpB6e,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QASvB,SAASlD,EAAM7U,GACb,IAAI/G,EAAOtB,KAAKC,SAAW,IAAIkB,EAAUkH,GACzCrI,KAAK2B,KAAOL,EAAKK,KAInBub,EAAMrc,UAAUyH,MAAQ0X,EACxB9C,EAAMrc,UAAkB,OAAIof,EAC5B/C,EAAMrc,UAAU2G,IAAM0Y,EACtBhD,EAAMrc,UAAU4C,IAAM0c,EACtBjD,EAAMrc,UAAUe,IAAMwe,EAEtBvgB,EAAOC,QAAUod,G,mBCRjBrd,EAAOC,QALP,SAAqBW,GAEnB,OADAT,KAAKC,SAAS2B,IAAInB,EAbC,6BAcZT,O,mBCFTH,EAAOC,QAJP,SAAkBC,GAChB,OAAOC,KAAKC,SAASuH,IAAIzH,K,qBCV3B,IAAIsgB,EAAY,EAAQ,QACpBC,EAAU,EAAQ,QAgCtBzgB,EAAOC,QAJP,SAAeqE,EAAQ7D,GACrB,OAAiB,MAAV6D,GAAkBmc,EAAQnc,EAAQ7D,EAAM+f,K,qBC9BjD,IAAIE,EAAkB,EAAQ,QAG1BC,EAAc,OAelB3gB,EAAOC,QANP,SAAkB6P,GAChB,OAAOA,EACHA,EAAOjM,MAAM,EAAG6c,EAAgB5Q,GAAU,GAAGJ,QAAQiR,EAAa,IAClE7Q,I,uBCfN,IAAIkE,EAAa,EAAQ,QAiBzBhU,EAAOC,QANP,SAAwBC,GACtB,IAAI0H,EAASoM,EAAW7T,KAAMD,GAAa,OAAEA,GAE7C,OADAC,KAAK2B,MAAQ8F,EAAS,EAAI,EACnBA,I,kCCVT3H,EAAQiC,YAAa,EACrBjC,EAAiB,QAEjB,SAA6B2gB,EAAcxa,EAAOya,GAChD,IAAK,IAAI3gB,KAAOkG,EACd,GAAKrF,OAAOC,UAAUC,eAAeI,KAAK+E,EAAOlG,GAAjD,CAIA,GAA6B,IAAzB2gB,EAAgB3gB,GAClB,OAAO,EAGT,IAAI4gB,EAAmC,iBAAf1a,EAAMlG,GAAoBkG,EAAMlG,GAAOkG,EAAMlG,GAAK6gB,IAG1E,GAAIH,EAAa1gB,KAAS4gB,EACxB,OAAO,EAIX,OAAO,GAGT9gB,EAAOC,QAAUA,EAAiB,S,mBCdlCD,EAAOC,QANP,SAAiB0F,EAAMqb,GACrB,OAAO,SAASC,GACd,OAAOtb,EAAKqb,EAAUC,O,qBCV1B,IAAIvgB,EAAa,EAAQ,QACrBqR,EAAW,EAAQ,QAmCvB/R,EAAOC,QAVP,SAAoBW,GAClB,IAAKmR,EAASnR,GACZ,OAAO,EAIT,IAAIyQ,EAAM3Q,EAAWE,GACrB,MA5BY,qBA4BLyQ,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,I,mBCG/DrR,EAAOC,QAJP,SAAYW,EAAO2T,GACjB,OAAO3T,IAAU2T,GAAU3T,GAAUA,GAAS2T,GAAUA,I,uBCjC1D,IAAI8I,EAAQ,EAAQ,QAChB9J,EAAc,EAAQ,QA4D1BvT,EAAOC,QA5CP,SAAqBqE,EAAQsW,EAAQC,EAAWpG,GAC9C,IAAI/Q,EAAQmX,EAAUlZ,OAClBA,EAAS+B,EACTwd,GAAgBzM,EAEpB,GAAc,MAAVnQ,EACF,OAAQ3C,EAGV,IADA2C,EAASvD,OAAOuD,GACTZ,KAAS,CACd,IAAIjC,EAAOoZ,EAAUnX,GACrB,GAAKwd,GAAgBzf,EAAK,GAClBA,EAAK,KAAO6C,EAAO7C,EAAK,MACtBA,EAAK,KAAM6C,GAEnB,OAAO,EAGX,OAASZ,EAAQ/B,GAAQ,CAEvB,IAAIzB,GADJuB,EAAOoZ,EAAUnX,IACF,GACXkQ,EAAWtP,EAAOpE,GAClByT,EAAWlS,EAAK,GAEpB,GAAIyf,GAAgBzf,EAAK,IACvB,QAAiB+H,IAAboK,KAA4B1T,KAAOoE,GACrC,OAAO,MAEJ,CACL,IAAIqQ,EAAQ,IAAI0I,EAChB,GAAI5I,EACF,IAAI7M,EAAS6M,EAAWb,EAAUD,EAAUzT,EAAKoE,EAAQsW,EAAQjG,GAEnE,UAAiBnL,IAAX5B,EACE2L,EAAYI,EAAUC,EAAUC,EAA+CY,EAAYE,GAC3F/M,GAEN,OAAO,GAIb,OAAO,I,sBC1DT,kBAAiB,EAAQ,QAGrBuK,EAA4ClS,IAAYA,EAAQmS,UAAYnS,EAG5EoS,EAAaF,GAAgC,iBAAVnS,GAAsBA,IAAWA,EAAOoS,UAAYpS,EAMvFmhB,EAHgB9O,GAAcA,EAAWpS,UAAYkS,GAGtB6D,EAAWoG,QAG1CK,EAAY,WACd,IAEE,IAAI2E,EAAQ/O,GAAcA,EAAWgP,SAAWhP,EAAWgP,QAAQ,QAAQD,MAE3E,OAAIA,GAKGD,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,QACjE,MAAO/b,KAXI,GAcfvF,EAAOC,QAAUwc,I,gDC7BjB,IAAIxI,EAAK,EAAQ,QACbtK,EAAc,EAAQ,QACtBd,EAAU,EAAQ,QAClBkJ,EAAW,EAAQ,QA0BvB/R,EAAOC,QAdP,SAAwBW,EAAO8C,EAAOY,GACpC,IAAKyN,EAASzN,GACZ,OAAO,EAET,IAAI2G,SAAcvH,EAClB,SAAY,UAARuH,EACKtB,EAAYrF,IAAWuE,EAAQnF,EAAOY,EAAO3C,QACrC,UAARsJ,GAAoBvH,KAASY,IAE7B2P,EAAG3P,EAAOZ,GAAQ9C,K,qBCxB7B,IAAIwG,EAAU,EAAQ,QAgCtBpH,EAAOC,QALP,SAAaqE,EAAQ7D,EAAM8gB,GACzB,IAAI3Z,EAAmB,MAAVtD,OAAiBkF,EAAYpC,EAAQ9C,EAAQ7D,GAC1D,YAAkB+I,IAAX5B,EAAuB2Z,EAAe3Z,I,kCC7B/C,yBAYe4Z,IATE,SAAA3b,GACf,OACE,oCACJ,yBAAKO,MAAO,CAAEqL,KAAM5L,EAAMQ,MAAOqL,OAAO7L,EAAMQ,OAAQmL,MAAM,6BAA6BG,QAAQ,eAAc,0BAAMC,EAAE,qb,qBCNvH,IAGI3M,EAHO,EAAQ,QAGDA,OAElBjF,EAAOC,QAAUgF,G,kCCHjB,IAAImK,EAAO,EAAQ,QAEnBpP,EAAOC,QAAUmP,EAAK/N,KAAKqE,SAASrE,KAAMN,OAAOC,UAAUC,iB,qBCJ3D,IAAIuC,EAAW,EAAQ,QACnBie,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QAiFvB1hB,EAAOC,QA9DP,SAAqB4R,EAAO0C,EAAOC,EAASC,EAAYC,EAAWC,GACjE,IAAIM,EAjBqB,EAiBTT,EACZmN,EAAY9P,EAAMlQ,OAClBigB,EAAYrN,EAAM5S,OAEtB,GAAIggB,GAAaC,KAAe3M,GAAa2M,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAalN,EAAMhN,IAAIkK,GACvBiQ,EAAanN,EAAMhN,IAAI4M,GAC3B,GAAIsN,GAAcC,EAChB,OAAOD,GAActN,GAASuN,GAAcjQ,EAE9C,IAAInO,GAAS,EACTkE,GAAS,EACTma,EA/BuB,EA+BfvN,EAAoC,IAAIhR,OAAWgG,EAM/D,IAJAmL,EAAM5S,IAAI8P,EAAO0C,GACjBI,EAAM5S,IAAIwS,EAAO1C,KAGRnO,EAAQie,GAAW,CAC1B,IAAIK,EAAWnQ,EAAMnO,GACjBue,EAAW1N,EAAM7Q,GAErB,GAAI+Q,EACF,IAAIyN,EAAWjN,EACXR,EAAWwN,EAAUD,EAAUte,EAAO6Q,EAAO1C,EAAO8C,GACpDF,EAAWuN,EAAUC,EAAUve,EAAOmO,EAAO0C,EAAOI,GAE1D,QAAiBnL,IAAb0Y,EAAwB,CAC1B,GAAIA,EACF,SAEFta,GAAS,EACT,MAGF,GAAIma,GACF,IAAKN,EAAUlN,GAAO,SAAS0N,EAAUE,GACnC,IAAKT,EAASK,EAAMI,KACfH,IAAaC,GAAYvN,EAAUsN,EAAUC,EAAUzN,EAASC,EAAYE,IAC/E,OAAOoN,EAAKlgB,KAAKsgB,MAEjB,CACNva,GAAS,EACT,YAEG,GACDoa,IAAaC,IACXvN,EAAUsN,EAAUC,EAAUzN,EAASC,EAAYE,GACpD,CACL/M,GAAS,EACT,OAKJ,OAFA+M,EAAc,OAAE9C,GAChB8C,EAAc,OAAEJ,GACT3M,I,kCC9ET3H,EAAQiC,YAAa,EAErB,IAAIkgB,EAAWrhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGLob,EAAe,WACjB,SAAS5X,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAASG,EAAuBzgB,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GA0Bf,IAEI0gB,EAAcD,EAFD,EAAQ,SAMrBE,EAAeF,EAFD,EAAQ,SAMtBG,EAAYH,EAFA,EAAQ,SAMpBI,EAAcJ,EAFD,EAAQ,SAMrBK,EAAmBL,EAFD,EAAQ,SAM1BM,EAAQN,EAFD,EAAQ,SAMfO,EAAwBP,EAFD,EAAQ,SAM/BQ,EAAUR,EAFD,EAAQ,SAMjBS,EAAcT,EAFD,EAAQ,SAYzB,SAASU,EAAgBC,EAAmBC,EAAkBC,GAG5D,IAAIC,EAAoBF,EAExB,OAAyB,MAArBE,EACKH,EAAkBtd,KAAI,SAAU0d,EAAkB5Y,GACvD,MAAO,CACL3K,IAAKujB,EAAiBvjB,IACtBuB,KAAMgiB,EAAiBhiB,KACvB2E,MAAOmd,EAAY1Y,OAKlBwY,EAAkBtd,KAAI,SAAU0d,EAAkB5Y,GACvD,IAAK,IAAI6Y,EAAI,EAAGA,EAAIF,EAAkB7hB,OAAQ+hB,IAC5C,GAAIF,EAAkBE,GAAGxjB,MAAQujB,EAAiBvjB,IAChD,MAAO,CACLA,IAAKsjB,EAAkBE,GAAGxjB,IAC1BuB,KAAM+hB,EAAkBE,GAAGjiB,KAC3B2E,MAAOmd,EAAY1Y,IAKzB,MAAO,CACL3K,IAAKujB,EAAiBvjB,IACtBuB,KAAMgiB,EAAiBhiB,KACvB2E,MAAOmd,EAAY1Y,OAyCzB,SAAS8Y,EAAaC,EAAWC,EAAWC,EAAUC,EAAsBC,EAAYC,EAAkBC,EAAsBC,EAAoBC,GAgClJ,IA/BA,IAAIC,EAAuBvB,EAAqB,QAAEiB,EAAsBC,GAAY,SAAUM,EAAUC,GACtG,IAAIC,EAAeX,EAAUU,GAE7B,OAAoB,MAAhBC,GAQAvB,EAA+B,QAAEgB,EAAiBK,GAAWE,EAAcN,EAAqBI,KAPlGR,EAAS,CACP5jB,IAAKqkB,EAAoBrkB,IACzBuB,KAAM8iB,EAAoB9iB,OAErB,MAWF,CACLvB,IAAKqkB,EAAoBrkB,IACzBuB,KAAM8iB,EAAoB9iB,KAC1B2E,MAAOoe,MAIPC,EAAmB,GACnBC,EAAuB,GACvBC,EAAqB,GACrBC,EAAyB,GAEpB/Z,EAAI,EAAGA,EAAIwZ,EAAqB1iB,OAAQkJ,IAAK,CAIpD,IAHA,IAAIga,EAA0BR,EAAqBxZ,GAC/Cia,EAAgB,KAEXpB,EAAI,EAAGA,EAAIK,EAAqBpiB,OAAQ+hB,IAC/C,GAAIK,EAAqBL,GAAGxjB,MAAQ2kB,EAAwB3kB,IAAK,CAC/D4kB,EAAgBpB,EAChB,MAKJ,GAAqB,MAAjBoB,EAAuB,CACzB,IAAIC,EAAanB,EAAUiB,GAC3BJ,EAAiB5Z,GAAKka,EACtBJ,EAAmB9Z,GAAKka,EAExB,IAAIC,EAAWrC,EAAqB,QAAEkC,EAAwBze,OAE9Dse,EAAqB7Z,GAAKma,EAC1BJ,EAAuB/Z,GAAKma,OAE5BP,EAAiB5Z,GAAKoZ,EAAiBa,GACvCH,EAAmB9Z,GAAKsZ,EAAmBW,GAC3CJ,EAAqB7Z,GAAKqZ,EAAqBY,GAC/CF,EAAuB/Z,GAAKuZ,EAAuBU,GAIvD,MAAO,CAACT,EAAsBI,EAAkBC,EAAsBC,EAAoBC,GAG5F,IAAIpiB,EAAmB,SAAUyiB,GAsC/B,SAASziB,EAAiBqD,GACxB,IAAIqf,EAAQ/kB,MA/OhB,SAAyBglB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCA+OpB6d,CAAgBjlB,KAAMqC,GAEtByiB,EAAiB5jB,KAAKlB,KAAM0F,GAE5B1F,KAAKklB,YAAa,EAClBllB,KAAKmlB,YAAc,KACnBnlB,KAAKolB,SAAW,EAChBplB,KAAKqlB,gBAAkB,EACvBrlB,KAAKmjB,iBAAmB,KAExBnjB,KAAKslB,qBAAuB,SAAUnC,GASpC,IARA,IAAIoC,EAAgB/B,EAAauB,EAAMrf,MAAM+d,UAAWsB,EAAMrf,MAAMge,UAAWqB,EAAMrf,MAAMie,SAAUoB,EAAMS,MAAMtC,kBAAmBC,EAAkB4B,EAAMS,MAAMC,cAAeV,EAAMS,MAAME,kBAAmBX,EAAMS,MAAMG,gBAAiBZ,EAAMS,MAAMI,qBAErP1C,EAAoBqC,EAAc,GAClCE,EAAgBF,EAAc,GAC9BG,EAAoBH,EAAc,GAClCI,EAAkBJ,EAAc,GAChCK,EAAsBL,EAAc,GAE/B7a,EAAI,EAAGA,EAAIyY,EAAiB3hB,OAAQkJ,IAAK,CAChD,IAAImb,EAAkB1C,EAAiBzY,GAAGzE,MACtC6f,GAAQ,EAEZ,IAAK,IAAI/lB,KAAO8lB,EACd,GAAKjlB,OAAOC,UAAUC,eAAeI,KAAK2kB,EAAiB9lB,GAA3D,CAIA,IAAI4gB,EAAakF,EAAgB9lB,GAEP,iBAAf4gB,IACJmF,IACHA,GAAQ,EACRL,EAAc/a,GAAKuX,EAAS,GAAIwD,EAAc/a,IAC9Cgb,EAAkBhb,GAAKuX,EAAS,GAAIyD,EAAkBhb,IACtDib,EAAgBjb,GAAKuX,EAAS,GAAI0D,EAAgBjb,IAClDkb,EAAoBlb,GAAKuX,EAAS,GAAI2D,EAAoBlb,IAC1DwY,EAAkBxY,GAAK,CACrB3K,IAAKmjB,EAAkBxY,GAAG3K,IAC1BuB,KAAM4hB,EAAkBxY,GAAGpJ,KAC3B2E,MAAOgc,EAAS,GAAIiB,EAAkBxY,GAAGzE,SAI7Cwf,EAAc/a,GAAG3K,GAAO4gB,EACxB+E,EAAkBhb,GAAG3K,GAAO,EAC5B4lB,EAAgBjb,GAAG3K,GAAO4gB,EAC1BiF,EAAoBlb,GAAG3K,GAAO,EAC9BmjB,EAAkBxY,GAAGzE,MAAMlG,GAAO4gB,IAQxCoE,EAAMgB,SAAS,CACbN,cAAeA,EACfC,kBAAmBA,EACnBxC,kBAAmBA,EACnByC,gBAAiBA,EACjBC,oBAAqBA,KAIzB5lB,KAAKgmB,0BAA4B,WAC3BjB,EAAMG,aAMVH,EAAMI,YAActC,EAAe,SAAE,SAAUoD,GAM7C,IAAIlB,EAAMG,WAAV,CAIA,IAAIgB,EAAanB,EAAMrf,MAAMygB,OACzBtC,EAAmC,mBAAfqC,EAA4BA,EAAWjD,EAAgB8B,EAAMS,MAAMtC,kBAAmB6B,EAAM5B,iBAAkB4B,EAAMS,MAAMG,kBAAoBO,EAEtK,GAlOR,SAAgCT,EAAe5B,EAAY6B,EAAmBxC,GAC5E,GAAIA,EAAkB1hB,SAAWqiB,EAAWriB,OAC1C,OAAO,EAGT,IAAK,IAAIkJ,EAAI,EAAGA,EAAIwY,EAAkB1hB,OAAQkJ,IAC5C,GAAIwY,EAAkBxY,GAAG3K,MAAQ8jB,EAAWnZ,GAAG3K,IAC7C,OAAO,EAOX,IAAS2K,EAAI,EAAGA,EAAIwY,EAAkB1hB,OAAQkJ,IAC5C,IAAKoY,EAA+B,QAAE2C,EAAc/a,GAAImZ,EAAWnZ,GAAGzE,MAAOyf,EAAkBhb,IAC7F,OAAO,EAIX,OAAO,EA8MG0b,CAAuBrB,EAAMS,MAAMC,cAAe5B,EAAYkB,EAAMS,MAAME,kBAAmBX,EAAMS,MAAMtC,mBAI3G,OAFA6B,EAAMI,YAAc,UACpBJ,EAAMM,gBAAkB,GAI1B,IAAIgB,EAAcJ,GAAarD,EAA0B,UAErD0D,EAAYD,EAActB,EAAMK,SAQpC,GAPAL,EAAMK,SAAWiB,EACjBtB,EAAMM,gBAAkBN,EAAMM,gBAAkBiB,EAE5CvB,EAAMM,gBAzRD,IAAO,GAyRyB,KACvCN,EAAMM,gBAAkB,GAGI,IAA1BN,EAAMM,gBAMR,OAJAN,EAAMI,YAAc,UAEpBJ,EAAMiB,4BAgBR,IAXA,IAAIO,GAA0BxB,EAAMM,gBAAkBzX,KAAK4Y,MAAMzB,EAAMM,iBAtS9D,IAAO,MAAP,IAAO,MAAP,IAAO,IAuSZoB,EAAkB7Y,KAAK4Y,MAAMzB,EAAMM,iBAvS9B,IAAO,KAySZqB,EAAiBlD,EAAauB,EAAMrf,MAAM+d,UAAWsB,EAAMrf,MAAMge,UAAWqB,EAAMrf,MAAMie,SAAUoB,EAAMS,MAAMtC,kBAAmBW,EAAYkB,EAAMS,MAAMC,cAAeV,EAAMS,MAAME,kBAAmBX,EAAMS,MAAMG,gBAAiBZ,EAAMS,MAAMI,qBAEhP1B,EAAuBwC,EAAe,GACtCpC,EAAmBoC,EAAe,GAClCnC,EAAuBmC,EAAe,GACtClC,EAAqBkC,EAAe,GACpCjC,EAAyBiC,EAAe,GAEnChc,EAAI,EAAGA,EAAIwZ,EAAqB1iB,OAAQkJ,IAAK,CACpD,IAAIic,EAAsBzC,EAAqBxZ,GAAGzE,MAC9C2gB,EAAkB,GAClBC,EAAqB,GACrBC,EAAoB,GACpBC,EAAuB,GAE3B,IAAK,IAAIhnB,KAAO4mB,EACd,GAAK/lB,OAAOC,UAAUC,eAAeI,KAAKylB,EAAqB5mB,GAA/D,CAIA,IAAI4gB,EAAagG,EAAoB5mB,GAErC,GAA0B,iBAAf4gB,EACTiG,EAAgB7mB,GAAO4gB,EACvBkG,EAAmB9mB,GAAO,EAC1B+mB,EAAkB/mB,GAAO4gB,EACzBoG,EAAqBhnB,GAAO,MACvB,CAIL,IAHA,IAAIinB,EAAyBxC,EAAmB9Z,GAAG3K,GAC/CknB,EAA4BxC,EAAuB/Z,GAAG3K,GAEjDwjB,EAAI,EAAGA,EAAIkD,EAAiBlD,IAAK,CACxC,IAAI2D,EAAWxE,EAAmB,QAzUjC,IAAO,GAyUyC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE/KqH,EAAyBE,EAAS,GAClCD,EAA4BC,EAAS,GAGvC,IAAIC,EAAYzE,EAAmB,QA/UhC,IAAO,GA+UwC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE5KyH,EAAaD,EAAU,GACvBE,EAAaF,EAAU,GAC3BP,EAAgB7mB,GAAOinB,GAA0BI,EAAaJ,GAA0BT,EACxFM,EAAmB9mB,GAAOknB,GAA6BI,EAAaJ,GAA6BV,EACjGO,EAAkB/mB,GAAOinB,EACzBD,EAAqBhnB,GAAOknB,GAIhCzC,EAAmB9Z,GAAKoc,EACxBrC,EAAuB/Z,GAAKqc,EAC5BzC,EAAiB5Z,GAAKkc,EACtBrC,EAAqB7Z,GAAKmc,EAG5B9B,EAAMI,YAAc,KAEpBJ,EAAMM,iBAAmBoB,GAlWhB,IAAO,IAoWhB1B,EAAMgB,SAAS,CACbN,cAAenB,EACfoB,kBAAmBnB,EACnBoB,gBAAiBnB,EACjBoB,oBAAqBnB,EACrBvB,kBAAmBgB,IAGrBa,EAAM5B,iBAAmB,KAEzB4B,EAAMiB,kCAIVhmB,KAAKwlB,MAAQxlB,KAAKsnB,eA4GpB,OAlhBF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAsL3GG,CAAUtlB,EAAkByiB,GAE5B3C,EAAa9f,EAAkB,KAAM,CAAC,CACpCtC,IAAK,YACLU,MAAO,CACLmnB,cAAe5E,EAAqB,QAAE6E,QAAQ7E,EAAqB,QAAE8E,MAAM,CACzE/nB,IAAKijB,EAAqB,QAAErT,OAAOoY,WACnCzmB,KAAM0hB,EAAqB,QAAEgF,IAC7B/hB,MAAO+c,EAAqB,QAAEiF,SAASjF,EAAqB,QAAEjT,QAAQgY,cAExE5B,OAAQnD,EAAqB,QAAEkF,UAAU,CAAClF,EAAqB,QAAExd,KAAMwd,EAAqB,QAAE6E,QAAQ7E,EAAqB,QAAE8E,MAAM,CACjI/nB,IAAKijB,EAAqB,QAAErT,OAAOoY,WACnCzmB,KAAM0hB,EAAqB,QAAEgF,IAC7B/hB,MAAO+c,EAAqB,QAAEiF,SAASjF,EAAqB,QAAEkF,UAAU,CAAClF,EAAqB,QAAEjT,OAAQiT,EAAqB,QAAE7e,UAAU4jB,gBACrIA,WACN5N,SAAU6I,EAAqB,QAAExd,KAAKuiB,WACtCtE,UAAWT,EAAqB,QAAExd,KAClCke,UAAWV,EAAqB,QAAExd,KAClCme,SAAUX,EAAqB,QAAExd,MAEnCwE,YAAY,GACX,CACDjK,IAAK,eACLU,MAAO,CACLgjB,UAAW,SAAmB0E,GAC5B,OAAO1F,EAAsB,QAAE0F,EAAiBliB,QAIlDyd,UAAW,WACT,OAAO,MAETC,SAAU,cAEZ3Z,YAAY,KAoMd3H,EAAiBxB,UAAUymB,aAAe,WACxC,IAAIc,EAASpoB,KAAK0F,MACdkiB,EAAgBQ,EAAOR,cACvBzB,EAASiC,EAAOjC,OAChB1C,EAAY2E,EAAO3E,UACnBC,EAAY0E,EAAO1E,UACnBC,EAAWyE,EAAOzE,SAClBE,EAA+B,mBAAXsC,EAAwBA,EAAOyB,GAAiBzB,EAKpEvC,OAAuBva,EAGzBua,EADmB,MAAjBgE,EACqB/D,EAEA+D,EAAchiB,KAAI,SAAUyiB,GAEjD,IAAK,IAAI3d,EAAI,EAAGA,EAAImZ,EAAWriB,OAAQkJ,IACrC,GAAImZ,EAAWnZ,GAAG3K,MAAQsoB,EAAiBtoB,IACzC,OAAO8jB,EAAWnZ,GAItB,OAAO2d,KAIX,IAAIvE,EAAoC,MAAjB8D,EAAwB/D,EAAWje,KAAI,SAAU0iB,GACtE,OAAO7F,EAAsB,QAAE6F,EAAEriB,UAC9B2hB,EAAchiB,KAAI,SAAU0iB,GAC/B,OAAO7F,EAAsB,QAAE6F,EAAEriB,UAE/B8d,EAAwC,MAAjB6D,EAAwB/D,EAAWje,KAAI,SAAU0iB,GAC1E,OAAO9F,EAAqB,QAAE8F,EAAEriB,UAC7B2hB,EAAchiB,KAAI,SAAU0iB,GAC/B,OAAO9F,EAAqB,QAAE8F,EAAEriB,UAG9BsiB,EAAiB/E,EAGrBC,EAAWC,EAAWC,EAAUC,EAAsBC,EAAYC,EAAkBC,EAAsBD,EAC1GC,GAEIb,EAAoBqF,EAAe,GAMvC,MAAO,CACL9C,cANkB8C,EAAe,GAOjC7C,kBANsB6C,EAAe,GAOrC5C,gBANoB4C,EAAe,GAOnC3C,oBANwB2C,EAAe,GAOvCrF,kBAAmBA,IAOvB7gB,EAAiBxB,UAAU2nB,kBAAoB,WAC7CxoB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,6BAGP3jB,EAAiBxB,UAAU4nB,0BAA4B,SAAmC/iB,GACpF1F,KAAKmjB,kBAEPnjB,KAAKslB,qBAAqBtlB,KAAKmjB,kBAGjC,IAAIgD,EAASzgB,EAAMygB,OAGjBnmB,KAAKmjB,iBADe,mBAAXgD,EACeA,EAAOlD,EAAgBjjB,KAAKwlB,MAAMtC,kBAAmBljB,KAAKmjB,iBAAkBnjB,KAAKwlB,MAAMG,kBAEvFQ,EAGF,MAApBnmB,KAAKmlB,cACPnlB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,8BAIT3jB,EAAiBxB,UAAU6nB,qBAAuB,WAChD1oB,KAAKklB,YAAa,EAEM,MAApBllB,KAAKmlB,cACPtC,EAAe,QAAE8F,OAAO3oB,KAAKmlB,aAE7BnlB,KAAKmlB,YAAc,OAIvB9iB,EAAiBxB,UAAU+nB,OAAS,WAClC,IAAIC,EAAiB5F,EAAgBjjB,KAAKwlB,MAAMtC,kBAAmBljB,KAAKmjB,iBAAkBnjB,KAAKwlB,MAAMC,eACjGqD,EAAmB9oB,KAAK0F,MAAMyU,SAAS0O,GAC3C,OAAOC,GAAoB/F,EAAiB,QAAEgG,SAASC,KAAKF,IAGvDzmB,EAhVc,CAiVrB0gB,EAAiB,QAAEkG,WAErBnpB,EAAiB,QAAIuC,EACrBxC,EAAOC,QAAUA,EAAiB,S,qBCtkBlC,IAAI+T,EAAa,EAAQ,QAezBhU,EAAOC,QAJP,SAAqBC,GACnB,OAAO8T,EAAW7T,KAAMD,GAAK0D,IAAI1D,K,kCCGnC,EAAQ,QAERD,EAAQiC,YAAa,EACrBjC,EAAiB,QAEjB,SAAmBopB,EAAMC,EAAMC,GAK7B,IAFA,IAAIC,EAAe,GAEV3e,EAAI,EAAGA,EAAIwe,EAAK1nB,OAAQkJ,IAC/B2e,EAAaH,EAAKxe,GAAG3K,KAAO2K,EAG9B,IAAI4e,EAAe,GAEnB,IAAS5e,EAAI,EAAGA,EAAIye,EAAK3nB,OAAQkJ,IAC/B4e,EAAaH,EAAKze,GAAG3K,KAAO2K,EAM9B,IAAI2P,EAAM,GAEV,IAAS3P,EAAI,EAAGA,EAAIye,EAAK3nB,OAAQkJ,IAC/B2P,EAAI3P,GAAKye,EAAKze,GAGhB,IAASA,EAAI,EAAGA,EAAIwe,EAAK1nB,OAAQkJ,IAC/B,IAAK9J,OAAOC,UAAUC,eAAeI,KAAKooB,EAAcJ,EAAKxe,GAAG3K,KAAM,CAGpE,IAAIuR,EAAO8X,EAAS1e,EAAGwe,EAAKxe,IAEhB,MAAR4G,GACF+I,EAAI3Y,KAAK4P,GAMf,OAAO+I,EAAI4E,MAAK,SAAU5a,EAAGC,GAC3B,IAAIilB,EAAaD,EAAajlB,EAAEtE,KAC5BypB,EAAaF,EAAahlB,EAAEvE,KAC5B0pB,EAAaJ,EAAahlB,EAAEtE,KAC5B2pB,EAAaL,EAAa/kB,EAAEvE,KAEhC,GAAkB,MAAdwpB,GAAoC,MAAdC,EAExB,OAAOF,EAAajlB,EAAEtE,KAAOupB,EAAahlB,EAAEvE,KACvC,GAAkB,MAAd0pB,GAAoC,MAAdC,EAE/B,OAAOL,EAAahlB,EAAEtE,KAAOspB,EAAa/kB,EAAEvE,KACvC,GAAkB,MAAdwpB,EAAoB,CAM7B,IAAK,IAAI7e,EAAI,EAAGA,EAAIye,EAAK3nB,OAAQkJ,IAAK,CACpC,IAAIif,EAAQR,EAAKze,GAAG3K,IAEpB,GAAKa,OAAOC,UAAUC,eAAeI,KAAKmoB,EAAcM,GAAxD,CAIA,GAAIJ,EAAaD,EAAaK,IAAUD,EAAaL,EAAaM,GAChE,OAAQ,EACH,GAAIJ,EAAaD,EAAaK,IAAUD,EAAaL,EAAaM,GACvE,OAAO,GAKX,OAAO,EAIT,IAASjf,EAAI,EAAGA,EAAIye,EAAK3nB,OAAQkJ,IAAK,CAChCif,EAAQR,EAAKze,GAAG3K,IAEpB,GAAKa,OAAOC,UAAUC,eAAeI,KAAKmoB,EAAcM,GAAxD,CAIA,GAAIH,EAAaF,EAAaK,IAAUF,EAAaJ,EAAaM,GAChE,OAAO,EACF,GAAIH,EAAaF,EAAaK,IAAUF,EAAaJ,EAAaM,GACvE,OAAQ,GAKZ,OAAQ,MAIZ9pB,EAAOC,QAAUA,EAAiB,S,mCCjHlC,gGA4DI8pB,EAjCK,SAAUC,EAAKnf,GACpB,GAAI/G,MAAM8E,QAAQohB,GAChB,OAAOA,EACF,GAAI/kB,OAAOwH,YAAY1L,OAAOipB,GACnC,OA9BJ,SAAuBA,EAAKnf,GAC1B,IAAIof,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAK5gB,EAET,IACE,IAAK,IAAiC6gB,EAA7BC,EAAKN,EAAI/kB,OAAOwH,cAAmByd,GAAMG,EAAKC,EAAGhB,QAAQiB,QAChEN,EAAKpoB,KAAKwoB,EAAGzpB,QAETiK,GAAKof,EAAKtoB,SAAWkJ,GAH8Cqf,GAAK,IAK9E,MAAOM,GACPL,GAAK,EACLC,EAAKI,EACL,QACA,KACON,GAAMI,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,EAOEQ,CAAcT,EAAKnf,GAE1B,MAAM,IAAItD,UAAU,wDA2BEmjB,CA5D5B,OA2D2B,EAAMC,QAAQC,MAAM,KACkB,GAC7DC,EAAQd,EAAsB,GAC9Be,EAAQf,EAAsB,GAE9BgB,EAA4B/c,OAAO8c,GAAS,IAAM9c,OAAO6c,GAAS,GAW3DG,EAAa,SAAoBC,GAC1C,OAVOF,EAcAE,EAHEA,GAAOA,EAAID,cAKlBE,EAAgB,GAChBC,GAEU,EASP,SAASC,EAAQrW,GACtB,IAAIsW,EAAsBjqB,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,IAAmBA,UAAU,GAGrFkY,EAAO8C,SAAW+O,GAMjBE,GAAwBH,EAAcnW,KAEzCuW,QAAQC,KAAKxW,GAGbmW,EAAcnW,IAAW,M,2CC7G7B,IAAIyW,EAAiB,EAAQ,QACzB1U,EAAa,EAAQ,QACrB9S,EAAO,EAAQ,QAanBhE,EAAOC,QAJP,SAAoBqE,GAClB,OAAOknB,EAAelnB,EAAQN,EAAM8S,K,mBCKtC9W,EAAOC,QAVP,SAAoB8B,GAClB,IAAI2B,GAAS,EACTkE,EAAS9D,MAAM/B,EAAID,MAKvB,OAHAC,EAAI6H,SAAQ,SAAShJ,GACnBgH,IAASlE,GAAS9C,KAEbgH,I,mBCDT5H,EAAOC,QANP,SAAmB0F,GACjB,OAAO,SAAS/E,GACd,OAAO+E,EAAK/E,M,kCCPhB,IAAIqD,EAEJ,IAAKlD,OAAOiD,KAAM,CAEhB,IAAIJ,EAAM7C,OAAOC,UAAUC,eACvBgC,EAAQlC,OAAOC,UAAUkC,SAEzBE,EAAS,EAAQ,QAGjBqoB,EAAe1qB,OAAOC,UAAUE,qBAChCwqB,GAAkBD,EAAapqB,KAAK,CACtC6B,SAAU,MACT,YACCyoB,EAAkBF,EAAapqB,MAAK,cAAgB,aACpDuqB,EAAY,CAAC,WAAY,iBAAkB,UAAW,iBAAkB,gBAAiB,uBAAwB,eAEjHC,EAA6B,SAAoC3nB,GACnE,IAAI4nB,EAAO5nB,EAAEqF,YACb,OAAOuiB,GAAQA,EAAK9qB,YAAckD,GAGhC6nB,EAAe,CACjBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,wBAAwB,EACxBC,uBAAuB,EACvBC,cAAc,EACdC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,SAAS,EACTC,aAAa,EACbC,YAAY,EACZC,UAAU,EACVC,UAAU,EACVC,OAAO,EACPC,kBAAkB,EAClBC,oBAAoB,EACpBC,SAAS,GAGPC,EAA2B,WAE7B,GAAsB,oBAAXC,OACT,OAAO,EAGT,IAAK,IAAI3N,KAAK2N,OACZ,IACE,IAAKzB,EAAa,IAAMlM,IAAMjc,EAAIvC,KAAKmsB,OAAQ3N,IAAoB,OAAd2N,OAAO3N,IAAoC,iBAAd2N,OAAO3N,GACvF,IACEgM,EAA2B2B,OAAO3N,IAClC,MAAOta,GACP,OAAO,GAGX,MAAOA,GACP,OAAO,EAIX,OAAO,EApBsB,GAoC/BtB,EAAW,SAAcK,GACvB,IAAIyN,EAAsB,OAAXzN,GAAqC,iBAAXA,EACrCoS,EAAoC,sBAAvBzT,EAAM5B,KAAKiD,GACxBnD,EAAciC,EAAOkB,GACrBmpB,EAAW1b,GAAmC,oBAAvB9O,EAAM5B,KAAKiD,GAClCopB,EAAU,GAEd,IAAK3b,IAAa2E,IAAevV,EAC/B,MAAM,IAAIoG,UAAU,sCAGtB,IAAIomB,EAAYhC,GAAmBjV,EAEnC,GAAI+W,GAAYnpB,EAAO3C,OAAS,IAAMiC,EAAIvC,KAAKiD,EAAQ,GACrD,IAAK,IAAIuG,EAAI,EAAGA,EAAIvG,EAAO3C,SAAUkJ,EACnC6iB,EAAQ7rB,KAAK8M,OAAO9D,IAIxB,GAAI1J,GAAemD,EAAO3C,OAAS,EACjC,IAAK,IAAI+hB,EAAI,EAAGA,EAAIpf,EAAO3C,SAAU+hB,EACnCgK,EAAQ7rB,KAAK8M,OAAO+U,SAGtB,IAAK,IAAI5c,KAAQxC,EACTqpB,GAAsB,cAAT7mB,IAAyBlD,EAAIvC,KAAKiD,EAAQwC,IAC3D4mB,EAAQ7rB,KAAK8M,OAAO7H,IAK1B,GAAI4kB,EAGF,IAFA,IAAIkC,EA7CmC,SAA8C1pB,GAEvF,GAAsB,oBAAXspB,SAA2BD,EACpC,OAAO1B,EAA2B3nB,GAGpC,IACE,OAAO2nB,EAA2B3nB,GAClC,MAAOqB,GACP,OAAO,GAoCesoB,CAAqCvpB,GAElDub,EAAI,EAAGA,EAAI+L,EAAUjqB,SAAUke,EAChC+N,GAAoC,gBAAjBhC,EAAU/L,KAAyBjc,EAAIvC,KAAKiD,EAAQsnB,EAAU/L,KACrF6N,EAAQ7rB,KAAK+pB,EAAU/L,IAK7B,OAAO6N,GAIX1tB,EAAOC,QAAUgE,G,qBCnIjB,IAAI6pB,EAAa,EAAQ,QASrB7sB,EAHcF,OAAOC,UAGQC,eAgFjCjB,EAAOC,QAjEP,SAAsBqE,EAAQiQ,EAAOC,EAASC,EAAYC,EAAWC,GACnE,IAAIM,EAtBqB,EAsBTT,EACZuZ,EAAWD,EAAWxpB,GACtB0pB,EAAYD,EAASpsB,OAIzB,GAAIqsB,GAHWF,EAAWvZ,GACD5S,SAEMsT,EAC7B,OAAO,EAGT,IADA,IAAIvR,EAAQsqB,EACLtqB,KAAS,CACd,IAAIxD,EAAM6tB,EAASrqB,GACnB,KAAMuR,EAAY/U,KAAOqU,EAAQtT,EAAeI,KAAKkT,EAAOrU,IAC1D,OAAO,EAIX,IAAI+tB,EAAatZ,EAAMhN,IAAIrD,GACvBwd,EAAanN,EAAMhN,IAAI4M,GAC3B,GAAI0Z,GAAcnM,EAChB,OAAOmM,GAAc1Z,GAASuN,GAAcxd,EAE9C,IAAIsD,GAAS,EACb+M,EAAM5S,IAAIuC,EAAQiQ,GAClBI,EAAM5S,IAAIwS,EAAOjQ,GAGjB,IADA,IAAI4pB,EAAWjZ,IACNvR,EAAQsqB,GAAW,CAE1B,IAAIpa,EAAWtP,EADfpE,EAAM6tB,EAASrqB,IAEXue,EAAW1N,EAAMrU,GAErB,GAAIuU,EACF,IAAIyN,EAAWjN,EACXR,EAAWwN,EAAUrO,EAAU1T,EAAKqU,EAAOjQ,EAAQqQ,GACnDF,EAAWb,EAAUqO,EAAU/hB,EAAKoE,EAAQiQ,EAAOI,GAGzD,UAAmBnL,IAAb0Y,EACGtO,IAAaqO,GAAYvN,EAAUd,EAAUqO,EAAUzN,EAASC,EAAYE,GAC7EuN,GACD,CACLta,GAAS,EACT,MAEFsmB,IAAaA,EAAkB,eAAPhuB,GAE1B,GAAI0H,IAAWsmB,EAAU,CACvB,IAAIC,EAAU7pB,EAAOiF,YACjB6kB,EAAU7Z,EAAMhL,YAGhB4kB,GAAWC,KACV,gBAAiB9pB,MAAU,gBAAiBiQ,IACzB,mBAAX4Z,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDxmB,GAAS,GAKb,OAFA+M,EAAc,OAAErQ,GAChBqQ,EAAc,OAAEJ,GACT3M,I,mBCpDT5H,EAAOC,QALP,SAAkBW,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,mB,qBCDvB,IAAIytB,EAAW,EAAQ,QACnBtc,EAAW,EAAQ,QACnBjH,EAAW,EAAQ,QAMnBwjB,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAevgB,SA8CnBlO,EAAOC,QArBP,SAAkBW,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIkK,EAASlK,GACX,OA1CM,IA4CR,GAAImR,EAASnR,GAAQ,CACnB,IAAI2T,EAAgC,mBAAjB3T,EAAMoE,QAAwBpE,EAAMoE,UAAYpE,EACnEA,EAAQmR,EAASwC,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAAT3T,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQytB,EAASztB,GACjB,IAAI8tB,EAAWH,EAAWrjB,KAAKtK,GAC/B,OAAQ8tB,GAAYF,EAAUtjB,KAAKtK,GAC/B6tB,EAAa7tB,EAAMiD,MAAM,GAAI6qB,EAAW,EAAI,GAC3CJ,EAAWpjB,KAAKtK,GAvDb,KAuD6BA,I,qBC5DvC,IAAIb,EAAe,EAAQ,QAkB3BC,EAAOC,QAPP,SAAsBC,GACpB,IAAIuB,EAAOtB,KAAKC,SACZsD,EAAQ3D,EAAa0B,EAAMvB,GAE/B,OAAOwD,EAAQ,OAAI8F,EAAY/H,EAAKiC,GAAO,K,kCCb7CzD,EAAQiC,YAAa,EAErB,IAAIkgB,EAAWrhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGTjH,EAAiB,QAgBjB,SAAgB8gB,EAAK4N,GACnB,OAAOvM,EAAS,GAAIwM,EAAeD,EAAQ,CACzC5N,IAAKA,KAVT,IANgC9e,EAM5BU,EAAW,EAAQ,QAEnBksB,GAR4B5sB,EAQOU,IAPvBV,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAQX2sB,EAAgBxM,EAAS,GAAIyM,EAAmB,QAAE1Y,SAAU,CAC9D2J,UAAW,MASb9f,EAAOC,QAAUA,EAAiB,S,qBCxClC,IAII4M,EAJY,EAAQ,OAITiJ,CAHJ,EAAQ,QAGY,YAE/B9V,EAAOC,QAAU4M,G,kCCFjB5M,EAAQiC,YAAa,EACrBjC,EAAiB,QAEjB,SAAoBmG,GAClB,IAAIoU,EAAM,GAEV,IAAK,IAAIta,KAAOkG,EACTrF,OAAOC,UAAUC,eAAeI,KAAK+E,EAAOlG,KAIjDsa,EAAIta,GAA6B,iBAAfkG,EAAMlG,GAAoBkG,EAAMlG,GAAOkG,EAAMlG,GAAK6gB,KAGtE,OAAOvG,GAGTxa,EAAOC,QAAUA,EAAiB,S,qBCrBlC,IAAI8V,EAAe,EAAQ,QASvB9U,EAHcF,OAAOC,UAGQC,eAoBjCjB,EAAOC,QATP,SAAiBC,GACf,IAAIuB,EAAOtB,KAAKC,SAChB,GAAI2V,EAAc,CAChB,IAAInO,EAASnG,EAAKvB,GAClB,MArBiB,8BAqBV0H,OAA4B4B,EAAY5B,EAEjD,OAAO3G,EAAeI,KAAKI,EAAMvB,GAAOuB,EAAKvB,QAAOsJ,I,kCCxBtDvJ,EAAQiC,YAAa,EAErB,IAAIkgB,EAAWrhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGLob,EAAe,WACjB,SAAS5X,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAASG,EAAuBzgB,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GA0Bf,IAEI0gB,EAAcD,EAFD,EAAQ,SAMrBE,EAAeF,EAFD,EAAQ,SAMtBG,EAAYH,EAFA,EAAQ,SAMpBK,EAAmBL,EAFD,EAAQ,SAM1BM,EAAQN,EAFD,EAAQ,SAMfO,EAAwBP,EAFD,EAAQ,SAM/BQ,EAAUR,EAFD,EAAQ,SAMjBS,EAAcT,EAFD,EAAQ,SAgBzB,IAAIpgB,EAAkB,SAAU2iB,GAc9B,SAAS3iB,EAAgBuD,GACvB,IAAIqf,EAAQ/kB,MAjFhB,SAAyBglB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAiFpB6d,CAAgBjlB,KAAMmC,GAEtB2iB,EAAiB5jB,KAAKlB,KAAM0F,GAE5B1F,KAAKmlB,YAAc,KACnBnlB,KAAKolB,SAAW,EAChBplB,KAAKqlB,gBAAkB,EACvBrlB,KAAKmjB,iBAAmB,KAExBnjB,KAAKslB,qBAAuB,SAAUnC,GAQpC,IAPA,IAAIwL,EAAS5J,EAAMS,MACfC,EAAgBkJ,EAAOlJ,cACvBC,EAAoBiJ,EAAOjJ,kBAC3BC,EAAkBgJ,EAAOhJ,gBACzBC,EAAsB+I,EAAO/I,oBAC7BgJ,GAAY,EAEPlkB,EAAI,EAAGA,EAAIyY,EAAiB3hB,OAAQkJ,IAAK,CAChD,IAAImb,EAAkB1C,EAAiBzY,GACnCob,GAAQ,EAEZ,IAAK,IAAI/lB,KAAO8lB,EACd,GAAKjlB,OAAOC,UAAUC,eAAeI,KAAK2kB,EAAiB9lB,GAA3D,CAIA,IAAI4gB,EAAakF,EAAgB9lB,GAEP,iBAAf4gB,IACJmF,IACHA,GAAQ,EACR8I,GAAY,EACZnJ,EAAc/a,GAAKuX,EAAS,GAAIwD,EAAc/a,IAC9Cgb,EAAkBhb,GAAKuX,EAAS,GAAIyD,EAAkBhb,IACtDib,EAAgBjb,GAAKuX,EAAS,GAAI0D,EAAgBjb,IAClDkb,EAAoBlb,GAAKuX,EAAS,GAAI2D,EAAoBlb,KAG5D+a,EAAc/a,GAAG3K,GAAO4gB,EACxB+E,EAAkBhb,GAAG3K,GAAO,EAC5B4lB,EAAgBjb,GAAG3K,GAAO4gB,EAC1BiF,EAAoBlb,GAAG3K,GAAO,IAKhC6uB,GACF7J,EAAMgB,SAAS,CACbN,cAAeA,EACfC,kBAAmBA,EACnBC,gBAAiBA,EACjBC,oBAAqBA,KAK3B5lB,KAAKgmB,0BAA4B,WAG/BjB,EAAMI,YAActC,EAAe,SAAE,SAAUoD,GAC7C,IAAIpC,EAAakB,EAAMrf,MAAMygB,OAAOpB,EAAMS,MAAMG,iBAGhD,GA1FR,SAAgCF,EAAeU,EAAQT,GACrD,IAAK,IAAIhb,EAAI,EAAGA,EAAI+a,EAAcjkB,OAAQkJ,IACxC,IAAKoY,EAA+B,QAAE2C,EAAc/a,GAAIyb,EAAOzb,GAAIgb,EAAkBhb,IACnF,OAAO,EAIX,OAAO,EAmFG0b,CAAuBrB,EAAMS,MAAMC,cAAe5B,EAAYkB,EAAMS,MAAME,mBAI5E,OAFAX,EAAMI,YAAc,UACpBJ,EAAMM,gBAAkB,GAI1B,IAAIgB,EAAcJ,GAAarD,EAA0B,UAErD0D,EAAYD,EAActB,EAAMK,SAQpC,GAPAL,EAAMK,SAAWiB,EACjBtB,EAAMM,gBAAkBN,EAAMM,gBAAkBiB,EAE5CvB,EAAMM,gBAzGD,IAAO,GAyGyB,KACvCN,EAAMM,gBAAkB,GAGI,IAA1BN,EAAMM,gBAMR,OAJAN,EAAMI,YAAc,UAEpBJ,EAAMiB,4BAYR,IAPA,IAAIO,GAA0BxB,EAAMM,gBAAkBzX,KAAK4Y,MAAMzB,EAAMM,iBAtH9D,IAAO,MAAP,IAAO,MAAP,IAAO,IAuHZoB,EAAkB7Y,KAAK4Y,MAAMzB,EAAMM,iBAvH9B,IAAO,KAwHZb,EAAqB,GACrBC,EAAyB,GACzBH,EAAmB,GACnBC,EAAuB,GAElB7Z,EAAI,EAAGA,EAAImZ,EAAWriB,OAAQkJ,IAAK,CAC1C,IAAImkB,EAAYhL,EAAWnZ,GACvBkc,EAAkB,GAClBC,EAAqB,GACrBC,EAAoB,GACpBC,EAAuB,GAE3B,IAAK,IAAIhnB,KAAO8uB,EACd,GAAKjuB,OAAOC,UAAUC,eAAeI,KAAK2tB,EAAW9uB,GAArD,CAIA,IAAI4gB,EAAakO,EAAU9uB,GAE3B,GAA0B,iBAAf4gB,EACTiG,EAAgB7mB,GAAO4gB,EACvBkG,EAAmB9mB,GAAO,EAC1B+mB,EAAkB/mB,GAAO4gB,EACzBoG,EAAqBhnB,GAAO,MACvB,CAIL,IAHA,IAAIinB,EAAyBjC,EAAMS,MAAMG,gBAAgBjb,GAAG3K,GACxDknB,EAA4BlC,EAAMS,MAAMI,oBAAoBlb,GAAG3K,GAE1DwjB,EAAI,EAAGA,EAAIkD,EAAiBlD,IAAK,CACxC,IAAI2D,EAAWxE,EAAmB,QArJjC,IAAO,GAqJyC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE/KqH,EAAyBE,EAAS,GAClCD,EAA4BC,EAAS,GAGvC,IAAIC,EAAYzE,EAAmB,QA3JhC,IAAO,GA2JwC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE5KyH,EAAaD,EAAU,GACvBE,EAAaF,EAAU,GAC3BP,EAAgB7mB,GAAOinB,GAA0BI,EAAaJ,GAA0BT,EACxFM,EAAmB9mB,GAAOknB,GAA6BI,EAAaJ,GAA6BV,EACjGO,EAAkB/mB,GAAOinB,EACzBD,EAAqBhnB,GAAOknB,GAIhC3C,EAAiB5Z,GAAKkc,EACtBrC,EAAqB7Z,GAAKmc,EAC1BrC,EAAmB9Z,GAAKoc,EACxBrC,EAAuB/Z,GAAKqc,EAG9BhC,EAAMI,YAAc,KAEpBJ,EAAMM,iBAAmBoB,GA9KhB,IAAO,IAgLhB1B,EAAMgB,SAAS,CACbN,cAAenB,EACfoB,kBAAmBnB,EACnBoB,gBAAiBnB,EACjBoB,oBAAqBnB,IAGvBM,EAAM5B,iBAAmB,KAEzB4B,EAAMiB,gCAIVhmB,KAAKwlB,MAAQxlB,KAAKsnB,eAmDpB,OAhSF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAgD3GG,CAAUxlB,EAAiB2iB,GAE3B3C,EAAahgB,EAAiB,KAAM,CAAC,CACnCpC,IAAK,YACLU,MAAO,CAELmnB,cAAe5E,EAAqB,QAAE6E,QAAQ7E,EAAqB,QAAEiF,SAASjF,EAAqB,QAAEjT,SACrGoW,OAAQnD,EAAqB,QAAExd,KAAKuiB,WACpC5N,SAAU6I,EAAqB,QAAExd,KAAKuiB,YAExC/d,YAAY,KAyKd7H,EAAgBtB,UAAUymB,aAAe,WACvC,IAAIc,EAASpoB,KAAK0F,MACdkiB,EAAgBQ,EAAOR,cACvBzB,EAASiC,EAAOjC,OAChBV,EAAgBmC,GAAiBzB,IAASvgB,IAAI6c,EAAsB,SACpEiD,EAAoBD,EAAc7f,KAAI,SAAU6a,GAClD,OAAO+B,EAAqB,QAAE/B,MAEhC,MAAO,CACLgF,cAAeA,EACfC,kBAAmBA,EACnBC,gBAAiBF,EACjBG,oBAAqBF,IAIzBvjB,EAAgBtB,UAAU2nB,kBAAoB,WAC5CxoB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,6BAGP7jB,EAAgBtB,UAAU4nB,0BAA4B,SAAmC/iB,GAC1D,MAAzB1F,KAAKmjB,kBAEPnjB,KAAKslB,qBAAqBtlB,KAAKmjB,kBAGjCnjB,KAAKmjB,iBAAmBzd,EAAMygB,OAAOnmB,KAAKwlB,MAAMG,iBAExB,MAApB3lB,KAAKmlB,cACPnlB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,8BAIT7jB,EAAgBtB,UAAU6nB,qBAAuB,WACvB,MAApB1oB,KAAKmlB,cACPtC,EAAe,QAAE8F,OAAO3oB,KAAKmlB,aAE7BnlB,KAAKmlB,YAAc,OAIvBhjB,EAAgBtB,UAAU+nB,OAAS,WACjC,IAAIE,EAAmB9oB,KAAK0F,MAAMyU,SAASna,KAAKwlB,MAAMC,eACtD,OAAOqD,GAAoB/F,EAAiB,QAAEgG,SAASC,KAAKF,IAGvD3mB,EApOa,CAqOpB4gB,EAAiB,QAAEkG,WAErBnpB,EAAiB,QAAIqC,EACrBtC,EAAOC,QAAUA,EAAiB,S,uBCpVlC,IAAIgvB,EAAc,EAAQ,QACtBC,EAAsB,EAAQ,QAC9BC,EAAW,EAAQ,QACnBvmB,EAAU,EAAQ,QAClBwmB,EAAW,EAAQ,QA0BvBpvB,EAAOC,QAjBP,SAAsBW,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKuuB,EAEW,iBAATvuB,EACFgI,EAAQhI,GACXsuB,EAAoBtuB,EAAM,GAAIA,EAAM,IACpCquB,EAAYruB,GAEXwuB,EAASxuB,K,sBC3BlB,kBAGEyuB,EADoB,oBAAX7B,OACHA,YACqB,IAAXlU,EACVA,EACmB,oBAATpD,KACVA,KAEA,GAGRlW,EAAOC,QAAUovB,I,6CCZjB,IAAIC,EAAkB,EAAQ,QAC1B3uB,EAAe,EAAQ,QA0B3BX,EAAOC,QAVP,SAASsT,EAAY3S,EAAO2T,EAAOC,EAASC,EAAYE,GACtD,OAAI/T,IAAU2T,IAGD,MAAT3T,GAA0B,MAAT2T,IAAmB5T,EAAaC,KAAWD,EAAa4T,GACpE3T,GAAUA,GAAS2T,GAAUA,EAE/B+a,EAAgB1uB,EAAO2T,EAAOC,EAASC,EAAYlB,EAAaoB,M,mBCvBzE,IAGI4a,EAAW,mBAoBfvvB,EAAOC,QAVP,SAAiBW,EAAOe,GACtB,IAAIsJ,SAAcrK,EAGlB,SAFAe,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARsJ,GACU,UAARA,GAAoBskB,EAASrkB,KAAKtK,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQe,I,kCCnBjD,IAAIyH,EAAc,EAAQ,QAEtBH,EAAS,EAAQ,QAErBjJ,EAAOC,QAAU,WACf,IAAIoV,EAAWjM,IAQf,OAPAH,EAAOlI,OAAQ,CACb4Y,GAAItE,GACH,CACDsE,GAAI,WACF,OAAO5Y,OAAO4Y,KAAOtE,KAGlBA,I,oCCbTpV,EAAQiC,YAAa,EAErB,IAAIkgB,EAAWrhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGLob,EAAe,WACjB,SAAS5X,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAASG,EAAuBzgB,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GA0Bf,IAEI0gB,EAAcD,EAFD,EAAQ,SAMrBE,EAAeF,EAFD,EAAQ,SAMtBG,EAAYH,EAFA,EAAQ,SAMpBK,EAAmBL,EAFD,EAAQ,SAM1BM,EAAQN,EAFD,EAAQ,SAMfO,EAAwBP,EAFD,EAAQ,SAM/BQ,EAAUR,EAFD,EAAQ,SAMjBS,EAAcT,EAFD,EAAQ,SAMrBtgB,EAAS,SAAU6iB,GAerB,SAAS7iB,EAAOyD,GACd,IAAIqf,EAAQ/kB,MAxEhB,SAAyBglB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAwEpB6d,CAAgBjlB,KAAMiC,GAEtB6iB,EAAiB5jB,KAAKlB,KAAM0F,GAE5B1F,KAAKqvB,cAAe,EACpBrvB,KAAKmlB,YAAc,KACnBnlB,KAAKolB,SAAW,EAChBplB,KAAKqlB,gBAAkB,EACvBrlB,KAAK6lB,gBAAkB,KAEvB7lB,KAAKslB,qBAAuB,SAAUuJ,GACpC,IAAI/I,GAAQ,EACR6I,EAAS5J,EAAMS,MACf/E,EAAekO,EAAOlO,aACtBC,EAAkBiO,EAAOjO,gBACzB4O,EAAiBX,EAAOW,eACxBC,EAAoBZ,EAAOY,kBAE/B,IAAK,IAAIxvB,KAAO8uB,EACd,GAAKjuB,OAAOC,UAAUC,eAAeI,KAAK2tB,EAAW9uB,GAArD,CAIA,IAAI4gB,EAAakO,EAAU9uB,GAED,iBAAf4gB,IACJmF,IACHA,GAAQ,EACRrF,EAAewB,EAAS,GAAIxB,GAC5BC,EAAkBuB,EAAS,GAAIvB,GAC/B4O,EAAiBrN,EAAS,GAAIqN,GAC9BC,EAAoBtN,EAAS,GAAIsN,IAGnC9O,EAAa1gB,GAAO4gB,EACpBD,EAAgB3gB,GAAO,EACvBuvB,EAAevvB,GAAO4gB,EACtB4O,EAAkBxvB,GAAO,GAIzB+lB,GACFf,EAAMgB,SAAS,CACbtF,aAAcA,EACdC,gBAAiBA,EACjB4O,eAAgBA,EAChBC,kBAAmBA,KAKzBvvB,KAAKgmB,0BAA4B,WAG/BjB,EAAMI,YAActC,EAAe,SAAE,SAAUoD,GAE7C,IAAIuJ,EAAazK,EAAMrf,MAAMO,MAE7B,GAAI6c,EAA+B,QAAEiC,EAAMS,MAAM/E,aAAc+O,EAAYzK,EAAMS,MAAM9E,iBASrF,OARIqE,EAAMsK,cAAgBtK,EAAMrf,MAAM+pB,QACpC1K,EAAMrf,MAAM+pB,SAId1K,EAAMI,YAAc,KACpBJ,EAAMsK,cAAe,OACrBtK,EAAMM,gBAAkB,GAI1BN,EAAMsK,cAAe,EAErB,IAAIhJ,EAAcJ,GAAarD,EAA0B,UAErD0D,EAAYD,EAActB,EAAMK,SAQpC,GAPAL,EAAMK,SAAWiB,EACjBtB,EAAMM,gBAAkBN,EAAMM,gBAAkBiB,EAE5CvB,EAAMM,gBAlGD,IAAO,GAkGyB,KACvCN,EAAMM,gBAAkB,GAGI,IAA1BN,EAAMM,gBAMR,OAJAN,EAAMI,YAAc,UAEpBJ,EAAMiB,4BAKR,IAAIO,GAA0BxB,EAAMM,gBAAkBzX,KAAK4Y,MAAMzB,EAAMM,iBA/G9D,IAAO,MAAP,IAAO,MAAP,IAAO,IAgHZoB,EAAkB7Y,KAAK4Y,MAAMzB,EAAMM,iBAhH9B,IAAO,KAiHZyB,EAAoB,GACpBC,EAAuB,GACvBH,EAAkB,GAClBC,EAAqB,GAEzB,IAAK,IAAI9mB,KAAOyvB,EACd,GAAK5uB,OAAOC,UAAUC,eAAeI,KAAKsuB,EAAYzvB,GAAtD,CAIA,IAAI4gB,EAAa6O,EAAWzvB,GAE5B,GAA0B,iBAAf4gB,EACTiG,EAAgB7mB,GAAO4gB,EACvBkG,EAAmB9mB,GAAO,EAC1B+mB,EAAkB/mB,GAAO4gB,EACzBoG,EAAqBhnB,GAAO,MACvB,CAIL,IAHA,IAAIinB,EAAyBjC,EAAMS,MAAM8J,eAAevvB,GACpDknB,EAA4BlC,EAAMS,MAAM+J,kBAAkBxvB,GAErD2K,EAAI,EAAGA,EAAI+b,EAAiB/b,IAAK,CACxC,IAAIwc,EAAWxE,EAAmB,QAvI/B,IAAO,GAuIuC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE/KqH,EAAyBE,EAAS,GAClCD,EAA4BC,EAAS,GAGvC,IAAIC,EAAYzE,EAAmB,QA7I9B,IAAO,GA6IsC,IAAMsE,EAAwBC,EAA2BtG,EAAWC,IAAKD,EAAW1K,UAAW0K,EAAWzK,QAASyK,EAAWhB,WAE5KyH,EAAaD,EAAU,GACvBE,EAAaF,EAAU,GAC3BP,EAAgB7mB,GAAOinB,GAA0BI,EAAaJ,GAA0BT,EACxFM,EAAmB9mB,GAAOknB,GAA6BI,EAAaJ,GAA6BV,EACjGO,EAAkB/mB,GAAOinB,EACzBD,EAAqBhnB,GAAOknB,GAIhClC,EAAMI,YAAc,KAEpBJ,EAAMM,iBAAmBoB,GA1JhB,IAAO,IA4JhB1B,EAAMgB,SAAS,CACbtF,aAAcmG,EACdlG,gBAAiBmG,EACjByI,eAAgBxI,EAChByI,kBAAmBxI,IAGrBhC,EAAMc,gBAAkB,KAExBd,EAAMiB,gCAIVhmB,KAAKwlB,MAAQxlB,KAAKsnB,eAyDpB,OAlRF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAsC3GG,CAAU1lB,EAAQ6iB,GAElB3C,EAAalgB,EAAQ,KAAM,CAAC,CAC1BlC,IAAK,YACLU,MAAO,CAELivB,aAAc1M,EAAqB,QAAEiF,SAASjF,EAAqB,QAAEjT,QACrE9J,MAAO+c,EAAqB,QAAEiF,SAASjF,EAAqB,QAAEkF,UAAU,CAAClF,EAAqB,QAAEjT,OAAQiT,EAAqB,QAAE7e,UAAU4jB,WACzI5N,SAAU6I,EAAqB,QAAExd,KAAKuiB,WACtC0H,OAAQzM,EAAqB,QAAExd,MAEjCwE,YAAY,KA8Jd/H,EAAOpB,UAAUymB,aAAe,WAC9B,IAAIc,EAASpoB,KAAK0F,MACdgqB,EAAetH,EAAOsH,aACtBzpB,EAAQmiB,EAAOniB,MAEfwa,EAAeiP,GAAgBjN,EAAsB,QAAExc,GAEvDya,EAAkB8B,EAAqB,QAAE/B,GAE7C,MAAO,CACLA,aAAcA,EACdC,gBAAiBA,EACjB4O,eAAgB7O,EAChB8O,kBAAmB7O,IASvBze,EAAOpB,UAAU2nB,kBAAoB,WACnCxoB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,6BAGP/jB,EAAOpB,UAAU4nB,0BAA4B,SAAmC/iB,GAClD,MAAxB1F,KAAK6lB,iBAEP7lB,KAAKslB,qBAAqBtlB,KAAK6lB,iBAGjC7lB,KAAK6lB,gBAAkBngB,EAAMO,MAEL,MAApBjG,KAAKmlB,cACPnlB,KAAKolB,SAAWxC,EAA0B,UAC1C5iB,KAAKgmB,8BAIT/jB,EAAOpB,UAAU6nB,qBAAuB,WACd,MAApB1oB,KAAKmlB,cACPtC,EAAe,QAAE8F,OAAO3oB,KAAKmlB,aAE7BnlB,KAAKmlB,YAAc,OAIvBljB,EAAOpB,UAAU+nB,OAAS,WACxB,IAAIE,EAAmB9oB,KAAK0F,MAAMyU,SAASna,KAAKwlB,MAAM/E,cACtD,OAAOqI,GAAoB/F,EAAiB,QAAEgG,SAASC,KAAKF,IAGvD7mB,EAhOI,CAiOX8gB,EAAiB,QAAEkG,WAErBnpB,EAAiB,QAAImC,EACrBpC,EAAOC,QAAUA,EAAiB,S,mBC1TlCD,EAAOC,QAJP,SAAkByH,EAAOxH,GACvB,OAAOwH,EAAM9D,IAAI1D,K,qBCTnB,IAAI+T,EAAK,EAAQ,QAoBjBjU,EAAOC,QAVP,SAAsB4R,EAAO3R,GAE3B,IADA,IAAIyB,EAASkQ,EAAMlQ,OACZA,KACL,GAAIsS,EAAGpC,EAAMlQ,GAAQ,GAAIzB,GACvB,OAAOyB,EAGX,OAAQ,I,qBCjBV,IAII8M,EAJY,EAAQ,OAIdqH,CAHC,EAAQ,QAGO,OAE1B9V,EAAOC,QAAUwO,G,8mFCNF,cACb,OAAO,WACL,OAAOrE,ICFJ,SAAS,EAAEwH,GAChB,OAAOA,EAAE,GAEJ,SAAS,EAAEA,GAChB,OAAOA,EAAE,G,UCJX,SAASke,IACP3vB,KAAK+J,EAAI,KAGJ,SAAS6lB,EAAaC,GAC3BA,EAAKC,EACLD,EAAKE,EACLF,EAAKG,EACLH,EAAKI,EACLJ,EAAKK,EACLL,EAAKM,EAAI,KAwMX,SAASC,EAAmBC,EAAMR,GAChC,IAAIS,EAAIT,EACJU,EAAIV,EAAKI,EACTO,EAASF,EAAER,EAEXU,EACEA,EAAOR,IAAMM,EAAGE,EAAOR,EAAIO,EAAOC,EAAOP,EAAIM,EAEjDF,EAAKtmB,EAAIwmB,EAGXA,EAAET,EAAIU,EACNF,EAAER,EAAIS,EACND,EAAEL,EAAIM,EAAEP,EACJM,EAAEL,IAAGK,EAAEL,EAAEH,EAAIQ,GACjBC,EAAEP,EAAIM,EAGR,SAASG,EAAoBJ,EAAMR,GACjC,IAAIS,EAAIT,EACJU,EAAIV,EAAKG,EACTQ,EAASF,EAAER,EAEXU,EACEA,EAAOR,IAAMM,EAAGE,EAAOR,EAAIO,EAAOC,EAAOP,EAAIM,EAEjDF,EAAKtmB,EAAIwmB,EAGXA,EAAET,EAAIU,EACNF,EAAER,EAAIS,EACND,EAAEN,EAAIO,EAAEN,EACJK,EAAEN,IAAGM,EAAEN,EAAEF,EAAIQ,GACjBC,EAAEN,EAAIK,EAGR,SAASI,EAAcb,GACrB,KAAOA,EAAKG,GACVH,EAAOA,EAAKG,EAGd,OAAOH,EA/OTF,EAAa9uB,UAAY,CACvBuI,YAAaumB,EACbgB,OAAQ,SAAgBC,EAAOf,GAC7B,IAAIW,EAAQK,EAASC,EAErB,GAAIF,EAAO,CAMT,GALAf,EAAKK,EAAIU,EACTf,EAAKM,EAAIS,EAAMT,EACXS,EAAMT,IAAGS,EAAMT,EAAED,EAAIL,GACzBe,EAAMT,EAAIN,EAENe,EAAMX,EAAG,CAGX,IAFAW,EAAQA,EAAMX,EAEPW,EAAMZ,GACXY,EAAQA,EAAMZ,EAGhBY,EAAMZ,EAAIH,OAEVe,EAAMX,EAAIJ,EAGZW,EAASI,OACA5wB,KAAK+J,GACd6mB,EAAQF,EAAc1wB,KAAK+J,GAC3B8lB,EAAKK,EAAI,KACTL,EAAKM,EAAIS,EACTA,EAAMV,EAAIU,EAAMZ,EAAIH,EACpBW,EAASI,IAETf,EAAKK,EAAIL,EAAKM,EAAI,KAClBnwB,KAAK+J,EAAI8lB,EACTW,EAAS,MAQX,IALAX,EAAKG,EAAIH,EAAKI,EAAI,KAClBJ,EAAKC,EAAIU,EACTX,EAAKE,GAAI,EACTa,EAAQf,EAEDW,GAAUA,EAAOT,GAGlBS,KAFJK,EAAUL,EAAOV,GAEME,GACrBc,EAAQD,EAAQZ,IAEHa,EAAMf,GACjBS,EAAOT,EAAIe,EAAMf,GAAI,EACrBc,EAAQd,GAAI,EACZa,EAAQC,IAEJD,IAAUJ,EAAOP,IACnBG,EAAmBpwB,KAAMwwB,GAEzBA,GADAI,EAAQJ,GACOV,GAGjBU,EAAOT,GAAI,EACXc,EAAQd,GAAI,EACZU,EAAoBzwB,KAAM6wB,KAG5BC,EAAQD,EAAQb,IAEHc,EAAMf,GACjBS,EAAOT,EAAIe,EAAMf,GAAI,EACrBc,EAAQd,GAAI,EACZa,EAAQC,IAEJD,IAAUJ,EAAOR,IACnBS,EAAoBzwB,KAAMwwB,GAE1BA,GADAI,EAAQJ,GACOV,GAGjBU,EAAOT,GAAI,EACXc,EAAQd,GAAI,EACZK,EAAmBpwB,KAAM6wB,IAI7BL,EAASI,EAAMd,EAGjB9vB,KAAK+J,EAAEgmB,GAAI,GAEbgB,OAAQ,SAAgBlB,GAClBA,EAAKM,IAAGN,EAAKM,EAAED,EAAIL,EAAKK,GACxBL,EAAKK,IAAGL,EAAKK,EAAEC,EAAIN,EAAKM,GAC5BN,EAAKM,EAAIN,EAAKK,EAAI,KAClB,IACIc,EAGA7H,EACA8H,EALAT,EAASX,EAAKC,EAEdoB,EAAOrB,EAAKG,EACZmB,EAAQtB,EAAKI,EAmCjB,GAhC0D9G,EAArD+H,EAA6BC,EAA+BT,EAAcS,GAA/BD,EAA9BC,EAEdX,EACEA,EAAOR,IAAMH,EAAMW,EAAOR,EAAI7G,EAAUqH,EAAOP,EAAI9G,EAEvDnpB,KAAK+J,EAAIof,EAGP+H,GAAQC,GACVF,EAAM9H,EAAK4G,EACX5G,EAAK4G,EAAIF,EAAKE,EACd5G,EAAK6G,EAAIkB,EACTA,EAAKpB,EAAI3G,EAELA,IAASgI,GACXX,EAASrH,EAAK2G,EACd3G,EAAK2G,EAAID,EAAKC,EACdD,EAAO1G,EAAK8G,EACZO,EAAOR,EAAIH,EACX1G,EAAK8G,EAAIkB,EACTA,EAAMrB,EAAI3G,IAEVA,EAAK2G,EAAIU,EACTA,EAASrH,EACT0G,EAAO1G,EAAK8G,KAGdgB,EAAMpB,EAAKE,EACXF,EAAO1G,GAGL0G,IAAMA,EAAKC,EAAIU,IACfS,EAEJ,GAAIpB,GAAQA,EAAKE,EACfF,EAAKE,GAAI,MADX,CAKA,EAAG,CACD,GAAIF,IAAS7vB,KAAK+J,EAAG,MAErB,GAAI8lB,IAASW,EAAOR,GAUlB,IATAgB,EAAUR,EAAOP,GAELF,IACViB,EAAQjB,GAAI,EACZS,EAAOT,GAAI,EACXK,EAAmBpwB,KAAMwwB,GACzBQ,EAAUR,EAAOP,GAGfe,EAAQhB,GAAKgB,EAAQhB,EAAED,GAAKiB,EAAQf,GAAKe,EAAQf,EAAEF,EAAG,CACnDiB,EAAQf,GAAMe,EAAQf,EAAEF,IAC3BiB,EAAQhB,EAAED,GAAI,EACdiB,EAAQjB,GAAI,EACZU,EAAoBzwB,KAAMgxB,GAC1BA,EAAUR,EAAOP,GAGnBe,EAAQjB,EAAIS,EAAOT,EACnBS,EAAOT,EAAIiB,EAAQf,EAAEF,GAAI,EACzBK,EAAmBpwB,KAAMwwB,GACzBX,EAAO7vB,KAAK+J,EACZ,YAYF,IATAinB,EAAUR,EAAOR,GAELD,IACViB,EAAQjB,GAAI,EACZS,EAAOT,GAAI,EACXU,EAAoBzwB,KAAMwwB,GAC1BQ,EAAUR,EAAOR,GAGfgB,EAAQhB,GAAKgB,EAAQhB,EAAED,GAAKiB,EAAQf,GAAKe,EAAQf,EAAEF,EAAG,CACnDiB,EAAQhB,GAAMgB,EAAQhB,EAAED,IAC3BiB,EAAQf,EAAEF,GAAI,EACdiB,EAAQjB,GAAI,EACZK,EAAmBpwB,KAAMgxB,GACzBA,EAAUR,EAAOR,GAGnBgB,EAAQjB,EAAIS,EAAOT,EACnBS,EAAOT,EAAIiB,EAAQhB,EAAED,GAAI,EACzBU,EAAoBzwB,KAAMwwB,GAC1BX,EAAO7vB,KAAK+J,EACZ,MAIJinB,EAAQjB,GAAI,EACZF,EAAOW,EACPA,EAASA,EAAOV,SACRD,EAAKE,GAEXF,IAAMA,EAAKE,GAAI,MAgDR,QC7PR,SAASqB,EAAWF,EAAMC,EAAOE,EAAIC,GAC1C,IAAIC,EAAO,CAAC,KAAM,MACdhuB,EAAQ,GAAM7B,KAAK6vB,GAAQ,EAO/B,OANAA,EAAKL,KAAOA,EACZK,EAAKJ,MAAQA,EACTE,GAAIG,EAAWD,EAAML,EAAMC,EAAOE,GAClCC,GAAIE,EAAWD,EAAMJ,EAAOD,EAAMI,GACtCG,GAAMP,EAAK3tB,OAAOmuB,UAAUhwB,KAAK6B,GACjCkuB,GAAMN,EAAM5tB,OAAOmuB,UAAUhwB,KAAK6B,GAC3BguB,EAEF,SAASI,EAAiBT,EAAMG,EAAIC,GACzC,IAAIC,EAAO,CAACF,EAAIC,GAEhB,OADAC,EAAKL,KAAOA,EACLK,EAEF,SAASC,EAAWD,EAAML,EAAMC,EAAOS,GACvCL,EAAK,IAAOA,EAAK,GAIXA,EAAKL,OAASC,EACvBI,EAAK,GAAKK,EAEVL,EAAK,GAAKK,GANVL,EAAK,GAAKK,EACVL,EAAKL,KAAOA,EACZK,EAAKJ,MAAQA,GAQjB,SAASU,EAASN,EAAMO,EAAIC,EAAIC,EAAIC,GAClC,IAUIC,EAVA7tB,EAAIktB,EAAK,GACTjtB,EAAIitB,EAAK,GACTY,EAAK9tB,EAAE,GACP+tB,EAAK/tB,EAAE,GAGPguB,EAAK,EACLC,EAAK,EACLC,EAJKjuB,EAAE,GAIG6tB,EACVK,EAJKluB,EAAE,GAIG8tB,EAGd,GADAF,EAAIJ,EAAKK,EACJI,KAAML,EAAI,GAAf,CAGA,GAFAA,GAAKK,EAEDA,EAAK,EAAG,CACV,GAAIL,EAAIG,EAAI,OACRH,EAAII,IAAIA,EAAKJ,QACZ,GAAIK,EAAK,EAAG,CACjB,GAAIL,EAAII,EAAI,OACRJ,EAAIG,IAAIA,EAAKH,GAInB,GADAA,EAAIF,EAAKG,EACJI,KAAML,EAAI,GAAf,CAGA,GAFAA,GAAKK,EAEDA,EAAK,EAAG,CACV,GAAIL,EAAII,EAAI,OACRJ,EAAIG,IAAIA,EAAKH,QACZ,GAAIK,EAAK,EAAG,CACjB,GAAIL,EAAIG,EAAI,OACRH,EAAII,IAAIA,EAAKJ,GAInB,GADAA,EAAIH,EAAKK,EACJI,KAAMN,EAAI,GAAf,CAGA,GAFAA,GAAKM,EAEDA,EAAK,EAAG,CACV,GAAIN,EAAIG,EAAI,OACRH,EAAII,IAAIA,EAAKJ,QACZ,GAAIM,EAAK,EAAG,CACjB,GAAIN,EAAII,EAAI,OACRJ,EAAIG,IAAIA,EAAKH,GAInB,GADAA,EAAID,EAAKG,EACJI,KAAMN,EAAI,GAAf,CAGA,GAFAA,GAAKM,EAEDA,EAAK,EAAG,CACV,GAAIN,EAAII,EAAI,OACRJ,EAAIG,IAAIA,EAAKH,QACZ,GAAIM,EAAK,EAAG,CACjB,GAAIN,EAAIG,EAAI,OACRH,EAAII,IAAIA,EAAKJ,GAGnB,QAAMG,EAAK,GAAQC,EAAK,KAEpBD,EAAK,IAAGd,EAAK,GAAK,CAACY,EAAKE,EAAKE,EAAIH,EAAKC,EAAKG,IAC3CF,EAAK,IAAGf,EAAK,GAAK,CAACY,EAAKG,EAAKC,EAAIH,EAAKE,EAAKE,KACxC,OAGT,SAASC,EAAYlB,EAAMO,EAAIC,EAAIC,EAAIC,GACrC,IAAIX,EAAKC,EAAK,GACd,GAAID,EAAI,OAAO,EACf,IASIoB,EACAC,EAVAtB,EAAKE,EAAK,GACVL,EAAOK,EAAKL,KACZC,EAAQI,EAAKJ,MACbyB,EAAK1B,EAAK,GACV2B,EAAK3B,EAAK,GACV4B,EAAK3B,EAAM,GACX4B,EAAK5B,EAAM,GACX6B,GAAMJ,EAAKE,GAAM,EACjBG,GAAMJ,EAAKE,GAAM,EAIrB,GAAIA,IAAOF,EAAI,CACb,GAAIG,EAAKlB,GAAMkB,GAAMhB,EAAI,OAEzB,GAAIY,EAAKE,EAAI,CACX,GAAKzB,GAAuB,GAAIA,EAAG,IAAMY,EAAI,YAApCZ,EAAK,CAAC2B,EAAIjB,GACnBT,EAAK,CAAC0B,EAAIf,OACL,CACL,GAAKZ,GAAuB,GAAIA,EAAG,GAAKU,EAAI,YAAnCV,EAAK,CAAC2B,EAAIf,GACnBX,EAAK,CAAC0B,EAAIjB,SAMZ,GAFAY,EAAKM,GADLP,GAAME,EAAKE,IAAOC,EAAKF,IACRG,EAEXN,GAAM,GAAKA,EAAK,EAClB,GAAIE,EAAKE,EAAI,CACX,GAAKzB,GAAmC,GAAIA,EAAG,IAAMY,EAAI,YAAhDZ,EAAK,EAAEU,EAAKY,GAAMD,EAAIX,GAC/BT,EAAK,EAAEW,EAAKU,GAAMD,EAAIT,OACjB,CACL,GAAKZ,GAAmC,GAAIA,EAAG,GAAKU,EAAI,YAA/CV,EAAK,EAAEY,EAAKU,GAAMD,EAAIT,GAC/BX,EAAK,EAAES,EAAKY,GAAMD,EAAIX,QAGxB,GAAIc,EAAKE,EAAI,CACX,GAAK1B,GAAiC,GAAIA,EAAG,IAAMW,EAAI,YAA9CX,EAAK,CAACS,EAAIY,EAAKZ,EAAKa,GAC7BrB,EAAK,CAACU,EAAIU,EAAKV,EAAKW,OACf,CACL,GAAKtB,GAAiC,GAAIA,EAAG,GAAKS,EAAI,YAA7CT,EAAK,CAACW,EAAIU,EAAKV,EAAKW,GAC7BrB,EAAK,CAACQ,EAAIY,EAAKZ,EAAKa,GAO1B,OAFApB,EAAK,GAAKF,EACVE,EAAK,GAAKD,GACH,ECxIT,SAAS4B,EAAkBC,EAAM5B,GAC/B,IAAI6B,EAAOD,EAAKC,KACZC,EAAK9B,EAAKL,KACVoC,EAAK/B,EAAKJ,MAEd,OADIiC,IAASE,IAAIA,EAAKD,EAAIA,EAAKD,GAC3BE,EAAW1lB,KAAK2lB,MAAMD,EAAG,GAAKD,EAAG,GAAIC,EAAG,GAAKD,EAAG,KAChDD,IAASC,GAAIA,EAAK9B,EAAK,GAAI+B,EAAK/B,EAAK,KAAQ8B,EAAK9B,EAAK,GAAI+B,EAAK/B,EAAK,IAClE3jB,KAAK2lB,MAAMF,EAAG,GAAKC,EAAG,GAAIA,EAAG,GAAKD,EAAG,KAGvC,SAASG,EAAkBL,EAAM5B,GACtC,OAAOA,IAAOA,EAAKL,OAASiC,EAAKC,OAE5B,SAASK,EAAgBN,EAAM5B,GACpC,OAAOA,IAAOA,EAAKL,OAASiC,EAAKC,OCtBnC,IACWM,EADPC,EAAa,GAGjB,SAASC,IACPhE,EAAa5vB,MACbA,KAAKiK,EAAIjK,KAAK6zB,EAAI7zB,KAAK8zB,IAAM9zB,KAAKozB,KAAOpzB,KAAK+zB,GAAK,KAG9C,SAASC,EAAaF,GAC3B,IAAIG,EAAOH,EAAI5D,EACXgE,EAAOJ,EAAI3D,EACf,GAAK8D,GAASC,EAAd,CACA,IAAIC,EAAQF,EAAKb,KACbgB,EAAQN,EAAIV,KACZiB,EAAQH,EAAKd,KACjB,GAAIe,IAAUE,EAAd,CACA,IAAIC,EAAKF,EAAM,GACXG,EAAKH,EAAM,GACXjC,EAAKgC,EAAM,GAAKG,EAChBlC,EAAK+B,EAAM,GAAKI,EAChBC,EAAKH,EAAM,GAAKC,EAChBP,EAAKM,EAAM,GAAKE,EAChB9iB,EAAI,GAAK0gB,EAAK4B,EAAK3B,EAAKoC,GAC5B,KAAI/iB,IAAMgjB,IAAV,CACA,IAAIC,EAAKvC,EAAKA,EAAKC,EAAKA,EACpBuC,EAAKH,EAAKA,EAAKT,EAAKA,EACpB9pB,GAAK8pB,EAAKW,EAAKtC,EAAKuC,GAAMljB,EAC1BoiB,GAAK1B,EAAKwC,EAAKH,EAAKE,GAAMjjB,EAC1BmjB,EAASjB,EAAWxY,OAAS,IAAIyY,EACrCgB,EAAOd,IAAMA,EACbc,EAAOxB,KAAOgB,EACdQ,EAAO3qB,EAAIA,EAAIqqB,EACfM,EAAOf,GAAKe,EAAOb,GAAKF,EAAIU,GAAM3mB,KAAKinB,KAAK5qB,EAAIA,EAAI4pB,EAAIA,GAExDC,EAAIc,OAASA,EAIb,IAHA,IAAIE,EAAS,KACTjF,EAAO,GAAQ9lB,EAEZ8lB,GACL,GAAI+E,EAAOf,EAAIhE,EAAKgE,GAAKe,EAAOf,IAAMhE,EAAKgE,GAAKe,EAAO3qB,GAAK4lB,EAAK5lB,EAAG,CAClE,IAAI4lB,EAAKG,EAAsB,CAC7B8E,EAASjF,EAAKK,EACd,MAFUL,EAAOA,EAAKG,MAInB,CACL,IAAIH,EAAKI,EAAsB,CAC7B6E,EAASjF,EACT,MAFUA,EAAOA,EAAKI,EAO5B,GAAQU,OAAOmE,EAAQF,GAClBE,IAAQpB,EAAckB,MAEtB,SAASG,EAAajB,GAC3B,IAAIc,EAASd,EAAIc,OAEbA,IACGA,EAAO1E,IAAGwD,EAAckB,EAAOzE,GACpC,GAAQY,OAAO6D,GACfjB,EAAWjyB,KAAKkzB,GAChBhF,EAAagF,GACbd,EAAIc,OAAS,MC5DjB,IAAII,EAAY,GAEhB,SAASC,IACPrF,EAAa5vB,MACbA,KAAKuxB,KAAOvxB,KAAKozB,KAAOpzB,KAAK40B,OAAS,KAGxC,SAASM,EAAY9B,GACnB,IAAI+B,EAAQH,EAAU7Z,OAAS,IAAI8Z,EAEnC,OADAE,EAAM/B,KAAOA,EACN+B,EAGT,SAASC,EAAYD,GACnBJ,EAAaI,GACbE,EAAQtE,OAAOoE,GACfH,EAAUtzB,KAAKyzB,GACfvF,EAAauF,GAGR,SAASG,EAAYH,GAC1B,IAAIP,EAASO,EAAMP,OACf3qB,EAAI2qB,EAAO3qB,EACX4pB,EAAIe,EAAOb,GACXnC,EAAS,CAAC3nB,EAAG4pB,GACb0B,EAAWJ,EAAMjF,EACjB/G,EAAOgM,EAAMhF,EACbqF,EAAe,CAACL,GACpBC,EAAYD,GAGZ,IAFA,IAAIlB,EAAOsB,EAEJtB,EAAKW,QAAUhnB,KAAKkS,IAAI7V,EAAIgqB,EAAKW,OAAO3qB,GAAKwrB,IAAW7nB,KAAKkS,IAAI+T,EAAII,EAAKW,OAAOb,IAAM0B,IAC5FF,EAAWtB,EAAK/D,EAChBsF,EAAaE,QAAQzB,GACrBmB,EAAYnB,GACZA,EAAOsB,EAGTC,EAAaE,QAAQzB,GACrBc,EAAad,GAGb,IAFA,IAAIC,EAAO/K,EAEJ+K,EAAKU,QAAUhnB,KAAKkS,IAAI7V,EAAIiqB,EAAKU,OAAO3qB,GAAKwrB,IAAW7nB,KAAKkS,IAAI+T,EAAIK,EAAKU,OAAOb,IAAM0B,IAC5FtM,EAAO+K,EAAK/D,EACZqF,EAAa9zB,KAAKwyB,GAClBkB,EAAYlB,GACZA,EAAO/K,EAGTqM,EAAa9zB,KAAKwyB,GAClBa,EAAab,GACb,IACIyB,EADAC,EAAQJ,EAAah0B,OAGzB,IAAKm0B,EAAO,EAAGA,EAAOC,IAASD,EAC7BzB,EAAOsB,EAAaG,GACpB1B,EAAOuB,EAAaG,EAAO,GAC3BnE,EAAW0C,EAAK3C,KAAM0C,EAAKb,KAAMc,EAAKd,KAAMxB,GAG9CqC,EAAOuB,EAAa,IACpBtB,EAAOsB,EAAaI,EAAQ,IACvBrE,KAAOH,EAAW6C,EAAKb,KAAMc,EAAKd,KAAM,KAAMxB,GACnDoC,EAAaC,GACbD,EAAaE,GAER,SAAS2B,EAASzC,GASvB,IARA,IAEIa,EACAC,EACA4B,EACAC,EALA9rB,EAAImpB,EAAK,GACT4C,EAAY5C,EAAK,GAKjBvD,EAAOwF,EAAQtrB,EAEZ8lB,GAEL,IADAiG,EAAMG,EAAepG,EAAMmG,GAAa/rB,GAC9BwrB,GAAS5F,EAAOA,EAAKG,MAAO,CAGpC,MAFA+F,EAAM9rB,EAAIisB,EAAgBrG,EAAMmG,IAEtBP,IAOH,CACDK,GAAOL,IACTxB,EAAOpE,EAAKK,EACZgE,EAAOrE,GACEkG,GAAON,IAChBxB,EAAOpE,EACPqE,EAAOrE,EAAKM,GAEZ8D,EAAOC,EAAOrE,EAGhB,MAjBA,IAAKA,EAAKI,EAAG,CACXgE,EAAOpE,EACP,MAGFA,EAAOA,EAAKI,GFxFb,SAAoBmD,GAClB3B,GAAM2B,EAAK7vB,OAAS,CACzB6vB,KAAMA,EACN1B,UAAW,IEsGbyE,CAAW/C,GACX,IAAIgD,EAASlB,EAAY9B,GAEzB,GADAiC,EAAQ1E,OAAOsD,EAAMmC,GAChBnC,GAASC,EAAd,CAEA,GAAID,IAASC,EAOX,OANAa,EAAad,GACbC,EAAOgB,EAAYjB,EAAKb,MACxBiC,EAAQ1E,OAAOyF,EAAQlC,GACvBkC,EAAO7E,KAAO2C,EAAK3C,KAAOH,EAAW6C,EAAKb,KAAMgD,EAAOhD,MACvDY,EAAaC,QACbD,EAAaE,GAIf,GAAKA,EAAL,CAOAa,EAAad,GACbc,EAAab,GACb,IAAIC,EAAQF,EAAKb,KACbjB,EAAKgC,EAAM,GACX/B,EAAK+B,EAAM,GACXG,EAAKlB,EAAK,GAAKjB,EACfoC,EAAKnB,EAAK,GAAKhB,EACfiC,EAAQH,EAAKd,KACboB,EAAKH,EAAM,GAAKlC,EAChB4B,EAAKM,EAAM,GAAKjC,EAChB3gB,EAAI,GAAK6iB,EAAKP,EAAKQ,EAAKC,GACxB6B,EAAK/B,EAAKA,EAAKC,EAAKA,EACpBI,EAAKH,EAAKA,EAAKT,EAAKA,EACpBnC,EAAS,EAAEmC,EAAKsC,EAAK9B,EAAKI,GAAMljB,EAAI0gB,GAAKmC,EAAKK,EAAKH,EAAK6B,GAAM5kB,EAAI2gB,GACtEZ,EAAW0C,EAAK3C,KAAM4C,EAAOE,EAAOzC,GACpCwE,EAAO7E,KAAOH,EAAW+C,EAAOf,EAAM,KAAMxB,GAC5CsC,EAAK3C,KAAOH,EAAWgC,EAAMiB,EAAO,KAAMzC,GAC1CoC,EAAaC,GACbD,EAAaE,QAvBXkC,EAAO7E,KAAOH,EAAW6C,EAAKb,KAAMgD,EAAOhD,OA0B/C,SAAS6C,EAAenC,EAAKkC,GAC3B,IAAI5C,EAAOU,EAAIV,KACXkD,EAAQlD,EAAK,GACbmD,EAAQnD,EAAK,GACboD,EAAOD,EAAQP,EACnB,IAAKQ,EAAM,OAAOF,EAClB,IAAIrC,EAAOH,EAAI5D,EACf,IAAK+D,EAAM,OAAQwC,IAEnB,IAAIC,GADJtD,EAAOa,EAAKb,MACK,GACbuD,EAAQvD,EAAK,GACbwD,EAAQD,EAAQX,EACpB,IAAKY,EAAO,OAAOF,EACnB,IAAIG,EAAKH,EAAQJ,EACbQ,EAAO,EAAIN,EAAO,EAAII,EACtBtyB,EAAIuyB,EAAKD,EACb,OAAIE,IAAexyB,EAAIsJ,KAAKinB,KAAKvwB,EAAIA,EAAI,EAAIwyB,GAAQD,EAAKA,IAAO,EAAID,GAASD,EAAQC,EAAQ,EAAIL,EAAQC,EAAO,KAAOM,EAAOR,GACvHA,EAAQI,GAAS,EAG3B,SAASR,EAAgBpC,EAAKkC,GAC5B,IAAI9B,EAAOJ,EAAI3D,EACf,GAAI+D,EAAM,OAAO+B,EAAe/B,EAAM8B,GACtC,IAAI5C,EAAOU,EAAIV,KACf,OAAOA,EAAK,KAAO4C,EAAY5C,EAAK,GAAKqD,ICzKpC,IAEIpB,EACA5D,GACA,GACA,GALAgE,GAAU,KACVhB,GAAW,MAUtB,SAASsC,GAAc1yB,EAAGC,GACxB,OAAOA,EAAE,GAAKD,EAAE,IAAMC,EAAE,GAAKD,EAAE,GAGlB,SAAS2yB,GAAQC,EAAOC,GACrC,IACIjtB,EACA4pB,EACAe,EAHAxB,EAAO6D,EAAMhY,KAAK8X,IAAe5b,MASrC,IALA,GAAQ,GACRsW,GAAQ,IAAI9tB,MAAMszB,EAAMz1B,QACxB6zB,EAAU,IAAI,EACd,GAAU,IAAI,IAKZ,GAFAT,EAASlB,EAELN,KAAUwB,GAAUxB,EAAK,GAAKwB,EAAOf,GAAKT,EAAK,KAAOwB,EAAOf,GAAKT,EAAK,GAAKwB,EAAO3qB,GACjFmpB,EAAK,KAAOnpB,GAAKmpB,EAAK,KAAOS,IAC/BgC,EAASzC,GACTnpB,EAAImpB,EAAK,GAAIS,EAAIT,EAAK,IAGxBA,EAAO6D,EAAM9b,UACR,KAAIyZ,EAGT,MAFAU,EAAYV,EAAOd,KAQvB,GHxBK,WACL,IAAK,IAA6BX,EAAMzB,EAAWnO,EAAG4T,EAA7CzsB,EAAI,EAAGiO,EAAI8Y,GAAMjwB,OAA+BkJ,EAAIiO,IAAKjO,EAChE,IAAKyoB,EAAO1B,GAAM/mB,MAAQysB,GAAKzF,EAAYyB,EAAKzB,WAAWlwB,QAAS,CAClE,IAAI+B,EAAQ,IAAII,MAAMwzB,GAClBzlB,EAAQ,IAAI/N,MAAMwzB,GAEtB,IAAK5T,EAAI,EAAGA,EAAI4T,IAAK5T,EACnBhgB,EAAMggB,GAAKA,EAAG7R,EAAM6R,GAAK2P,EAAkBC,EAAM,GAAMzB,EAAUnO,KAOnE,IAJAhgB,EAAM0b,MAAK,SAAUvU,EAAG6Y,GACtB,OAAO7R,EAAM6R,GAAK7R,EAAMhH,MAGrB6Y,EAAI,EAAGA,EAAI4T,IAAK5T,EACnB7R,EAAM6R,GAAKmO,EAAUnuB,EAAMggB,IAG7B,IAAKA,EAAI,EAAGA,EAAI4T,IAAK5T,EACnBmO,EAAUnO,GAAK7R,EAAM6R,IGG3B6T,GAEIF,EAAQ,CACV,IAAIpF,GAAMoF,EAAO,GAAG,GAChBnF,GAAMmF,EAAO,GAAG,GAChBlF,GAAMkF,EAAO,GAAG,GAChBjF,GAAMiF,EAAO,GAAG,IJ+FjB,SAAmBpF,EAAIC,EAAIC,EAAIC,GAIpC,IAHA,IACIV,EADA7mB,EAAI,GAAMlJ,OAGPkJ,KACA+nB,EAAYlB,EAAO,GAAM7mB,GAAIonB,EAAIC,EAAIC,EAAIC,IAAQJ,EAASN,EAAMO,EAAIC,EAAIC,EAAIC,KAASrkB,KAAKkS,IAAIyR,EAAK,GAAG,GAAKA,EAAK,GAAG,IAAMkE,IAAW7nB,KAAKkS,IAAIyR,EAAK,GAAG,GAAKA,EAAK,GAAG,IAAMkE,YACpK,GAAM/qB,GIpGf2sB,CAAUvF,EAAIC,EAAIC,EAAIC,GHLnB,SAAmBH,EAAIC,EAAIC,EAAIC,GACpC,IACIqF,EACAnE,EACAC,EACAmE,EACA7F,EACA8F,EACAhiB,EACAiiB,EACAC,EACAjiB,EACAkiB,EACAC,EAZAC,EAASpG,GAAMjwB,OAafs2B,GAAQ,EAEZ,IAAKR,EAAQ,EAAGA,EAAQO,IAAUP,EAChC,GAAInE,EAAO1B,GAAM6F,GAAQ,CAKvB,IAJAlE,EAAOD,EAAKC,KAEZmE,GADA7F,EAAYyB,EAAKzB,WACKlwB,OAEf+1B,KACA,GAAM7F,EAAU6F,KACnB7F,EAAUriB,OAAOkoB,EAAW,GAOhC,IAFAA,EAAY,EAAGC,EAAa9F,EAAUlwB,OAE/B+1B,EAAYC,GACyCG,GAA1DliB,EAAMge,EAAgBN,EAAM,GAAMzB,EAAU6F,MAAyB,GAAIK,EAAOniB,EAAI,GACPgiB,GAA7EjiB,EAAQge,EAAkBL,EAAM,GAAMzB,IAAY6F,EAAYC,MAA8B,GAAIE,EAASliB,EAAM,IAE3G5H,KAAKkS,IAAI6X,EAAOF,GAAUhC,IAAW7nB,KAAKkS,IAAI8X,EAAOF,GAAUjC,MACjE/D,EAAUriB,OAAOkoB,EAAW,EAAG,GAAM71B,KAAKiwB,EAAiByB,EAAM3d,EAAK7H,KAAKkS,IAAI6X,EAAO7F,GAAM2D,IAAWxD,EAAK2F,EAAOnC,GAAU,CAAC3D,EAAIlkB,KAAKkS,IAAI2X,EAAS3F,GAAM2D,GAAUiC,EAASzF,GAAMrkB,KAAKkS,IAAI8X,EAAO3F,GAAMwD,IAAWzD,EAAK2F,EAAOlC,GAAU,CAAC7nB,KAAKkS,IAAI4X,EAASzF,GAAMwD,GAAUgC,EAASzF,EAAIC,GAAMrkB,KAAKkS,IAAI6X,EAAO3F,GAAMyD,IAAWmC,EAAO7F,EAAK0D,GAAU,CAACzD,EAAIpkB,KAAKkS,IAAI2X,EAASzF,GAAMyD,GAAUiC,EAAS3F,GAAMnkB,KAAKkS,IAAI8X,EAAO7F,GAAM0D,IAAWkC,EAAO7F,EAAK2D,GAAU,CAAC7nB,KAAKkS,IAAI4X,EAAS3F,GAAM0D,GAAUgC,EAAS3F,EAAIC,GAAM,OAAS,KACjgByF,GAIFA,IAAYM,GAAQ,GAM5B,GAAIA,EAAO,CACT,IAAIvF,EACAC,EACAuF,EACAC,EAAKvB,IAET,IAAKa,EAAQ,EAAGQ,EAAQ,KAAMR,EAAQO,IAAUP,GAC1CnE,EAAO1B,GAAM6F,MAIfS,GAFAxF,GADAa,EAAOD,EAAKC,MACF,GAAKtB,GAELS,GADVC,EAAKY,EAAK,GAAKrB,GACKS,GACXwF,IAAIA,EAAKD,EAAID,EAAQ3E,GAIlC,GAAI2E,EAAO,CACT,IAAIG,EAAM,CAACnG,EAAIC,GACXmG,EAAM,CAACpG,EAAIG,GACXkG,EAAM,CAACnG,EAAIC,GACXmG,EAAM,CAACpG,EAAID,GACf+F,EAAMpG,UAAUhwB,KAAK,GAAMA,KAAKiwB,EAAiByB,EAAO0E,EAAM1E,KAAM6E,EAAKC,IAAQ,EAAG,GAAMx2B,KAAKiwB,EAAiByB,EAAM8E,EAAKC,IAAQ,EAAG,GAAMz2B,KAAKiwB,EAAiByB,EAAM+E,EAAKC,IAAQ,EAAG,GAAM12B,KAAKiwB,EAAiByB,EAAMgF,EAAKH,IAAQ,IAK3O,IAAKX,EAAQ,EAAGA,EAAQO,IAAUP,GAC5BnE,EAAO1B,GAAM6F,MACVnE,EAAKzB,UAAUlwB,eACXiwB,GAAM6F,IGtEjBe,CAAUvG,EAAIC,EAAIC,EAAIC,GAGxBjyB,KAAKs4B,MAAQ,GACbt4B,KAAKyxB,MAAQA,GACb4D,EAAU,GAAU,GAAQ5D,GAAQ,KAEtCuF,GAAQn2B,UAAY,CAClBuI,YAAa4tB,GACbuB,SAAU,WACR,IAAID,EAAQt4B,KAAKs4B,MACjB,OAAOt4B,KAAKyxB,MAAM7rB,KAAI,SAAUutB,GAC9B,IAAIqF,EAAUrF,EAAKzB,UAAU9rB,KAAI,SAAU8E,GACzC,OAAO8oB,EAAkBL,EAAMmF,EAAM5tB,OAGvC,OADA8tB,EAAQl3B,KAAO6xB,EAAKC,KAAK9xB,KAClBk3B,MAGXC,UAAW,WACT,IAAIA,EAAY,GACZH,EAAQt4B,KAAKs4B,MAqBjB,OApBAt4B,KAAKyxB,MAAMhoB,SAAQ,SAAU0pB,EAAMzoB,GACjC,GAAMysB,GAAKzF,EAAYyB,EAAKzB,WAAWlwB,OASvC,IARA,IACIkwB,EAEAyF,EACAuB,EAvEYr0B,EAAGC,EAAGq0B,EAmElBvF,EAAOD,EAAKC,KAEZ7P,GAAK,EAGLqV,EAAKN,EAAM5G,EAAUyF,EAAI,IACzB0B,EAAKD,EAAG1H,OAASkC,EAAOwF,EAAGzH,MAAQyH,EAAG1H,OAEjC3N,EAAI4T,GACXuB,EAAKG,EAELA,GADAD,EAAKN,EAAM5G,EAAUnO,KACb2N,OAASkC,EAAOwF,EAAGzH,MAAQyH,EAAG1H,KAElCwH,GAAMG,GAAMnuB,EAAIguB,EAAGn1B,OAASmH,EAAImuB,EAAGt1B,QAhFtBe,EAgFkDo0B,EAhF/CC,EAgFmDE,IAhFzDx0B,EAgF+C+uB,GA/EzD,GAAKuF,EAAE,KAAOr0B,EAAE,GAAKD,EAAE,KAAOA,EAAE,GAAKC,EAAE,KAAOq0B,EAAE,GAAKt0B,EAAE,IA+EkB,IAC3Eo0B,EAAU/2B,KAAK,CAAC0xB,EAAK9xB,KAAMo3B,EAAGp3B,KAAMu3B,EAAGv3B,UAItCm3B,GAETK,MAAO,WACL,OAAO94B,KAAKs4B,MAAMS,QAAO,SAAUxH,GACjC,OAAOA,EAAKJ,SACXvrB,KAAI,SAAU2rB,GACf,MAAO,CACL9W,OAAQ8W,EAAKL,KAAK5vB,KAClByF,OAAQwqB,EAAKJ,MAAM7vB,UAIzB03B,KAAM,SAAc/uB,EAAG4pB,EAAGoF,GAOxB,IANA,IACIC,EAGA/F,EAJAvY,EAAO5a,KAEPm5B,EAAKve,EAAKwe,QAAU,EACpBzgB,EAAIiC,EAAK6W,MAAMjwB,SAGV2xB,EAAOvY,EAAK6W,MAAM0H,KACzB,KAAMA,GAAMxgB,EAAG,OAAO,KAGxB,IAAI4Z,EAAKtoB,EAAIkpB,EAAKC,KAAK,GACnBZ,EAAKqB,EAAIV,EAAKC,KAAK,GACnB2E,EAAKxF,EAAKA,EAAKC,EAAKA,EAExB,GACEW,EAAOvY,EAAK6W,MAAMyH,EAAKC,GAAKA,EAAK,KACjChG,EAAKzB,UAAUjoB,SAAQ,SAAUrE,GAC/B,IAAImsB,EAAO3W,EAAK0d,MAAMlzB,GAClBoa,EAAI+R,EAAKL,KACb,GAAK1R,IAAM2T,EAAKC,MAAS5T,IAAQA,EAAI+R,EAAKJ,OAA1C,CACA,IAAIkI,EAAKpvB,EAAIuV,EAAE,GACX8Z,EAAKzF,EAAIrU,EAAE,GACX+Z,EAAKF,EAAKA,EAAKC,EAAKA,EACpBC,EAAKxB,IAAIA,EAAKwB,EAAIJ,EAAK3Z,EAAEjc,iBAEjB,OAAP41B,GAGT,OADAve,EAAKwe,OAASF,EACG,MAAVD,GAAkBlB,GAAMkB,EAASA,EAAS9F,EAAKC,KAAO,OCxIlD,kBACb,IAAInpB,EAAI,EACJ4pB,EAAI,EACJqD,EAAS,KAEb,SAASsC,EAAQl4B,GACf,OAAO,IAAI01B,GAAQ11B,EAAKsE,KAAI,SAAU6L,EAAG/G,GACvC,IAAI4d,EAAI,CAAC1a,KAAK6rB,MAAMxvB,EAAEwH,EAAG/G,EAAGpJ,GAAQm0B,IAAWA,GAAS7nB,KAAK6rB,MAAM5F,EAAEpiB,EAAG/G,EAAGpJ,GAAQm0B,IAAWA,IAG9F,OAFAnN,EAAE/kB,MAAQmH,EACV4d,EAAEhnB,KAAOmQ,EACF6W,KACL4O,GA+BN,OA5BAsC,EAAQjB,SAAW,SAAUj3B,GAC3B,OAAOk4B,EAAQl4B,GAAMi3B,YAGvBiB,EAAQV,MAAQ,SAAUx3B,GACxB,OAAOk4B,EAAQl4B,GAAMw3B,SAGvBU,EAAQf,UAAY,SAAUn3B,GAC5B,OAAOk4B,EAAQl4B,GAAMm3B,aAGvBe,EAAQvvB,EAAI,SAAUF,GACpB,OAAO9I,UAAUO,QAAUyI,EAAiB,mBAANF,EAAmBA,EAAI2vB,GAAU3vB,GAAIyvB,GAAWvvB,GAGxFuvB,EAAQ3F,EAAI,SAAU9pB,GACpB,OAAO9I,UAAUO,QAAUqyB,EAAiB,mBAAN9pB,EAAmBA,EAAI2vB,GAAU3vB,GAAIyvB,GAAW3F,GAGxF2F,EAAQtC,OAAS,SAAUntB,GACzB,OAAO9I,UAAUO,QAAU01B,EAAc,MAALntB,EAAY,KAAO,CAAC,EAAEA,EAAE,GAAG,IAAKA,EAAE,GAAG,IAAK,EAAEA,EAAE,GAAG,IAAKA,EAAE,GAAG,KAAMyvB,GAAWtC,GAAU,CAAC,CAACA,EAAO,GAAG,GAAIA,EAAO,GAAG,IAAK,CAACA,EAAO,GAAG,GAAIA,EAAO,GAAG,MAGpLsC,EAAQ73B,KAAO,SAAUoI,GACvB,OAAO9I,UAAUO,QAAU01B,EAAc,MAALntB,EAAY,KAAO,CAAC,CAAC,EAAG,GAAI,EAAEA,EAAE,IAAKA,EAAE,KAAMyvB,GAAWtC,GAAU,CAACA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAKA,EAAO,GAAG,KAGxJsC,GC7CM,I,UAAA,gBACbpwB,EAAYvI,UAAY84B,EAAQ94B,UAAYA,EAC5CA,EAAUuI,YAAcA,IAEnB,SAASwwB,GAAOpJ,EAAQqJ,GAC7B,IAAIh5B,EAAYD,OAAO6mB,OAAO+I,EAAO3vB,WAErC,IAAK,IAAId,KAAO85B,EACdh5B,EAAUd,GAAO85B,EAAW95B,GAG9B,OAAOc,ECVF,SAASi5B,MAChB,IAMIC,GAAM,sBACNC,GAAM,gDACNC,GAAM,iDACNC,GAAQ,qBACRC,GAAe,IAAI9rB,OAAO,UAAY,CAAC0rB,GAAKA,GAAKA,IAAO,QACxDK,GAAe,IAAI/rB,OAAO,UAAY,CAAC4rB,GAAKA,GAAKA,IAAO,QACxDI,GAAgB,IAAIhsB,OAAO,WAAa,CAAC0rB,GAAKA,GAAKA,GAAKC,IAAO,QAC/DM,GAAgB,IAAIjsB,OAAO,WAAa,CAAC4rB,GAAKA,GAAKA,GAAKD,IAAO,QAC/DO,GAAe,IAAIlsB,OAAO,UAAY,CAAC2rB,GAAKC,GAAKA,IAAO,QACxDO,GAAgB,IAAInsB,OAAO,WAAa,CAAC2rB,GAAKC,GAAKA,GAAKD,IAAO,QAC/DS,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfhR,IAAK,SACLiR,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAASC,KACP,OAAO7jC,KAAK8jC,MAAMC,YAOpB,SAASC,KACP,OAAOhkC,KAAK8jC,MAAMG,YAGL,SAAS,GAAMC,GAC5B,IAAI/M,EAAG/c,EAEP,OADA8pB,GAAUA,EAAS,IAAIC,OAAOC,eACtBjN,EAAI+C,GAAMxnB,KAAKwxB,KAAY9pB,EAAI+c,EAAE,GAAG31B,OAAQ21B,EAAIppB,SAASopB,EAAE,GAAI,IAAW,IAAN/c,EAAUiqB,GAAKlN,GACnF,IAAN/c,EAAU,IAAIkqB,GAAInN,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,GAAe,GAAJA,IAAY,EAAQ,GAAJA,EAAS,GAC7F,IAAN/c,EAAUmqB,GAAKpN,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAAN/c,EAAUmqB,GAAKpN,GAAK,GAAK,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAMA,GAAK,EAAI,IAAMA,GAAK,EAAI,GAAU,IAAJA,IAAgB,GAAJA,IAAY,EAAQ,GAAJA,GAAW,KAClI,OACGA,EAAIgD,GAAaznB,KAAKwxB,IAAW,IAAII,GAAInN,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC7DA,EAAIiD,GAAa1nB,KAAKwxB,IAAW,IAAII,GAAW,IAAPnN,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAIkD,GAAc3nB,KAAKwxB,IAAWK,GAAKpN,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAImD,GAAc5nB,KAAKwxB,IAAWK,GAAY,IAAPpN,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIoD,GAAa7nB,KAAKwxB,IAAWM,GAAKrN,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIqD,GAAc9nB,KAAKwxB,IAAWM,GAAKrN,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEsD,GAAM35B,eAAeojC,GAAUG,GAAK5J,GAAMyJ,IAC/B,gBAAXA,EAA2B,IAAII,GAAIG,IAAKA,IAAKA,IAAK,GAAK,KAG3D,SAASJ,GAAK1rB,GACZ,OAAO,IAAI2rB,GAAI3rB,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAAS4rB,GAAKrS,EAAGwS,EAAGpgC,EAAGD,GAErB,OADIA,GAAK,IAAG6tB,EAAIwS,EAAIpgC,EAAImgC,KACjB,IAAIH,GAAIpS,EAAGwS,EAAGpgC,EAAGD,GAGnB,SAASsgC,GAAW5gC,GAEzB,OADMA,aAAa+1B,KAAQ/1B,EAAI,GAAMA,IAChCA,EAEE,IAAIugC,IADXvgC,EAAIA,EAAE+/B,OACW5R,EAAGnuB,EAAE2gC,EAAG3gC,EAAEO,EAAGP,EAAE6gC,SAFjB,IAAIN,GAId,SAAS,GAAIpS,EAAGwS,EAAGpgC,EAAGsgC,GAC3B,OAA4B,IAArB3jC,UAAUO,OAAemjC,GAAWzS,GAAK,IAAIoS,GAAIpS,EAAGwS,EAAGpgC,EAAc,MAAXsgC,EAAkB,EAAIA,GAElF,SAASN,GAAIpS,EAAGwS,EAAGpgC,EAAGsgC,GAC3B5kC,KAAKkyB,GAAKA,EACVlyB,KAAK0kC,GAAKA,EACV1kC,KAAKsE,GAAKA,EACVtE,KAAK4kC,SAAWA,EAwBlB,SAASC,KACP,MAAO,IAAM,GAAI7kC,KAAKkyB,GAAK,GAAIlyB,KAAK0kC,GAAK,GAAI1kC,KAAKsE,GAGpD,SAASwgC,KACP,IAAIzgC,EAAIrE,KAAK4kC,QAEb,OAAc,KADdvgC,EAAIqJ,MAAMrJ,GAAK,EAAIuJ,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAG1gC,KACzB,OAAS,SAAWuJ,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,IAAKn3B,KAAK6rB,MAAMz5B,KAAKkyB,IAAM,IAAM,KAAOtkB,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,IAAKn3B,KAAK6rB,MAAMz5B,KAAK0kC,IAAM,IAAM,KAAO92B,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,IAAKn3B,KAAK6rB,MAAMz5B,KAAKsE,IAAM,KAAa,IAAND,EAAU,IAAM,KAAOA,EAAI,KAGpP,SAAS,GAAI5D,GAEX,QADAA,EAAQmN,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,IAAKn3B,KAAK6rB,MAAMh5B,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAMsC,SAAS,IAGlD,SAASyhC,GAAKQ,EAAG1c,EAAGlO,EAAG/V,GAErB,OADIA,GAAK,EAAG2gC,EAAI1c,EAAIlO,EAAIqqB,IAAarqB,GAAK,GAAKA,GAAK,EAAG4qB,EAAI1c,EAAImc,IAAanc,GAAK,IAAG0c,EAAIP,KACjF,IAAIQ,GAAID,EAAG1c,EAAGlO,EAAG/V,GAGnB,SAAS6gC,GAAWnhC,GACzB,GAAIA,aAAakhC,GAAK,OAAO,IAAIA,GAAIlhC,EAAEihC,EAAGjhC,EAAEukB,EAAGvkB,EAAEqW,EAAGrW,EAAE6gC,SAEtD,GADM7gC,aAAa+1B,KAAQ/1B,EAAI,GAAMA,KAChCA,EAAG,OAAO,IAAIkhC,GACnB,GAAIlhC,aAAakhC,GAAK,OAAOlhC,EAE7B,IAAImuB,GADJnuB,EAAIA,EAAE+/B,OACI5R,EAAI,IACVwS,EAAI3gC,EAAE2gC,EAAI,IACVpgC,EAAIP,EAAEO,EAAI,IACVygC,EAAMn3B,KAAKm3B,IAAI7S,EAAGwS,EAAGpgC,GACrBkU,EAAM5K,KAAK4K,IAAI0Z,EAAGwS,EAAGpgC,GACrB0gC,EAAIP,IACJnc,EAAI9P,EAAMusB,EACV3qB,GAAK5B,EAAMusB,GAAO,EAUtB,OARIzc,GACa0c,EAAX9S,IAAM1Z,GAAUksB,EAAIpgC,GAAKgkB,EAAc,GAAToc,EAAIpgC,GAAgBogC,IAAMlsB,GAAUlU,EAAI4tB,GAAK5J,EAAI,GAAY4J,EAAIwS,GAAKpc,EAAI,EAC5GA,GAAKlO,EAAI,GAAM5B,EAAMusB,EAAM,EAAIvsB,EAAMusB,EACrCC,GAAK,IAEL1c,EAAIlO,EAAI,GAAKA,EAAI,EAAI,EAAI4qB,EAGpB,IAAIC,GAAID,EAAG1c,EAAGlO,EAAGrW,EAAE6gC,SAErB,SAASO,GAAIH,EAAG1c,EAAGlO,EAAGwqB,GAC3B,OAA4B,IAArB3jC,UAAUO,OAAe0jC,GAAWF,GAAK,IAAIC,GAAID,EAAG1c,EAAGlO,EAAc,MAAXwqB,EAAkB,EAAIA,GAGzF,SAASK,GAAID,EAAG1c,EAAGlO,EAAGwqB,GACpB5kC,KAAKglC,GAAKA,EACVhlC,KAAKsoB,GAAKA,EACVtoB,KAAKoa,GAAKA,EACVpa,KAAK4kC,SAAWA,EA+BlB,SAASQ,GAAQJ,EAAGK,EAAIC,GACtB,OAA4G,KAApGN,EAAI,GAAKK,GAAMC,EAAKD,GAAML,EAAI,GAAKA,EAAI,IAAMM,EAAKN,EAAI,IAAMK,GAAMC,EAAKD,IAAO,IAAML,GAAK,GAAKK,GCxVjG,SAASE,GAAMjT,EAAIjB,EAAIC,EAAIiI,EAAIiM,GACpC,IAAIC,EAAKnT,EAAKA,EACVoT,EAAKD,EAAKnT,EACd,QAAS,EAAI,EAAIA,EAAK,EAAImT,EAAKC,GAAMrU,GAAM,EAAI,EAAIoU,EAAK,EAAIC,GAAMpU,GAAM,EAAI,EAAIgB,EAAK,EAAImT,EAAK,EAAIC,GAAMnM,EAAKmM,EAAKF,GAAM,EDqK1H18B,GAAOgxB,GAAO,GAAO,CACnB3a,KAAM,SAAcwmB,GAClB,OAAO/kC,OAAOshB,OAAO,IAAIliB,KAAKoJ,YAAepJ,KAAM2lC,IAErDC,YAAa,WACX,OAAO5lC,KAAK8jC,MAAM8B,eAEpBC,IAAKhC,GAELE,UAAWF,GACXiC,UASF,WACE,OAAOZ,GAAWllC,MAAM8lC,aATxB7B,UAAWD,GACXjhC,SAAUihC,KAyDZl7B,GAAOw7B,GAAK,GAAK1K,GAAOE,GAAO,CAC7BiM,SAAU,SAAkBrmB,GAE1B,OADAA,EAAS,MAALA,EA1OQ,EAHF,GA6OkB9R,KAAKo4B,IA1OrB,EAHF,GA6OsCtmB,GACzC,IAAI4kB,GAAItkC,KAAKkyB,EAAIxS,EAAG1f,KAAK0kC,EAAIhlB,EAAG1f,KAAKsE,EAAIob,EAAG1f,KAAK4kC,UAE1DqB,OAAQ,SAAgBvmB,GAEtB,OADAA,EAAS,MAALA,EAjPM,GAiPgB9R,KAAKo4B,IAjPrB,GAiPkCtmB,GACrC,IAAI4kB,GAAItkC,KAAKkyB,EAAIxS,EAAG1f,KAAK0kC,EAAIhlB,EAAG1f,KAAKsE,EAAIob,EAAG1f,KAAK4kC,UAE1Dd,IAAK,WACH,OAAO9jC,MAET4lC,YAAa,WACX,OAAQ,IAAO5lC,KAAKkyB,GAAKlyB,KAAKkyB,EAAI,QAAU,IAAOlyB,KAAK0kC,GAAK1kC,KAAK0kC,EAAI,QAAU,IAAO1kC,KAAKsE,GAAKtE,KAAKsE,EAAI,OAAS,GAAKtE,KAAK4kC,SAAW5kC,KAAK4kC,SAAW,GAE1JiB,IAAKhB,GAELd,UAAWc,GACXZ,UAAWa,GACX/hC,SAAU+hC,MA2DZh8B,GAAOm8B,GAAKE,GAAKvL,GAAOE,GAAO,CAC7BiM,SAAU,SAAkBrmB,GAE1B,OADAA,EAAS,MAALA,EAxTQ,EAHF,GA2TkB9R,KAAKo4B,IAxTrB,EAHF,GA2TsCtmB,GACzC,IAAIulB,GAAIjlC,KAAKglC,EAAGhlC,KAAKsoB,EAAGtoB,KAAKoa,EAAIsF,EAAG1f,KAAK4kC,UAElDqB,OAAQ,SAAgBvmB,GAEtB,OADAA,EAAS,MAALA,EA/TM,GA+TgB9R,KAAKo4B,IA/TrB,GA+TkCtmB,GACrC,IAAIulB,GAAIjlC,KAAKglC,EAAGhlC,KAAKsoB,EAAGtoB,KAAKoa,EAAIsF,EAAG1f,KAAK4kC,UAElDd,IAAK,WACH,IAAIkB,EAAIhlC,KAAKglC,EAAI,IAAqB,KAAdhlC,KAAKglC,EAAI,GAC7B1c,EAAI5a,MAAMs3B,IAAMt3B,MAAM1N,KAAKsoB,GAAK,EAAItoB,KAAKsoB,EACzClO,EAAIpa,KAAKoa,EACTkrB,EAAKlrB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKkO,EACjC+c,EAAK,EAAIjrB,EAAIkrB,EACjB,OAAO,IAAIhB,GAAIc,GAAQJ,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKK,EAAIC,GAAKF,GAAQJ,EAAGK,EAAIC,GAAKF,GAAQJ,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKK,EAAIC,GAAKtlC,KAAK4kC,UAEvIgB,YAAa,WACX,OAAQ,GAAK5lC,KAAKsoB,GAAKtoB,KAAKsoB,GAAK,GAAK5a,MAAM1N,KAAKsoB,KAAO,GAAKtoB,KAAKoa,GAAKpa,KAAKoa,GAAK,GAAK,GAAKpa,KAAK4kC,SAAW5kC,KAAK4kC,SAAW,GAE7HkB,UAAW,WACT,IAAIzhC,EAAIrE,KAAK4kC,QAEb,OAAc,KADdvgC,EAAIqJ,MAAMrJ,GAAK,EAAIuJ,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAG1gC,KACzB,OAAS,UAAYrE,KAAKglC,GAAK,GAAK,KAAuB,KAAfhlC,KAAKsoB,GAAK,GAAW,MAAwB,KAAftoB,KAAKoa,GAAK,GAAW,KAAa,IAAN/V,EAAU,IAAM,KAAOA,EAAI,SC7UxI,ICLA,eACb,OAAO,WACL,OAAO4F,ICAX,SAASi8B,GAAO7hC,EAAGoN,GACjB,OAAO,SAAU00B,GACf,OAAO9hC,EAAI8hC,EAAI10B,GAcZ,SAAS20B,GAAMvS,GACpB,OAAoB,IAAZA,GAAKA,GAAWwS,GAAU,SAAUhiC,EAAGC,GAC7C,OAAOA,EAAID,EAZf,SAAqBA,EAAGC,EAAGuvB,GACzB,OAAOxvB,EAAIuJ,KAAKo4B,IAAI3hC,EAAGwvB,GAAIvvB,EAAIsJ,KAAKo4B,IAAI1hC,EAAGuvB,GAAKxvB,EAAGwvB,EAAI,EAAIA,EAAG,SAAUsS,GACtE,OAAOv4B,KAAKo4B,IAAI3hC,EAAI8hC,EAAI7hC,EAAGuvB,IAUZyS,CAAYjiC,EAAGC,EAAGuvB,GAAK,GAASnmB,MAAMrJ,GAAKC,EAAID,IAGnD,SAASgiC,GAAQhiC,EAAGC,GACjC,IAAImN,EAAInN,EAAID,EACZ,OAAOoN,EAAIy0B,GAAO7hC,EAAGoN,GAAK,GAAS/D,MAAMrJ,GAAKC,EAAID,GCrBrC,qBACb,IAAI6B,EAAQkgC,GAAMvS,GAElB,SAASiQ,EAAItuB,EAAOC,GAClB,IAAIyc,EAAIhsB,GAAOsP,EAAQ,GAASA,IAAQ0c,GAAIzc,EAAM,GAASA,IAAMyc,GAC7DwS,EAAIx+B,EAAMsP,EAAMkvB,EAAGjvB,EAAIivB,GACvBpgC,EAAI4B,EAAMsP,EAAMlR,EAAGmR,EAAInR,GACvBsgC,EAAUyB,GAAQ7wB,EAAMovB,QAASnvB,EAAImvB,SACzC,OAAO,SAAUuB,GAKf,OAJA3wB,EAAM0c,EAAIA,EAAEiU,GACZ3wB,EAAMkvB,EAAIA,EAAEyB,GACZ3wB,EAAMlR,EAAIA,EAAE6hC,GACZ3wB,EAAMovB,QAAUA,EAAQuB,GACjB3wB,EAAQ,IAKnB,OADAsuB,EAAIsC,MAAQG,EACLzC,EAlBM,CAmBZ,GAEH,SAAS0C,GAAUC,GACjB,OAAO,SAAUC,GACf,IAIIh8B,EACAxE,EALAyS,EAAI+tB,EAAOllC,OACX0wB,EAAI,IAAIvuB,MAAMgV,GACd+rB,EAAI,IAAI/gC,MAAMgV,GACdrU,EAAI,IAAIX,MAAMgV,GAIlB,IAAKjO,EAAI,EAAGA,EAAIiO,IAAKjO,EACnBxE,EAAQ,GAASwgC,EAAOh8B,IACxBwnB,EAAExnB,GAAKxE,EAAMgsB,GAAK,EAClBwS,EAAEh6B,GAAKxE,EAAMw+B,GAAK,EAClBpgC,EAAEoG,GAAKxE,EAAM5B,GAAK,EAOpB,OAJA4tB,EAAIuU,EAAOvU,GACXwS,EAAI+B,EAAO/B,GACXpgC,EAAImiC,EAAOniC,GACX4B,EAAM0+B,QAAU,EACT,SAAUuB,GAIf,OAHAjgC,EAAMgsB,EAAIA,EAAEiU,GACZjgC,EAAMw+B,EAAIA,EAAEyB,GACZjgC,EAAM5B,EAAIA,EAAE6hC,GACLjgC,EAAQ,KAKCsgC,IHjDP,YACb,IAAI7tB,EAAIrV,EAAO9B,OAAS,EACxB,OAAO,SAAU2kC,GACf,IAAIz7B,EAAIy7B,GAAK,EAAIA,EAAI,EAAIA,GAAK,GAAKA,EAAI,EAAGxtB,EAAI,GAAK/K,KAAK4Y,MAAM2f,EAAIxtB,GAC9D2Y,EAAKhuB,EAAOoH,GACZ6uB,EAAKj2B,EAAOoH,EAAI,GAChB2mB,EAAK3mB,EAAI,EAAIpH,EAAOoH,EAAI,GAAK,EAAI4mB,EAAKiI,EACtCiM,EAAK96B,EAAIiO,EAAI,EAAIrV,EAAOoH,EAAI,GAAK,EAAI6uB,EAAKjI,EAC9C,OAAOiU,IAAOY,EAAIz7B,EAAIiO,GAAKA,EAAG0Y,EAAIC,EAAIiI,EAAIiM,OG0ClBgB,ICtDb,YACb,IAAI7tB,EAAIrV,EAAO9B,OACf,OAAO,SAAU2kC,GACf,IAAIz7B,EAAIkD,KAAK4Y,QAAQ2f,GAAK,GAAK,IAAMA,EAAIA,GAAKxtB,GAC1C0Y,EAAK/tB,GAAQoH,EAAIiO,EAAI,GAAKA,GAC1B2Y,EAAKhuB,EAAOoH,EAAIiO,GAChB4gB,EAAKj2B,GAAQoH,EAAI,GAAKiO,GACtB6sB,EAAKliC,GAAQoH,EAAI,GAAKiO,GAC1B,OAAO4sB,IAAOY,EAAIz7B,EAAIiO,GAAKA,EAAG0Y,EAAIC,EAAIiI,EAAIiM,OD6CvC,IEtDQ,iBACRlhC,IAAGA,EAAI,IACZ,IAEIoG,EAFAiO,EAAItU,EAAIuJ,KAAKm3B,IAAIzgC,EAAE9C,OAAQ6C,EAAE7C,QAAU,EACvCm3B,EAAIr0B,EAAEZ,QAEV,OAAO,SAAUyiC,GACf,IAAKz7B,EAAI,EAAGA,EAAIiO,IAAKjO,EACnBiuB,EAAEjuB,GAAKrG,EAAEqG,IAAM,EAAIy7B,GAAK7hC,EAAEoG,GAAKy7B,EAGjC,OAAOxN,IAGJ,SAASgO,GAAc18B,GAC5B,OAAOoC,YAAYu6B,OAAO38B,MAAQA,aAAayC,UCT1C,SAASm6B,GAAaxiC,EAAGC,GAC9B,IAIIoG,EAJAo8B,EAAKxiC,EAAIA,EAAE9C,OAAS,EACpBulC,EAAK1iC,EAAIuJ,KAAKm3B,IAAI+B,EAAIziC,EAAE7C,QAAU,EAClCyI,EAAI,IAAItG,MAAMojC,GACdpO,EAAI,IAAIh1B,MAAMmjC,GAGlB,IAAKp8B,EAAI,EAAGA,EAAIq8B,IAAMr8B,EACpBT,EAAES,GAAK,GAAMrG,EAAEqG,GAAIpG,EAAEoG,IAGvB,KAAOA,EAAIo8B,IAAMp8B,EACfiuB,EAAEjuB,GAAKpG,EAAEoG,GAGX,OAAO,SAAUy7B,GACf,IAAKz7B,EAAI,EAAGA,EAAIq8B,IAAMr8B,EACpBiuB,EAAEjuB,GAAKT,EAAES,GAAGy7B,GAGd,OAAOxN,GCzBI,qBACb,IAAIlnB,EAAI,IAAI9E,KACZ,OAAOtI,GAAKA,EAAGC,GAAKA,EAAG,SAAU6hC,GAC/B,OAAO10B,EAAEu1B,QAAQ3iC,GAAK,EAAI8hC,GAAK7hC,EAAI6hC,GAAI10B,ICH5B,iBACb,OAAOpN,GAAKA,EAAGC,GAAKA,EAAG,SAAU6hC,GAC/B,OAAO9hC,GAAK,EAAI8hC,GAAK7hC,EAAI6hC,ICDd,iBACb,IAEIzmB,EAFAhV,EAAI,GACJiuB,EAAI,GAKR,IAAKjZ,KAHK,OAANrb,GAA2B,iBAANA,IAAgBA,EAAI,IACnC,OAANC,GAA2B,iBAANA,IAAgBA,EAAI,IAEnCA,EACJob,KAAKrb,EACPqG,EAAEgV,GAAK,GAAMrb,EAAEqb,GAAIpb,EAAEob,IAErBiZ,EAAEjZ,GAAKpb,EAAEob,GAIb,OAAO,SAAUymB,GACf,IAAKzmB,KAAKhV,EACRiuB,EAAEjZ,GAAKhV,EAAEgV,GAAGymB,GAGd,OAAOxN,ICpBPsO,GAAM,8CACNC,GAAM,IAAI74B,OAAO44B,GAAIxsB,OAAQ,KAclB,qBACb,IAEA0sB,EAEAC,EAEAC,EANIC,EAAKL,GAAIM,UAAYL,GAAIK,UAAY,EAQzC78B,GAAK,EAEL4d,EAAI,GAEJiI,EAAI,GAKJ,IAFAlsB,GAAQ,GAAIC,GAAQ,IAEZ6iC,EAAKF,GAAIv0B,KAAKrO,MAAQ+iC,EAAKF,GAAIx0B,KAAKpO,MACrC+iC,EAAKD,EAAG7jC,OAAS+jC,IAEpBD,EAAK/iC,EAAEZ,MAAM4jC,EAAID,GACb/e,EAAE5d,GAAI4d,EAAE5d,IAAM28B,EACb/e,IAAI5d,GAAK28B,IAGXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IAExB9e,EAAE5d,GAAI4d,EAAE5d,IAAM08B,EACb9e,IAAI5d,GAAK08B,GAGd9e,IAAI5d,GAAK,KACT6lB,EAAE7uB,KAAK,CACLgJ,EAAGA,EACHT,EAAG8F,GAAOo3B,EAAIC,MAIlBE,EAAKJ,GAAIK,UAYX,OARID,EAAKhjC,EAAE9C,SACT6lC,EAAK/iC,EAAEZ,MAAM4jC,GACThf,EAAE5d,GAAI4d,EAAE5d,IAAM28B,EACb/e,IAAI5d,GAAK28B,GAKT/e,EAAE9mB,OAAS,EAAI+uB,EAAE,GAzD1B,SAAajsB,GACX,OAAO,SAAU6hC,GACf,OAAO7hC,EAAE6hC,GAAK,IAuDaqB,CAAIjX,EAAE,GAAGtmB,GA/DxC,SAAc3F,GACZ,OAAO,WACL,OAAOA,GA6DkC,CAAKA,IAAMA,EAAIisB,EAAE/uB,OAAQ,SAAU2kC,GAC5E,IAAK,IAAWpiC,EAAP2G,EAAI,EAAMA,EAAIpG,IAAKoG,EAC1B4d,GAAGvkB,EAAIwsB,EAAE7lB,IAAIA,GAAK3G,EAAEkG,EAAEk8B,GAGxB,OAAO7d,EAAErN,KAAK,OC/DH,iBACb,IACI0d,EADAwN,SAAW7hC,EAEf,OAAY,MAALA,GAAmB,YAAN6hC,EAAkB,GAAS7hC,IAAY,WAAN6hC,EAAiBp2B,GAAe,WAANo2B,GAAkBxN,EAAI,GAAMr0B,KAAOA,EAAIq0B,EAAG,IAAO,GAASr0B,aAAa,GAAQ,GAAMA,aAAaqI,KAAO,GAAOg6B,GAAcriC,GAAKmjC,GAAc9jC,MAAM8E,QAAQnE,GAAKuiC,GAAoC,mBAAdviC,EAAEO,SAAgD,mBAAfP,EAAEvB,UAA2B2K,MAAMpJ,GAAK,GAASyL,IAAQ1L,EAAGC,I,aCVtW6d,GAAe,WACjB,SAAS5X,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBfH,GAAWrhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAiDT,IAAI2gC,GAAsB,IAAUxf,UAAU,CAAC,IAAUvY,OAAQ,IAAUmY,MAAM,CAC/E7R,UAAW,IAAUlG,OACrB43B,iBAAkB,IAAU9f,QAAQ,IAAUlY,QAC9CuG,QAAS,IAAUnG,SACjB,IAAU63B,OA4BP,SAASC,GAA0BniC,GACxC,IAAIoiC,EAAgBpiC,EAAMoiC,cACtBC,EAlDN,SAAkCjmC,EAAK+B,GACrC,IAAIkD,EAAS,GAEb,IAAK,IAAI2D,KAAK5I,EACR+B,EAAKmkC,QAAQt9B,IAAM,GAClB9J,OAAOC,UAAUC,eAAeI,KAAKY,EAAK4I,KAC/C3D,EAAO2D,GAAK5I,EAAI4I,IAGlB,OAAO3D,EAyCUkhC,CAAyBviC,EAAO,CAAC,kBAElD,OAAOoiC,EAAcI,QAAO,SAAUzgC,EAAQ0gC,GAK5C,OAJIJ,EAAWjnC,eAAeqnC,KAC5B1gC,EAAO0gC,GAAoBJ,EAAWI,IAGjC1gC,IACN,IAGL,IAAI,GAAY,SAAU2gC,GAGxB,SAASC,EAAU3iC,IA9FrB,SAAyBsf,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCA6FpB6d,CAAgBjlB,KAAMqoC,GAEtB,IAAItjB,EA3FR,SAAoChP,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAsF5DonC,CAA2BtoC,MAAOqoC,EAAUt8B,WAAanL,OAAOkL,eAAeu8B,IAAYnnC,KAAKlB,KAAM0F,IAuClH,OArCAqf,EAAMwjB,kBAAoB,WACpBxjB,EAAMrf,MAAM8iC,OACdzjB,EAAMrf,MAAM8iC,SAIhBzjB,EAAM0jB,gBAAkB,SAAUC,GAChC,IAAIh+B,EAAIg+B,EAAKh+B,EACTyP,EAAW4K,EAAMrf,MAAMyU,SACvBwuB,EAAe5jB,EAAM6jB,cACrBC,EAAQ,IAAM9f,SAASC,KAAK7O,GAC5B2uB,EAAoBH,EAAeA,EAAaj+B,GAAKi+B,EAKrDrnC,EAAOwnC,GAAqBA,EAAkBxnC,MAAQ,KAY1D,OAVIA,GAAQunC,EAAMnjC,MAAMqjC,QACtBznC,EAAOA,EAAKsE,KAAI,SAAUojC,EAAKzlC,GAC7B,IAAI0lC,EAAoBJ,EAAMnjC,MAAMqjC,MAAMxlC,GAC1C,OAAO0e,GAAS,GAAI+mB,EAAK,CACvBxY,OAAQyY,EAAkBzY,OAC1BrW,SAAU8uB,EAAkB9uB,eAK3B,IAAM+uB,aAAaL,EAAO5mB,GAAS,GAAI4mB,EAAMnjC,MAAOojC,EAAmB,CAC5ExnC,KAAMA,GAAQunC,EAAMnjC,MAAMpE,MAAQ,KAElC6nC,WAAYv7B,KAAKw7B,aAIrBrkB,EAAMskB,oBAAoB3jC,GAEnBqf,EAuDT,OAjLF,SAAmBwC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAiE3GG,CAAU0gB,EAAWD,GA+CrBjmB,GAAakmB,EAAW,CAAC,CACvBtoC,IAAK,sBACLU,MAAO,SAA6BiF,GAClC1F,KAAKqpC,oBAAoBrpC,KAAK0F,MAAOA,GAEjCA,EAAM4jC,SACR5jC,EAAM4jC,YAUT,CACDvpC,IAAK,sBAQLU,MAAO,SAA6B8oC,EAAUC,GAC5CxpC,KAAK4oC,cAAgB,GAAYf,GAA0B0B,GAAWC,EAAW3B,GAA0B2B,GAAY,QAExH,CACDzpC,IAAK,SACLU,MAAO,WACL,IAAIgpC,EAjHV,WACE,IAAIA,EAAiBxoC,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,GAAmBA,UAAU,GAAK,WAAQ+U,SAEjG,GAA8B,iBAAnByzB,EACT,OAAO,WAAQA,IAAmB,WAAQzzB,SAG5C,IAAIE,EAAUuzB,EAAevzB,QACzBD,EAAYwzB,EAAexzB,UAC/B,OAAOgM,GAAS,CACd/L,QAASA,GAAW,WAAQF,SAASE,QACrCD,UAAWA,GAAa,WAAQD,SAASC,WACxCwzB,GAqGsBC,CAAkB1pC,KAAK0F,MAAMikC,WAI9C1jC,EAAQ,CACVyE,EAAG,kBAAO,EAAG++B,IAKX1pC,EAAM6N,KAAKw7B,SACf,OAAO,IAAMQ,cAAc,UAAQ3nB,GAAS,CAC1CyN,aAXiB,CACjBhlB,EAAG,GAWHzE,MAAOA,EACPlG,IAAKA,GACJ,CACD0vB,OAAQzvB,KAAKuoC,oBACXvoC,KAAKyoC,qBAINJ,EApGO,CAqGd,iBAEF,GAAUwB,YAAc,YACT,UACJC,GAAoBpC,GCtOhB,iBACb,OAAOrjC,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAImgC,KCAhC,eA4Bf,IAA6BsF,EA1B3B,OADuB,IAAnBC,EAAQxoC,SA2BeuoC,EA3B6BC,EAA9BA,EA4BnB,SAAUv4B,EAAGxH,GAClB,OAAOggC,GAAUF,EAAEt4B,GAAIxH,KA5BlB,CACLinB,KAAM,SAAc7sB,EAAG4F,EAAGigC,EAAIC,GAI5B,IAHU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAK9lC,EAAE7C,QAEhB0oC,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBH,EAAQ3lC,EAAE+lC,GAAMngC,GAAK,EAAGigC,EAAKE,EAAM,EAAOD,EAAKC,EAGrD,OAAOF,GAET/Y,MAAO,SAAe9sB,EAAG4F,EAAGigC,EAAIC,GAI9B,IAHU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAK9lC,EAAE7C,QAEhB0oC,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBH,EAAQ3lC,EAAE+lC,GAAMngC,GAAK,EAAGkgC,EAAKC,EAASF,EAAKE,EAAM,EAGvD,OAAOF,KCtBb,IAAIG,GAAkBC,GAASL,IACpBM,GAAcF,GAAgBlZ,MAE1BqZ,IADSH,GAAgBnZ,KACzB,ICJA,ICDA,iBACb,IAEIzwB,EACAskC,EACAvsB,EAJAG,EAAIrV,EAAO9B,OACXkJ,GAAK,EAKT,GAAe,MAAX+/B,GACF,OAAS//B,EAAIiO,GAEX,GAA2B,OAAtBlY,EAAQ6C,EAAOoH,KAAejK,GAASA,EAG1C,IAFAskC,EAAMvsB,EAAM/X,IAEHiK,EAAIiO,GAEgB,OAAtBlY,EAAQ6C,EAAOoH,MACdq6B,EAAMtkC,IAAOskC,EAAMtkC,GACnB+X,EAAM/X,IAAO+X,EAAM/X,SAM/B,OAASiK,EAAIiO,GAEX,GAA+C,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,KAAoB7C,GAASA,EAG9D,IAFAskC,EAAMvsB,EAAM/X,IAEHiK,EAAIiO,GAEoC,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,MAC7ByhC,EAAMtkC,IAAOskC,EAAMtkC,GACnB+X,EAAM/X,IAAO+X,EAAM/X,IAOjC,MAAO,CAACskC,EAAKvsB,ICvCX,GAAQ7U,MAAM9C,UCAH,IDCI,GAAM6C,MACR,GAAMkC,ICFR,gBACb4P,GAASA,EAAOk1B,GAAQA,EAAMh1B,GAAQiD,EAAI1X,UAAUO,QAAU,GAAKkpC,EAAOl1B,EAAOA,EAAQ,EAAG,GAAKmD,EAAI,EAAI,GAAKjD,EAK9G,IAJA,IAAIhL,GAAK,EACLiO,EAAoD,EAAhD/K,KAAK4K,IAAI,EAAG5K,KAAK0K,MAAMoyB,EAAOl1B,GAASE,IAC3C+D,EAAQ,IAAI9V,MAAMgV,KAEbjO,EAAIiO,GACXc,EAAM/O,GAAK8K,EAAQ9K,EAAIgL,EAGzB,OAAO+D,ICVLkxB,GAAM/8B,KAAKinB,KAAK,IAChB+V,GAAKh9B,KAAKinB,KAAK,IACfgW,GAAKj9B,KAAKinB,KAAK,GACJ,mBACb,IAAIiW,EAEAnyB,EACAoyB,EACAr1B,EAHAhL,GAAK,EAKT,GAD8BsgC,GAASA,GAAzBx1B,GAASA,MAAvBk1B,GAAQA,IACcM,EAAQ,EAAG,MAAO,CAACx1B,GAEzC,IADIs1B,EAAUJ,EAAOl1B,KAAOmD,EAAInD,EAAOA,EAAQk1B,EAAMA,EAAO/xB,GACT,KAA9CjD,EAAOu1B,GAAcz1B,EAAOk1B,EAAMM,MAAkBv9B,SAASiI,GAAO,MAAO,GAEhF,GAAIA,EAAO,EAKT,IAJAF,EAAQ5H,KAAK0K,KAAK9C,EAAQE,GAC1Bg1B,EAAO98B,KAAK4Y,MAAMkkB,EAAOh1B,GACzBq1B,EAAQ,IAAIpnC,MAAMgV,EAAI/K,KAAK0K,KAAKoyB,EAAOl1B,EAAQ,MAEtC9K,EAAIiO,GACXoyB,EAAMrgC,IAAM8K,EAAQ9K,GAAKgL,OAO3B,IAJAF,EAAQ5H,KAAK4Y,MAAMhR,EAAQE,GAC3Bg1B,EAAO98B,KAAK0K,KAAKoyB,EAAOh1B,GACxBq1B,EAAQ,IAAIpnC,MAAMgV,EAAI/K,KAAK0K,KAAK9C,EAAQk1B,EAAO,MAEtChgC,EAAIiO,GACXoyB,EAAMrgC,IAAM8K,EAAQ9K,GAAKgL,EAK7B,OADIo1B,GAASC,EAAMD,UACZC,GAEF,SAASE,GAAcz1B,EAAOk1B,EAAMM,GACzC,IAAIt1B,GAAQg1B,EAAOl1B,GAAS5H,KAAK4K,IAAI,EAAGwyB,GACpCE,EAAQt9B,KAAK4Y,MAAM5Y,KAAKu9B,IAAIz1B,GAAQ9H,KAAKw9B,MACzCC,EAAQ31B,EAAO9H,KAAKo4B,IAAI,GAAIkF,GAChC,OAAOA,GAAS,GAAKG,GAASV,GAAM,GAAKU,GAAST,GAAK,EAAIS,GAASR,GAAK,EAAI,GAAKj9B,KAAKo4B,IAAI,GAAIkF,IAAUt9B,KAAKo4B,IAAI,IAAKkF,IAAUG,GAASV,GAAM,GAAKU,GAAST,GAAK,EAAIS,GAASR,GAAK,EAAI,GAEpL,SAASS,GAAS91B,EAAOk1B,EAAMM,GACpC,IAAIO,EAAQ39B,KAAKkS,IAAI4qB,EAAOl1B,GAAS5H,KAAK4K,IAAI,EAAGwyB,GAC7CQ,EAAQ59B,KAAKo4B,IAAI,GAAIp4B,KAAK4Y,MAAM5Y,KAAKu9B,IAAII,GAAS39B,KAAKw9B,OACvDC,EAAQE,EAAQC,EAEpB,OADIH,GAASV,GAAKa,GAAS,GAAYH,GAAST,GAAIY,GAAS,EAAWH,GAASR,KAAIW,GAAS,GACvFd,EAAOl1B,GAASg2B,EAAQA,EC9ClB,mBACb,OAAO59B,KAAK0K,KAAK1K,KAAKu9B,IAAI7nC,EAAO9B,QAAUoM,KAAK69B,KAAO,GCD1C,iBACb,IAEIhrC,EACAskC,EAHApsB,EAAIrV,EAAO9B,OACXkJ,GAAK,EAIT,GAAe,MAAX+/B,GACF,OAAS//B,EAAIiO,GAEX,GAA2B,OAAtBlY,EAAQ6C,EAAOoH,KAAejK,GAASA,EAG1C,IAFAskC,EAAMtkC,IAEGiK,EAAIiO,GAEgB,OAAtBlY,EAAQ6C,EAAOoH,KAAeq6B,EAAMtkC,IACvCskC,EAAMtkC,QAMd,OAASiK,EAAIiO,GAEX,GAA+C,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,KAAoB7C,GAASA,EAG9D,IAFAskC,EAAMtkC,IAEGiK,EAAIiO,GAEoC,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,KAAoByhC,EAAMtkC,IAC3DskC,EAAMtkC,GAOhB,OAAOskC,GCpCM,iBACb,IAEItkC,EAFAkY,EAAIrV,EAAO9B,OACXkJ,GAAK,EAELghC,EAAM,EAEV,GAAe,MAAXjB,EACF,OAAS//B,EAAIiO,IACPlY,GAAS6C,EAAOoH,MAAIghC,GAAOjrC,QAGjC,OAASiK,EAAIiO,IACPlY,GAASgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,MAASooC,GAAOjrC,GAIvD,OAAOirC,GCdT,SAAStqC,MA4ET,SAAS,GAAI+C,EAAQ4lC,GACnB,IAAInkC,EAAM,IAAIxE,GAEd,GAAI+C,aAAkB/C,GAAK+C,EAAOwnC,MAAK,SAAUlrC,EAAOV,GACtD6F,EAAIhE,IAAI7B,EAAKU,WAEV,GAAIkD,MAAM8E,QAAQtE,GAAS,CAC9B,IAEIJ,EAFA2G,GAAK,EACLiO,EAAIxU,EAAO3C,OAEf,GAAS,MAALuoC,EAAW,OAASr/B,EAAIiO,GAC1B/S,EAAIhE,IAAI8I,EAAGvG,EAAOuG,SACb,OAASA,EAAIiO,GAClB/S,EAAIhE,IAAImoC,EAAEhmC,EAAII,EAAOuG,GAAIA,EAAGvG,GAASJ,QAGpC,GAAII,EAAQ,IAAK,IAAIpE,KAAOoE,EAC/ByB,EAAIhE,IAAI7B,EAAKoE,EAAOpE,IAEtB,OAAO6F,EA7FTxE,GAAIP,UAAY,GAAIA,UAAY,CAC9BuI,YAAahI,GACbqC,IAAK,SAAa1D,GAChB,MAPgB,IAOAA,KAAOC,MAEzBwH,IAAK,SAAazH,GAChB,OAAOC,KAVS,IAUKD,IAEvB6B,IAAK,SAAa7B,EAAKU,GAErB,OADAT,KAbgB,IAaFD,GAAOU,EACdT,MAET+wB,OAAQ,SAAgBhxB,GACtB,IAAIkvB,EAjBY,IAiBQlvB,EACxB,OAAOkvB,KAAYjvB,aAAeA,KAAKivB,IAEzC3mB,MAAO,WACL,IAAK,IAAI2mB,KAAYjvB,KArBL,MAsBVivB,EAAS,WAAsBjvB,KAAKivB,IAG5CprB,KAAM,WACJ,IAAIA,EAAO,GAEX,IAAK,IAAIorB,KAAYjvB,KA5BL,MA6BVivB,EAAS,IAAeprB,EAAKnC,KAAKutB,EAASvrB,MAAM,IAGvD,OAAOG,GAETP,OAAQ,WACN,IAAIA,EAAS,GAEb,IAAK,IAAI2rB,KAAYjvB,KArCL,MAsCVivB,EAAS,IAAe3rB,EAAO5B,KAAK1B,KAAKivB,IAG/C,OAAO3rB,GAET+E,QAAS,WACP,IAAIA,EAAU,GAEd,IAAK,IAAI4mB,KAAYjvB,KA9CL,MA+CVivB,EAAS,IAAe5mB,EAAQ3G,KAAK,CACvC3B,IAAKkvB,EAASvrB,MAAM,GACpBjD,MAAOT,KAAKivB,KAIhB,OAAO5mB,GAET1G,KAAM,WACJ,IAAIA,EAAO,EAEX,IAAK,IAAIstB,KAAYjvB,KA1DL,MA2DVivB,EAAS,MAAiBttB,EAGhC,OAAOA,GAETiqC,MAAO,WACL,IAAK,IAAI3c,KAAYjvB,KACnB,GAlEc,MAkEVivB,EAAS,GAAe,OAAO,EAGrC,OAAO,GAET0c,KAAM,SAAc5B,GAClB,IAAK,IAAI9a,KAAYjvB,KAxEL,MAyEVivB,EAAS,IAAe8a,EAAE/pC,KAAKivB,GAAWA,EAASvrB,MAAM,GAAI1D,QA2BxD,UClGA,cACb,IAEI6rC,EACAC,EACAC,EAJAloC,EAAO,GACPmoC,EAAY,GAKhB,SAAS1kC,EAAMoK,EAAOu6B,EAAOC,EAAcC,GACzC,GAAIF,GAASpoC,EAAKrC,OAEhB,OADmB,MAAfqqC,GAAqBn6B,EAAMuN,KAAK4sB,GAClB,MAAXC,EAAkBA,EAAQp6B,GAASA,EAY5C,IATA,IAGI06B,EACA3rC,EAEA6C,EANAoH,GAAK,EACLiO,EAAIjH,EAAMlQ,OACVzB,EAAM8D,EAAKooC,KAGXI,EAAc,KAEd5kC,EAASykC,MAEJxhC,EAAIiO,IACPrV,EAAS+oC,EAAY7kC,IAAI4kC,EAAWrsC,EAAIU,EAAQiR,EAAMhH,IAAM,KAC9DpH,EAAO5B,KAAKjB,GAEZ4rC,EAAYzqC,IAAIwqC,EAAU,CAAC3rC,IAO/B,OAHA4rC,EAAYV,MAAK,SAAUroC,EAAQvD,GACjCosC,EAAU1kC,EAAQ1H,EAAKuH,EAAMhE,EAAQ2oC,EAAOC,EAAcC,OAErD1kC,EAkBT,OAAOskC,EAAO,CACZ5nC,OAAQ,SAAgBuN,GACtB,OAAOpK,EAAMoK,EAAO,EAAG46B,GAAcC,KAEvC3mC,IAAK,SAAa8L,GAChB,OAAOpK,EAAMoK,EAAO,EAAG86B,GAAWC,KAEpCpkC,QAAS,SAAiBqJ,GACxB,OAvBJ,SAASg7B,EAAS9mC,EAAKqmC,GACrB,KAAMA,EAAQpoC,EAAKrC,OAAQ,OAAOoE,EAClC,IAAI8L,EACAi7B,EAAUX,EAAUC,EAAQ,GAOhC,OANe,MAAXH,GAAmBG,GAASpoC,EAAKrC,OAAQkQ,EAAQ9L,EAAIyC,WAAeqJ,EAAQ,GAAI9L,EAAI+lC,MAAK,SAAUnsB,EAAGE,GACxGhO,EAAMhQ,KAAK,CACT3B,IAAK2f,EACLpc,OAAQopC,EAASltB,EAAGysB,SAGN,MAAXU,EAAkBj7B,EAAMuN,MAAK,SAAU5a,EAAGC,GAC/C,OAAOqoC,EAAQtoC,EAAEtE,IAAKuE,EAAEvE,QACrB2R,EAWIg7B,CAASplC,EAAMoK,EAAO,EAAG86B,GAAWC,IAAS,IAEtD1sC,IAAK,SAAa0R,GAEhB,OADA5N,EAAKnC,KAAK+P,GACHs6B,GAETa,SAAU,SAAkBC,GAE1B,OADAb,EAAUnoC,EAAKrC,OAAS,GAAKqrC,EACtBd,GAETe,WAAY,SAAoBD,GAE9B,OADAhB,EAAcgB,EACPd,GAETgB,OAAQ,SAAgBhD,GAEtB,OADA+B,EAAU/B,EACHgC,KAKb,SAASO,KACP,MAAO,GAGT,SAASC,GAAUpoC,EAAQpE,EAAKU,GAC9B0D,EAAOpE,GAAOU,EAGhB,SAAS+rC,KACP,OAAO,KAGT,SAASC,GAAO7mC,EAAK7F,EAAKU,GACxBmF,EAAIhE,IAAI7B,EAAKU,GC7Ff,SAAS,MAET,IAAI0U,GAAQ,GAAItU,UAiBhB,SAASe,GAAIuC,EAAQ4lC,GACnB,IAAInoC,EAAM,IAAI,GAEd,GAAIuC,aAAkB,GAAKA,EAAOwnC,MAAK,SAAUlrC,GAC/CmB,EAAI4B,IAAI/C,WAEL,GAAI0D,EAAQ,CACf,IAAIuG,GAAK,EACLiO,EAAIxU,EAAO3C,OACf,GAAS,MAALuoC,EAAW,OAASr/B,EAAIiO,GAC1B/W,EAAI4B,IAAIW,EAAOuG,SACV,OAASA,EAAIiO,GAClB/W,EAAI4B,IAAIumC,EAAE5lC,EAAOuG,GAAIA,EAAGvG,IAG5B,OAAOvC,EA/BT,GAAIf,UAAYe,GAAIf,UAAY,CAC9BuI,YAAa,GACb3F,IAAK0R,GAAM1R,IACXD,IAAK,SAAa/C,GAGhB,OADAT,KFVgB,KEShBS,GAAS,KACcA,EAChBT,MAET+wB,OAAQ5b,GAAM4b,OACdzoB,MAAO6M,GAAM7M,MACbhF,OAAQ6R,GAAMtR,KACdlC,KAAMwT,GAAMxT,KACZiqC,MAAOz2B,GAAMy2B,MACbD,KAAMx2B,GAAMw2B,MAqBC,UCvCX,GAAQhoC,MAAM9C,UACP,GAAM,GAAM+E,IACZ,GAAQ,GAAMlC,MCAdspC,GAAW,CACpBrmC,KAAM,YAEO,SAASsmC,GAAQxzB,GAC9B,IAAIlW,EAAQ,KACR2pC,EAAS,GACTC,EAAUH,GAGd,SAASI,EAAM37B,GACb,IAAI1R,EAAM0R,EAAI,GACV/G,EAAInH,EAAMiE,IAAIzH,GAElB,IAAK2K,EAAG,CACN,GAAIyiC,IAAYH,GAAU,OAAOG,EACjC5pC,EAAM3B,IAAI7B,EAAK2K,EAAIwiC,EAAOxrC,KAAK+P,IAGjC,OAAOgI,GAAO/O,EAAI,GAAK+O,EAAMjY,QA8B/B,OAzCAiY,EAAiB,MAATA,EAAgB,GAAK,GAAMvY,KAAKuY,GAcxC2zB,EAAMF,OAAS,SAAUnjC,GACvB,IAAK9I,UAAUO,OAAQ,OAAO0rC,EAAOxpC,QACrCwpC,EAAS,GAAI3pC,EAAQ,KAMrB,IALA,IAEIkO,EACA1R,EAHA2K,GAAK,EACLiO,EAAI5O,EAAEvI,SAIDkJ,EAAIiO,GACNpV,EAAME,IAAI1D,GAAO0R,EAAI1H,EAAEW,IAAM,KAAKnH,EAAM3B,IAAI7B,EAAKmtC,EAAOxrC,KAAK+P,IAGpE,OAAO27B,GAGTA,EAAM3zB,MAAQ,SAAU1P,GACtB,OAAO9I,UAAUO,QAAUiY,EAAQ,GAAMvY,KAAK6I,GAAIqjC,GAAS3zB,EAAM/V,SAGnE0pC,EAAMD,QAAU,SAAUpjC,GACxB,OAAO9I,UAAUO,QAAU2rC,EAAUpjC,EAAGqjC,GAASD,GAGnDC,EAAMjuB,KAAO,WACX,OAAO8tB,KAAUC,OAAOA,GAAQzzB,MAAMA,GAAO0zB,QAAQA,IAGhDC,EClDM,qBACb,OAAO/oC,GAAKA,EAAGC,GAAKA,EAAG,SAAU6hC,GAC/B,OAAOv4B,KAAK6rB,MAAMp1B,GAAK,EAAI8hC,GAAK7hC,EAAI6hC,KCFzB,eACb,OAAO,WACL,OAAOl8B,ICFI,eACb,OAAQA,GCINojC,GAAO,CAAC,EAAG,GACR,SAASC,GAAoBjpC,EAAGC,GACrC,OAAQA,GAAKD,GAAKA,GAAK,SAAU4F,GAC/B,OAAQA,EAAI5F,GAAKC,GACf,GAASA,GAqBf,SAASipC,GAAML,EAAQzzB,EAAO+zB,EAAeC,GAC3C,IAAIC,EAAKR,EAAO,GACZS,EAAKT,EAAO,GACZU,EAAKn0B,EAAM,GACXo0B,EAAKp0B,EAAM,GAEf,OADIk0B,EAAKD,GAAIA,EAAKF,EAAcG,EAAID,GAAKE,EAAKH,EAAcI,EAAID,KAASF,EAAKF,EAAcE,EAAIC,GAAKC,EAAKH,EAAcG,EAAIC,IACrH,SAAU5jC,GACf,OAAO2jC,EAAGF,EAAGzjC,KAIjB,SAAS6jC,GAAQZ,EAAQzzB,EAAO+zB,EAAeC,GAC7C,IAAIlqB,EAAI3V,KAAKm3B,IAAImI,EAAO1rC,OAAQiY,EAAMjY,QAAU,EAC5CiQ,EAAI,IAAI9N,MAAM4f,GACd2O,EAAI,IAAIvuB,MAAM4f,GACd7Y,GAAK,EAOT,IALIwiC,EAAO3pB,GAAK2pB,EAAO,KACrBA,EAASA,EAAOxpC,QAAQonC,UACxBrxB,EAAQA,EAAM/V,QAAQonC,aAGfpgC,EAAI6Y,GACX9R,EAAE/G,GAAK8iC,EAAcN,EAAOxiC,GAAIwiC,EAAOxiC,EAAI,IAC3CwnB,EAAExnB,GAAK+iC,EAAch0B,EAAM/O,GAAI+O,EAAM/O,EAAI,IAG3C,OAAO,SAAUT,GACf,IAAIS,EAAI8/B,GAAO0C,EAAQjjC,EAAG,EAAGsZ,GAAK,EAClC,OAAO2O,EAAExnB,GAAG+G,EAAE/G,GAAGT,KAId,SAASkV,GAAK1E,EAAQ1T,GAC3B,OAAOA,EAAOmmC,OAAOzyB,EAAOyyB,UAAUzzB,MAAMgB,EAAOhB,SAASs0B,YAAYtzB,EAAOszB,eAAeC,MAAMvzB,EAAOuzB,SAI9F,SAASC,GAAWT,EAAeC,GAChD,IAIIS,EACAC,EACAC,EANAlB,EAASG,GACT5zB,EAAQ4zB,GACRU,EAAc,GACdC,GAAQ,EAKZ,SAASK,IAGP,OAFAH,EAAYtgC,KAAKm3B,IAAImI,EAAO1rC,OAAQiY,EAAMjY,QAAU,EAAIssC,GAAUP,GAClEY,EAASC,EAAQ,KACVhB,EAGT,SAASA,EAAMnjC,GACb,OAAQkkC,IAAWA,EAASD,EAAUhB,EAAQzzB,EAAOu0B,EAxEzD,SAA4BR,GAC1B,OAAO,SAAUnpC,EAAGC,GAClB,IAAImN,EAAI+7B,EAAcnpC,GAAKA,EAAGC,GAAKA,GACnC,OAAO,SAAU2F,GACf,OAAOA,GAAK5F,EAAI,EAAI4F,GAAK3F,EAAI,EAAImN,EAAExH,KAoEwBqkC,CAAmBd,GAAiBA,EAAeO,MAAgB9jC,GA2BlI,OAxBAmjC,EAAMmB,OAAS,SAAU1a,GACvB,OAAQua,IAAUA,EAAQF,EAAUz0B,EAAOyzB,EAAQI,GAAqBU,EAnE5E,SAA4BP,GAC1B,OAAO,SAAUppC,EAAGC,GAClB,IAAI4tB,EAAIub,EAAcppC,GAAKA,EAAGC,GAAKA,GACnC,OAAO,SAAU6hC,GACf,OAAOA,GAAK,EAAI9hC,EAAI8hC,GAAK,EAAI7hC,EAAI4tB,EAAEiU,KA+D2CqI,CAAmBf,GAAiBA,MAAkB5Z,IAGxIuZ,EAAMF,OAAS,SAAUnjC,GACvB,OAAO9I,UAAUO,QAAU0rC,EAAS,GAAIhsC,KAAK6I,EAAG,IAASskC,KAAanB,EAAOxpC,SAG/E0pC,EAAM3zB,MAAQ,SAAU1P,GACtB,OAAO9I,UAAUO,QAAUiY,EAAQ,GAAMvY,KAAK6I,GAAIskC,KAAa50B,EAAM/V,SAGvE0pC,EAAMqB,WAAa,SAAU1kC,GAC3B,OAAO0P,EAAQ,GAAMvY,KAAK6I,GAAIgkC,EAAc,GAAkBM,KAGhEjB,EAAMY,MAAQ,SAAUjkC,GACtB,OAAO9I,UAAUO,QAAUwsC,IAAUjkC,EAAGskC,KAAaL,GAGvDZ,EAAMW,YAAc,SAAUhkC,GAC5B,OAAO9I,UAAUO,QAAUusC,EAAchkC,EAAGskC,KAAaN,GAGpDM,IC9GT,IAAIK,GAAK,2EACM,SAASC,GAAgBC,GACtC,KAAM9+B,EAAQ4+B,GAAGh8B,KAAKk8B,IAAa,MAAM,IAAI5hC,MAAM,mBAAqB4hC,GACxE,IAAI9+B,EACJ,OAAO,IAAI++B,GAAgB,CACzBv9B,KAAMxB,EAAM,GACZg/B,MAAOh/B,EAAM,GACbi/B,KAAMj/B,EAAM,GACZ8G,OAAQ9G,EAAM,GACdk/B,KAAMl/B,EAAM,GACZm/B,MAAOn/B,EAAM,GACbo/B,MAAOp/B,EAAM,GACb6P,UAAW7P,EAAM,IAAMA,EAAM,GAAGpM,MAAM,GACtCygC,KAAMr0B,EAAM,GACZhF,KAAMgF,EAAM,MAKT,SAAS++B,GAAgBD,GAC9B5uC,KAAKsR,UAA0BjI,IAAnBulC,EAAUt9B,KAAqB,IAAMs9B,EAAUt9B,KAAO,GAClEtR,KAAK8uC,WAA4BzlC,IAApBulC,EAAUE,MAAsB,IAAMF,EAAUE,MAAQ,GACrE9uC,KAAK+uC,UAA0B1lC,IAAnBulC,EAAUG,KAAqB,IAAMH,EAAUG,KAAO,GAClE/uC,KAAK4W,YAA8BvN,IAArBulC,EAAUh4B,OAAuB,GAAKg4B,EAAUh4B,OAAS,GACvE5W,KAAKgvC,OAASJ,EAAUI,KACxBhvC,KAAKivC,WAA4B5lC,IAApBulC,EAAUK,WAAsB5lC,GAAaulC,EAAUK,MACpEjvC,KAAKkvC,QAAUN,EAAUM,MACzBlvC,KAAK2f,eAAoCtW,IAAxBulC,EAAUjvB,eAA0BtW,GAAaulC,EAAUjvB,UAC5E3f,KAAKmkC,OAASyK,EAAUzK,KACxBnkC,KAAK8K,UAA0BzB,IAAnBulC,EAAU9jC,KAAqB,GAAK8jC,EAAU9jC,KAAO,GAZnE6jC,GAAgB9tC,UAAYguC,GAAgBhuC,UAe5CguC,GAAgBhuC,UAAUkC,SAAW,WACnC,OAAO/C,KAAKsR,KAAOtR,KAAK8uC,MAAQ9uC,KAAK+uC,KAAO/uC,KAAK4W,QAAU5W,KAAKgvC,KAAO,IAAM,UAAsB3lC,IAAfrJ,KAAKivC,MAAsB,GAAKrhC,KAAK4K,IAAI,EAAgB,EAAbxY,KAAKivC,SAAejvC,KAAKkvC,MAAQ,IAAM,UAA0B7lC,IAAnBrJ,KAAK2f,UAA0B,GAAK,IAAM/R,KAAK4K,IAAI,EAAoB,EAAjBxY,KAAK2f,aAAmB3f,KAAKmkC,KAAO,IAAM,IAAMnkC,KAAK8K,MC5BpR,SAASqkC,GAAmBllC,EAAGqmB,GACpC,IAAK5lB,GAAKT,EAAIqmB,EAAIrmB,EAAEmlC,cAAc9e,EAAI,GAAKrmB,EAAEmlC,iBAAiBpH,QAAQ,MAAQ,EAAG,OAAO,KAExF,IAAIt9B,EACA2kC,EAAcplC,EAAEvG,MAAM,EAAGgH,GAG7B,MAAO,CAAC2kC,EAAY7tC,OAAS,EAAI6tC,EAAY,GAAKA,EAAY3rC,MAAM,GAAK2rC,GAAcplC,EAAEvG,MAAMgH,EAAI,ICZtF,ICAJ4kC,GCAP,GACO,GACA,GFFI,eACb,OAAOrlC,EAAIklC,GAAmBvhC,KAAKkS,IAAI7V,KAASA,EAAE,GAAKw6B,KGD1C,iBACb,IAAIhzB,EAAI09B,GAAmBllC,EAAGqmB,GAC9B,IAAK7e,EAAG,OAAOxH,EAAI,GACnB,IAAIolC,EAAc59B,EAAE,GAChB89B,EAAW99B,EAAE,GACjB,OAAO89B,EAAW,EAAI,KAAO,IAAI5rC,OAAO4rC,GAAUt0B,KAAK,KAAOo0B,EAAcA,EAAY7tC,OAAS+tC,EAAW,EAAIF,EAAY3rC,MAAM,EAAG6rC,EAAW,GAAK,IAAMF,EAAY3rC,MAAM6rC,EAAW,GAAKF,EAAc,IAAI1rC,MAAM4rC,EAAWF,EAAY7tC,OAAS,GAAGyZ,KAAK,MCHhP,IACb,IAAK,SAAWhR,EAAGqmB,GACjB,OAAY,IAAJrmB,GAASulC,QAAQlf,IAE3B,EAAK,SAAWrmB,GACd,OAAO2D,KAAK6rB,MAAMxvB,GAAGlH,SAAS,IAEhC,EAAK,SAAWkH,GACd,OAAOA,EAAI,IAEb,ELba,YACb,OAAO2D,KAAKkS,IAAI7V,EAAI2D,KAAK6rB,MAAMxvB,KAAO,KAAOA,EAAEwlC,eAAe,MAAMlgC,QAAQ,KAAM,IAAMtF,EAAElH,SAAS,KKanG,EAAK,SAAWkH,EAAGqmB,GACjB,OAAOrmB,EAAEmlC,cAAc9e,IAEzB,EAAK,SAAWrmB,EAAGqmB,GACjB,OAAOrmB,EAAEulC,QAAQlf,IAEnB,EAAK,SAAWrmB,EAAGqmB,GACjB,OAAOrmB,EAAEylC,YAAYpf,IAEvB,EAAK,SAAWrmB,GACd,OAAO2D,KAAK6rB,MAAMxvB,GAAGlH,SAAS,IAEhC,EAAK,SAAWkH,EAAG0lC,GACjB,OAAOC,GAAkB,IAAJ3lC,EAAS0lC,IAEhC,EAAKC,GACL,EH5Ba,cACb,IAAIn+B,EAAI09B,GAAmBllC,EAAGqmB,GAC9B,IAAK7e,EAAG,OAAOxH,EAAI,GACnB,IAAIolC,EAAc59B,EAAE,GAChB89B,EAAW99B,EAAE,GACb/G,EAAI6kC,GAAYD,GAAuE,EAAtD1hC,KAAK4K,KAAK,EAAG5K,KAAKm3B,IAAI,EAAGn3B,KAAK4Y,MAAM+oB,EAAW,MAAY,EAC5F52B,EAAI02B,EAAY7tC,OACpB,OAAOkJ,IAAMiO,EAAI02B,EAAc3kC,EAAIiO,EAAI02B,EAAc,IAAI1rC,MAAM+G,EAAIiO,EAAI,GAAGsC,KAAK,KAAOvQ,EAAI,EAAI2kC,EAAY3rC,MAAM,EAAGgH,GAAK,IAAM2kC,EAAY3rC,MAAMgH,GAAK,KAAO,IAAI/G,MAAM,EAAI+G,GAAGuQ,KAAK,KAAOk0B,GAAmBllC,EAAG2D,KAAK4K,IAAI,EAAG8X,EAAI5lB,EAAI,IAAI,IGsBvO,EAAK,SAAWT,GACd,OAAO2D,KAAK6rB,MAAMxvB,GAAGlH,SAAS,IAAI8sC,eAEpC,EAAK,SAAWC,GACd,OAAOliC,KAAK6rB,MAAMqW,GAAI/sC,SAAS,MCnCpB,eACb,OAAOkH,GCOL,GAAMtG,MAAM9C,UAAU+E,IACtBmqC,GAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KJG7F,GIFa,YACb,ICXa,IDWTC,OAA4B3mC,IAApB4mC,EAAOC,eAA+C7mC,IAArB4mC,EAAOE,UAA0B,ICXjE,EDWwF,GAAIjvC,KAAK+uC,EAAOC,SAAUriC,QCXlH,EDW2HoiC,EAAOE,UAAY,GCVpJ,SAAU1vC,EAAOwuC,GAOtB,IANA,IAAIvkC,EAAIjK,EAAMe,OACV2kC,EAAI,GACJ5iB,EAAI,EACJmhB,EAAIwL,EAAS,GACb1uC,EAAS,EAENkJ,EAAI,GAAKg6B,EAAI,IACdljC,EAASkjC,EAAI,EAAIuK,IAAOvK,EAAI92B,KAAK4K,IAAI,EAAGy2B,EAAQztC,IACpD2kC,EAAEzkC,KAAKjB,EAAM2vC,UAAU1lC,GAAKg6B,EAAGh6B,EAAIg6B,OAC9BljC,GAAUkjC,EAAI,GAAKuK,KACxBvK,EAAIwL,EAAS3sB,GAAKA,EAAI,GAAK2sB,EAAS1uC,QAGtC,OAAO2kC,EAAE2E,UAAU7vB,KAAKk1B,KDHtBE,OAAqChnC,IAApB4mC,EAAOK,SAAyB,GAAKL,EAAOK,SAAS,GAAK,GAC3EC,OAAqClnC,IAApB4mC,EAAOK,SAAyB,GAAKL,EAAOK,SAAS,GAAK,GAC3EE,OAA6BnnC,IAAnB4mC,EAAOO,QAAwB,IAAMP,EAAOO,QAAU,GAChEC,OAA+BpnC,IAApB4mC,EAAOQ,SAAyB,GEflC,YACb,OAAO,SAAUhwC,GACf,OAAOA,EAAM8O,QAAQ,UAAU,SAAU7E,GACvC,OAAO+lC,GAAU/lC,OFYqCgmC,CAAe,GAAIxvC,KAAK+uC,EAAOQ,SAAUjiC,SAC/FmiC,OAA6BtnC,IAAnB4mC,EAAOU,QAAwB,IAAMV,EAAOU,QAAU,GAChEC,OAAyBvnC,IAAjB4mC,EAAOW,MAAsB,IAAMX,EAAOW,MAAQ,GAC1DC,OAAqBxnC,IAAf4mC,EAAOY,IAAoB,MAAQZ,EAAOY,IAAM,GAE1D,SAASC,EAAUlC,GAEjB,IAAIt9B,GADJs9B,EAAYD,GAAgBC,IACPt9B,KACjBw9B,EAAQF,EAAUE,MAClBC,EAAOH,EAAUG,KACjBn4B,EAASg4B,EAAUh4B,OACnBo4B,EAAOJ,EAAUI,KACjBC,EAAQL,EAAUK,MAClBC,EAAQN,EAAUM,MAClBvvB,EAAYivB,EAAUjvB,UACtBwkB,EAAOyK,EAAUzK,KACjBr5B,EAAO8jC,EAAU9jC,KAER,MAATA,GAAcokC,GAAQ,EAAMpkC,EAAO,KAC7BimC,GAAYjmC,UAAqBzB,IAAdsW,IAA4BA,EAAY,IAAKwkB,GAAO,EAAMr5B,EAAO,MAE1FkkC,GAAiB,MAAT19B,GAA0B,MAAVw9B,KAAeE,GAAO,EAAM19B,EAAO,IAAKw9B,EAAQ,KAG5E,IAAIkC,EAAoB,MAAXp6B,EAAiBy5B,EAA4B,MAAXz5B,GAAkB,SAAS7L,KAAKD,GAAQ,IAAMA,EAAKs5B,cAAgB,GAC9G6M,EAAoB,MAAXr6B,EAAiB25B,EAAiB,OAAOxlC,KAAKD,GAAQ6lC,EAAU,GAIzEO,EAAaH,GAAYjmC,GACzBqmC,EAAc,aAAapmC,KAAKD,GAOpC,SAASo5B,EAAOzjC,GACd,IAEIiK,EACAiO,EACAggB,EAJAyY,EAAcJ,EACdK,EAAcJ,EAKlB,GAAa,MAATnmC,EACFumC,EAAcH,EAAWzwC,GAAS4wC,EAClC5wC,EAAQ,OACH,CAGL,IAAI6wC,GAFJ7wC,GAASA,GAEmB,GAAK,EAAIA,EAAQ,EAY7C,GAVAA,EAAQiN,MAAMjN,GAASowC,EAAMK,EAAWtjC,KAAKkS,IAAIrf,GAAQkf,GAErDwkB,IAAM1jC,EGpEH,YACb8wC,EAAK,IAAK,IAAkCpY,EAA9BxgB,EAAI2P,EAAE9mB,OAAQkJ,EAAI,EAAGwuB,GAAM,EAAOxuB,EAAIiO,IAAKjO,EACvD,OAAQ4d,EAAE5d,IACR,IAAK,IACHwuB,EAAKC,EAAKzuB,EACV,MAEF,IAAK,IACQ,IAAPwuB,IAAUA,EAAKxuB,GACnByuB,EAAKzuB,EACL,MAEF,QACE,KAAM4d,EAAE5d,GAAI,MAAM6mC,EACdrY,EAAK,IAAGA,EAAK,GAKvB,OAAOA,EAAK,EAAI5Q,EAAE5kB,MAAM,EAAGw1B,GAAM5Q,EAAE5kB,MAAMy1B,EAAK,GAAK7Q,EHiD3BkpB,CAAW/wC,IAEzB6wC,GAA4B,IAAV7wC,GAAwB,MAATsuC,IAAcuC,GAAgB,GAEnEF,GAAeE,EAAyB,MAATvC,EAAeA,EAAO6B,EAAiB,MAAT7B,GAAyB,MAATA,EAAe,GAAKA,GAAQqC,EACzGC,GAAwB,MAATvmC,EAAeilC,GAAS,EAAIT,GAAiB,GAAK,IAAM+B,GAAeC,GAA0B,MAATvC,EAAe,IAAM,IAGxHoC,EAGF,IAFAzmC,GAAK,EAAGiO,EAAIlY,EAAMe,SAETkJ,EAAIiO,GACX,GAA6B,IAAzBggB,EAAIl4B,EAAMmT,WAAWlJ,KAAciuB,EAAI,GAAI,CAC7C0Y,GAAqB,KAAN1Y,EAAW6X,EAAU/vC,EAAMiD,MAAMgH,EAAI,GAAKjK,EAAMiD,MAAMgH,IAAM2mC,EAC3E5wC,EAAQA,EAAMiD,MAAM,EAAGgH,GACvB,OAOJwkC,IAAUF,IAAMvuC,EAAQuvC,EAAMvvC,EAAOg2B,MAEzC,IAAIj1B,EAAS4vC,EAAY5vC,OAASf,EAAMe,OAAS6vC,EAAY7vC,OACzDiwC,EAAUjwC,EAASytC,EAAQ,IAAItrC,MAAMsrC,EAAQztC,EAAS,GAAGyZ,KAAK3J,GAAQ,GAI1E,OAFI49B,GAASF,IAAMvuC,EAAQuvC,EAAMyB,EAAUhxC,EAAOgxC,EAAQjwC,OAASytC,EAAQoC,EAAY7vC,OAASi1B,KAAWgb,EAAU,IAE7G3C,GACN,IAAK,IACHruC,EAAQ2wC,EAAc3wC,EAAQ4wC,EAAcI,EAC5C,MAEF,IAAK,IACHhxC,EAAQ2wC,EAAcK,EAAUhxC,EAAQ4wC,EACxC,MAEF,IAAK,IACH5wC,EAAQgxC,EAAQ/tC,MAAM,EAAGlC,EAASiwC,EAAQjwC,QAAU,GAAK4vC,EAAc3wC,EAAQ4wC,EAAcI,EAAQ/tC,MAAMlC,GAC3G,MAEF,QACEf,EAAQgxC,EAAUL,EAAc3wC,EAAQ4wC,EAI5C,OAAOZ,EAAShwC,GAOlB,OAzEAkf,OAA0BtW,IAAdsW,EAA0B,EAAI,SAAS5U,KAAKD,GAAQ8C,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,GAAIplB,IAAc/R,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,GAAIplB,IAqEhIukB,EAAOnhC,SAAW,WAChB,OAAO6rC,EAAY,IAGd1K,EAaT,MAAO,CACLA,OAAQ4M,EACRY,aAZF,SAAsB9C,EAAWnuC,GAC/B,IAAIspC,EAAI+G,IAAWlC,EAAYD,GAAgBC,IAAsB9jC,KAAO,IAAK8jC,IAC7ExpC,EAAiE,EAA7DwI,KAAK4K,KAAK,EAAG5K,KAAKm3B,IAAI,EAAGn3B,KAAK4Y,MAAM,GAAS/lB,GAAS,KAC1Dif,EAAI9R,KAAKo4B,IAAI,IAAK5gC,GAClB4rC,EAASjB,GAAS,EAAI3qC,EAAI,GAC9B,OAAO,SAAU3E,GACf,OAAOspC,EAAErqB,EAAIjf,GAASuwC,KJxHjB,CARG,CACZR,QAAS,IACTL,UAAW,IACXD,SAAU,CAAC,GACXI,SAAU,CAAC,IAAK,IAChBM,MAAO,MAIP,GAAS,GAAO1M,OAChB,GAAe,GAAOwN,aQbT,ICCA,mBACb,IAGI/xB,EAHAnK,EAAQ03B,EAAO,GACfxC,EAAOwC,EAAOA,EAAO1rC,OAAS,GAC9BkU,EAAO41B,GAAS91B,EAAOk1B,EAAe,MAATM,EAAgB,GAAKA,GAItD,QAFA4D,EAAYD,GAA6B,MAAbC,EAAoB,KAAOA,IAErC9jC,MAChB,IAAK,IAED,IAAIrK,EAAQmN,KAAK4K,IAAI5K,KAAKkS,IAAItK,GAAQ5H,KAAKkS,IAAI4qB,IAE/C,OAD2B,MAAvBkE,EAAUjvB,WAAsBjS,MAAMiS,ECZnC,cACb,OAAO/R,KAAK4K,IAAI,EAAgE,EAA7D5K,KAAK4K,KAAK,EAAG5K,KAAKm3B,IAAI,EAAGn3B,KAAK4Y,MAAM,GAAS/lB,GAAS,KAAW,GAASmN,KAAKkS,IAAIpK,KDW1Ci8B,CAAgBj8B,EAAMjV,MAASmuC,EAAUjvB,UAAYA,GACpG,GAAaivB,EAAWnuC,GAGnC,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAE0B,MAAvBmuC,EAAUjvB,WAAsBjS,MAAMiS,EDtBnC,cAEb,OADAjK,EAAO9H,KAAKkS,IAAIpK,GAAO8C,EAAM5K,KAAKkS,IAAItH,GAAO9C,EACtC9H,KAAK4K,IAAI,EAAG,GAASA,GAAO,GAAS9C,IAAS,ECoBOk8B,CAAel8B,EAAM9H,KAAK4K,IAAI5K,KAAKkS,IAAItK,GAAQ5H,KAAKkS,IAAI4qB,QAAUkE,EAAUjvB,UAAYA,GAAgC,MAAnBivB,EAAU9jC,OACrK,MAGJ,IAAK,IACL,IAAK,IAE0B,MAAvB8jC,EAAUjvB,WAAsBjS,MAAMiS,EE7BnC,YACb,OAAO/R,KAAK4K,IAAI,GAAI,GAAS5K,KAAKkS,IAAIpK,KF4BsBm8B,CAAen8B,MAAQk5B,EAAUjvB,UAAYA,EAAuC,GAAP,MAAnBivB,EAAU9jC,OAKhI,OAAO,GAAO8jC,IG/BT,SAASkD,GAAU1E,GACxB,IAAIF,EAASE,EAAMF,OAkDnB,OAhDAE,EAAMrC,MAAQ,SAAUC,GACtB,IAAIv5B,EAAIy7B,IACR,OAAO,GAAMz7B,EAAE,GAAIA,EAAEA,EAAEjQ,OAAS,GAAa,MAATwpC,EAAgB,GAAKA,IAG3DoC,EAAM2E,WAAa,SAAU/G,EAAO4D,GAClC,OAAO,GAAW1B,IAAUlC,EAAO4D,IAGrCxB,EAAM4E,KAAO,SAAUhH,GACR,MAATA,IAAeA,EAAQ,IAC3B,IAKIt1B,EALAjE,EAAIy7B,IACJhU,EAAK,EACLC,EAAK1nB,EAAEjQ,OAAS,EAChBgU,EAAQ/D,EAAEynB,GACVwR,EAAOj5B,EAAE0nB,GA8Bb,OA3BIuR,EAAOl1B,IACTE,EAAOF,EAAOA,EAAQk1B,EAAMA,EAAOh1B,EACnCA,EAAOwjB,EAAIA,EAAKC,EAAIA,EAAKzjB,IAG3BA,EAAOu1B,GAAcz1B,EAAOk1B,EAAMM,IAEvB,EAGTt1B,EAAOu1B,GAFPz1B,EAAQ5H,KAAK4Y,MAAMhR,EAAQE,GAAQA,EACnCg1B,EAAO98B,KAAK0K,KAAKoyB,EAAOh1B,GAAQA,EACEs1B,GACzBt1B,EAAO,IAGhBA,EAAOu1B,GAFPz1B,EAAQ5H,KAAK0K,KAAK9C,EAAQE,GAAQA,EAClCg1B,EAAO98B,KAAK4Y,MAAMkkB,EAAOh1B,GAAQA,EACCs1B,IAGhCt1B,EAAO,GACTjE,EAAEynB,GAAMtrB,KAAK4Y,MAAMhR,EAAQE,GAAQA,EACnCjE,EAAE0nB,GAAMvrB,KAAK0K,KAAKoyB,EAAOh1B,GAAQA,EACjCw3B,EAAOz7B,IACEiE,EAAO,IAChBjE,EAAEynB,GAAMtrB,KAAK0K,KAAK9C,EAAQE,GAAQA,EAClCjE,EAAE0nB,GAAMvrB,KAAK4Y,MAAMkkB,EAAOh1B,GAAQA,EAClCw3B,EAAOz7B,IAGF27B,GAGFA,EAEM,SAAS,KACtB,IAAIA,EAAQa,GAAW,GAAe,IAMtC,OAJAb,EAAMjuB,KAAO,WACX,OAAOA,GAAKiuB,EAAO,OAGd0E,GAAU1E,GChEJ,qBAEb,IAIIjH,EAJAjN,EAAK,EACLC,GAFJ+T,EAASA,EAAOxpC,SAEAlC,OAAS,EACrBswB,EAAKob,EAAOhU,GACZlH,EAAKkb,EAAO/T,GAUhB,OAPInH,EAAKF,IACPqU,EAAIjN,EAAIA,EAAKC,EAAIA,EAAKgN,EACtBA,EAAIrU,EAAIA,EAAKE,EAAIA,EAAKmU,GAGxB+G,EAAOhU,GAAM+Y,EAASzrB,MAAMsL,GAC5Bob,EAAO/T,GAAM8Y,EAAS35B,KAAK0Z,GACpBkb,GCTT,SAAS,GAAc7oC,EAAGC,GACxB,OAAQA,EAAIsJ,KAAKu9B,IAAI7mC,EAAID,IAAM,SAAU4F,GACvC,OAAO2D,KAAKu9B,IAAIlhC,EAAI5F,GAAKC,GACvB,GAASA,GAGf,SAAS,GAAcD,EAAGC,GACxB,OAAOD,EAAI,EAAI,SAAU8hC,GACvB,OAAQv4B,KAAKo4B,KAAK1hC,EAAG6hC,GAAKv4B,KAAKo4B,KAAK3hC,EAAG,EAAI8hC,IACzC,SAAUA,GACZ,OAAOv4B,KAAKo4B,IAAI1hC,EAAG6hC,GAAKv4B,KAAKo4B,IAAI3hC,EAAG,EAAI8hC,IAI5C,SAAS+L,GAAMjoC,GACb,OAAOwD,SAASxD,KAAO,KAAOA,GAAKA,EAAI,EAAI,EAAIA,EAGjD,SAASkoC,GAAKC,GACZ,OAAgB,KAATA,EAAcF,GAAQE,IAASxkC,KAAKykC,EAAIzkC,KAAK0kC,IAAM,SAAUroC,GAClE,OAAO2D,KAAKo4B,IAAIoM,EAAMnoC,IAI1B,SAASsoC,GAAKH,GACZ,OAAOA,IAASxkC,KAAKykC,EAAIzkC,KAAKu9B,IAAe,KAATiH,GAAexkC,KAAK4kC,OAAkB,IAATJ,GAAcxkC,KAAK6kC,OAASL,EAAOxkC,KAAKu9B,IAAIiH,GAAO,SAAUnoC,GAC5H,OAAO2D,KAAKu9B,IAAIlhC,GAAKmoC,IAIzB,SAASM,GAAQ3I,GACf,OAAO,SAAU9/B,GACf,OAAQ8/B,GAAG9/B,IClCf,SAAS0oC,GAAM1oC,EAAGslC,GAChB,OAAOtlC,EAAI,GAAK2D,KAAKo4B,KAAK/7B,EAAGslC,GAAY3hC,KAAKo4B,IAAI/7B,EAAGslC,GA+BhD,SAAS1a,KACd,OA7Ba,SAASmR,IACtB,IAAIuJ,EAAW,EACXnC,EAAQa,IAGZ,SAAuB5pC,EAAGC,GACxB,OAAQA,EAAIquC,GAAMruC,EAAGirC,IAAalrC,EAAIsuC,GAAMtuC,EAAGkrC,KAAc,SAAUtlC,GACrE,OAAQ0oC,GAAM1oC,EAAGslC,GAAYlrC,GAAKC,GAChC,GAASA,MAGf,SAAuBD,EAAGC,GAExB,OADAA,EAAIquC,GAAMruC,EAAGirC,IAAalrC,EAAIsuC,GAAMtuC,EAAGkrC,IAChC,SAAUpJ,GACf,OAAOwM,GAAMtuC,EAAIC,EAAI6hC,EAAG,EAAIoJ,OAX5BrC,EAASE,EAAMF,OAuBnB,OARAE,EAAMmC,SAAW,SAAUxlC,GACzB,OAAO9I,UAAUO,QAAU+tC,GAAYxlC,EAAGmjC,EAAOA,MAAaqC,GAGhEnC,EAAMjuB,KAAO,WACX,OAAOA,GAAKiuB,EAAOpH,IAAMuJ,SAASA,KAG7BuC,GAAU1E,GAGVpH,GAAMuJ,SAAS,ICrCxB,IAAI,GAAK,IAAI5iC,KACT,GAAK,IAAIA,KACE,SAASimC,GAAYC,EAAQC,EAAS9H,EAAO+H,GAC1D,SAASd,EAASe,GAChB,OAAOH,EAAOG,EAA4B,IAArB/xC,UAAUO,OAAe,IAAImL,KAAS,IAAIA,MAAMqmC,IAAQA,EAsE/E,OAnEAf,EAASzrB,MAAQ,SAAUwsB,GACzB,OAAOH,EAAOG,EAAO,IAAIrmC,MAAMqmC,IAAQA,GAGzCf,EAAS35B,KAAO,SAAU06B,GACxB,OAAOH,EAAOG,EAAO,IAAIrmC,KAAKqmC,EAAO,IAAKF,EAAQE,EAAM,GAAIH,EAAOG,GAAOA,GAG5Ef,EAASxY,MAAQ,SAAUuZ,GACzB,IAAItF,EAAKuE,EAASe,GACdrF,EAAKsE,EAAS35B,KAAK06B,GACvB,OAAOA,EAAOtF,EAAKC,EAAKqF,EAAOtF,EAAKC,GAGtCsE,EAAStgC,OAAS,SAAUqhC,EAAMt9B,GAChC,OAAOo9B,EAAQE,EAAO,IAAIrmC,MAAMqmC,GAAe,MAARt9B,EAAe,EAAI9H,KAAK4Y,MAAM9Q,IAAQs9B,GAG/Ef,EAASx4B,MAAQ,SAAUjE,EAAOk1B,EAAMh1B,GACtC,IACI6f,EADA9b,EAAQ,GAIZ,GAFAjE,EAAQy8B,EAAS35B,KAAK9C,GACtBE,EAAe,MAARA,EAAe,EAAI9H,KAAK4Y,MAAM9Q,KAC/BF,EAAQk1B,GAAWh1B,EAAO,GAAI,OAAO+D,EAE3C,GACEA,EAAM/X,KAAK6zB,EAAW,IAAI5oB,MAAM6I,IAASs9B,EAAQt9B,EAAOE,GAAOm9B,EAAOr9B,SAC/D+f,EAAW/f,GAASA,EAAQk1B,GAErC,OAAOjxB,GAGTw4B,EAASlZ,OAAS,SAAUhuB,GAC1B,OAAO6nC,IAAY,SAAUI,GAC3B,GAAIA,GAAQA,EAAM,KAAOH,EAAOG,IAAQjoC,EAAKioC,IAC3CA,EAAKhM,QAAQgM,EAAO,MAErB,SAAUA,EAAMt9B,GACjB,GAAIs9B,GAAQA,EACV,GAAIt9B,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAOo9B,EAAQE,GAAO,IAAKjoC,EAAKioC,UAE3B,OAASt9B,GAAQ,GACtB,KAAOo9B,EAAQE,EAAM,IAAMjoC,EAAKioC,UAOpChI,IACFiH,EAASjH,MAAQ,SAAUx1B,EAAOC,GAGhC,OAFA,GAAGuxB,SAASxxB,GAAQ,GAAGwxB,SAASvxB,GAChCo9B,EAAO,IAAKA,EAAO,IACZjlC,KAAK4Y,MAAMwkB,EAAM,GAAI,MAG9BiH,EAASgB,MAAQ,SAAUv9B,GAEzB,OADAA,EAAO9H,KAAK4Y,MAAM9Q,GACVjI,SAASiI,IAAWA,EAAO,EAAcA,EAAO,EAAgBu8B,EAASlZ,OAAOga,EAAQ,SAAUthC,GACxG,OAAOshC,EAAMthC,GAAKiE,GAAS,GACzB,SAAUjE,GACZ,OAAOwgC,EAASjH,MAAM,EAAGv5B,GAAKiE,GAAS,IAHoBu8B,EAArB,OAQrCA,ECzET,IAAI,GAAO,IAAS,SAAUe,GAC5BA,EAAKE,SAAS,EAAG,GACjBF,EAAKG,SAAS,EAAG,EAAG,EAAG,MACtB,SAAUH,EAAMt9B,GACjBs9B,EAAKI,YAAYJ,EAAKK,cAAgB39B,MACrC,SAAUF,EAAOC,GAClB,OAAOA,EAAI49B,cAAgB79B,EAAM69B,iBAChC,SAAUL,GACX,OAAOA,EAAKK,iBAGd,GAAKJ,MAAQ,SAAUvzB,GACrB,OAAQjS,SAASiS,EAAI9R,KAAK4Y,MAAM9G,KAASA,EAAI,EAAY,IAAS,SAAUszB,GAC1EA,EAAKI,YAAYxlC,KAAK4Y,MAAMwsB,EAAKK,cAAgB3zB,GAAKA,GACtDszB,EAAKE,SAAS,EAAG,GACjBF,EAAKG,SAAS,EAAG,EAAG,EAAG,MACtB,SAAUH,EAAMt9B,GACjBs9B,EAAKI,YAAYJ,EAAKK,cAAgB39B,EAAOgK,MALG,MASrC,UCrBX,IDsBe,GAAKjG,MCtBZ,IAAS,SAAUu5B,GAC7BA,EAAKM,QAAQ,GACbN,EAAKG,SAAS,EAAG,EAAG,EAAG,MACtB,SAAUH,EAAMt9B,GACjBs9B,EAAKE,SAASF,EAAKO,WAAa79B,MAC/B,SAAUF,EAAOC,GAClB,OAAOA,EAAI89B,WAAa/9B,EAAM+9B,WAAyD,IAA3C99B,EAAI49B,cAAgB79B,EAAM69B,kBACrE,SAAUL,GACX,OAAOA,EAAKO,eAEC,MACK,GAAM95B,MCT1B,SAAS+5B,GAAQ9oC,GACf,OAAO,IAAS,SAAUsoC,GACxBA,EAAKM,QAAQN,EAAKS,WAAaT,EAAK1gC,SAAW,EAAI5H,GAAK,GACxDsoC,EAAKG,SAAS,EAAG,EAAG,EAAG,MACtB,SAAUH,EAAMt9B,GACjBs9B,EAAKM,QAAQN,EAAKS,UAAmB,EAAP/9B,MAC7B,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,ECTU,KDSDC,EAAIi+B,oBAAsBl+B,EAAMk+B,sBCNjC,UDUnB,IAAIC,GAASH,GAAQ,GACjBI,GAASJ,GAAQ,GACjBK,GAAUL,GAAQ,GAClBM,GAAYN,GAAQ,GACpBO,GAAWP,GAAQ,GACnBQ,GAASR,GAAQ,GACjBS,GAAWT,GAAQ,GElB1B,IFmBiBG,GAAOl6B,MACPm6B,GAAOn6B,MACNo6B,GAAQp6B,MACNq6B,GAAUr6B,MACXs6B,GAASt6B,MACXu6B,GAAOv6B,MACLw6B,GAASx6B,MEzBtB,IAAS,SAAUu5B,GAC3BA,EAAKG,SAAS,EAAG,EAAG,EAAG,MACtB,SAAUH,EAAMt9B,GACjBs9B,EAAKM,QAAQN,EAAKS,UAAY/9B,MAC7B,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,EDNY,KCMHC,EAAIi+B,oBAAsBl+B,EAAMk+B,sBDJhC,SCKtB,SAAUV,GACX,OAAOA,EAAKS,UAAY,MAEX,MCTX,IDUc,GAAIh6B,MCVX,IAAS,SAAUu5B,GAC5BA,EAAKhM,QAAQgM,EAAOA,EAAKkB,kBFHC,IEGmBlB,EAAKmB,aFFxB,IEEwDnB,EAAKoB,iBACtF,SAAUpB,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EFHU,KEGHt9B,MACpB,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GFLU,QEMvB,SAAUw9B,GACX,OAAOA,EAAKqB,eAEC,MCTX,IDUe,GAAK56B,MCVX,IAAS,SAAUu5B,GAC9BA,EAAKhM,QAAQgM,EAAOA,EAAKkB,kBHHC,IGGmBlB,EAAKmB,iBACjD,SAAUnB,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EHJY,IGILt9B,MACpB,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GHNY,OGOzB,SAAUw9B,GACX,OAAOA,EAAKoB,iBAEC,MCTX,IDUiB,GAAO36B,MCVf,IAAS,SAAUu5B,GAC9BA,EAAKhM,QAAQgM,EAAOA,EAAKkB,sBACxB,SAAUlB,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EJLY,IIKLt9B,MACpB,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GJPY,OIQzB,SAAUw9B,GACX,OAAOA,EAAKsB,oBAEC,MCVX,IDWiB,GAAO76B,MCXV,IAAS,eACxB,SAAUu5B,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EAAOt9B,MACpB,SAAUF,EAAOC,GAClB,OAAOA,EAAMD,MAGf,GAAYy9B,MAAQ,SAAUvzB,GAE5B,OADAA,EAAI9R,KAAK4Y,MAAM9G,GACVjS,SAASiS,IAAQA,EAAI,EACpBA,EAAI,EACH,IAAS,SAAUszB,GACxBA,EAAKhM,QAAQp5B,KAAK4Y,MAAMwsB,EAAOtzB,GAAKA,MACnC,SAAUszB,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EAAOt9B,EAAOgK,MAC3B,SAAUlK,EAAOC,GAClB,OAAQA,EAAMD,GAASkK,KANJ,GADgB,MAWxB,UACW,GAAYjG,MCnBtC,SAAS86B,GAAW7pC,GAClB,OAAO,IAAS,SAAUsoC,GACxBA,EAAKwB,WAAWxB,EAAKyB,cAAgBzB,EAAK0B,YAAc,EAAIhqC,GAAK,GACjEsoC,EAAK2B,YAAY,EAAG,EAAG,EAAG,MACzB,SAAU3B,EAAMt9B,GACjBs9B,EAAKwB,WAAWxB,EAAKyB,aAAsB,EAAP/+B,MACnC,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GNNQ,UMUnB,IAAIo/B,GAAYL,GAAW,GACvBM,GAAYN,GAAW,GACvBO,GAAaP,GAAW,GACxBQ,GAAeR,GAAW,GAC1BS,GAAcT,GAAW,GACzBU,GAAYV,GAAW,GACvBW,GAAcX,GAAW,GClBhCY,IDmBoBP,GAAUn7B,MACVo7B,GAAUp7B,MACTq7B,GAAWr7B,MACTs7B,GAAat7B,MACdu7B,GAAYv7B,MACdw7B,GAAUx7B,MACRy7B,GAAYz7B,MCzBzB,IAAS,SAAUu5B,GAC9BA,EAAK2B,YAAY,EAAG,EAAG,EAAG,MACzB,SAAU3B,EAAMt9B,GACjBs9B,EAAKwB,WAAWxB,EAAKyB,aAAe/+B,MACnC,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GPJS,SOKtB,SAAUw9B,GACX,OAAOA,EAAKyB,aAAe,MAEd,MCVXW,IDWiBD,GAAO17B,MCXd,IAAS,SAAUu5B,GAC/BA,EAAKqC,YAAY,EAAG,GACpBrC,EAAK2B,YAAY,EAAG,EAAG,EAAG,MACzB,SAAU3B,EAAMt9B,GACjBs9B,EAAKsC,eAAetC,EAAKuC,iBAAmB7/B,MAC3C,SAAUF,EAAOC,GAClB,OAAOA,EAAI8/B,iBAAmB//B,EAAM+/B,oBACnC,SAAUvC,GACX,OAAOA,EAAKuC,qBAGdH,GAAQnC,MAAQ,SAAUvzB,GACxB,OAAQjS,SAASiS,EAAI9R,KAAK4Y,MAAM9G,KAASA,EAAI,EAAY,IAAS,SAAUszB,GAC1EA,EAAKsC,eAAe1nC,KAAK4Y,MAAMwsB,EAAKuC,iBAAmB71B,GAAKA,GAC5DszB,EAAKqC,YAAY,EAAG,GACpBrC,EAAK2B,YAAY,EAAG,EAAG,EAAG,MACzB,SAAU3B,EAAMt9B,GACjBs9B,EAAKsC,eAAetC,EAAKuC,iBAAmB7/B,EAAOgK,MALH,MASrC,UACO01B,GAAQ37B,MCrB9B,SAAS+7B,GAAU/jC,GACjB,GAAI,GAAKA,EAAEoiB,GAAKpiB,EAAEoiB,EAAI,IAAK,CACzB,IAAImf,EAAO,IAAIrmC,MAAM,EAAG8E,EAAE0lB,EAAG1lB,EAAEA,EAAGA,EAAEgkC,EAAGhkC,EAAEikC,EAAGjkC,EAAEkkC,EAAGlkC,EAAEue,GAEnD,OADAgjB,EAAKI,YAAY3hC,EAAEoiB,GACZmf,EAGT,OAAO,IAAIrmC,KAAK8E,EAAEoiB,EAAGpiB,EAAE0lB,EAAG1lB,EAAEA,EAAGA,EAAEgkC,EAAGhkC,EAAEikC,EAAGjkC,EAAEkkC,EAAGlkC,EAAEue,GAGlD,SAAS4lB,GAAQnkC,GACf,GAAI,GAAKA,EAAEoiB,GAAKpiB,EAAEoiB,EAAI,IAAK,CACzB,IAAImf,EAAO,IAAIrmC,KAAKA,KAAKkpC,KAAK,EAAGpkC,EAAE0lB,EAAG1lB,EAAEA,EAAGA,EAAEgkC,EAAGhkC,EAAEikC,EAAGjkC,EAAEkkC,EAAGlkC,EAAEue,IAE5D,OADAgjB,EAAKsC,eAAe7jC,EAAEoiB,GACfmf,EAGT,OAAO,IAAIrmC,KAAKA,KAAKkpC,IAAIpkC,EAAEoiB,EAAGpiB,EAAE0lB,EAAG1lB,EAAEA,EAAGA,EAAEgkC,EAAGhkC,EAAEikC,EAAGjkC,EAAEkkC,EAAGlkC,EAAEue,IAG3D,SAAS8lB,GAAQjiB,EAAGsD,EAAG1lB,GACrB,MAAO,CACLoiB,EAAGA,EACHsD,EAAGA,EACH1lB,EAAGA,EACHgkC,EAAG,EACHC,EAAG,EACHC,EAAG,EACH3lB,EAAG,GA0WP,ICvYI,GACO+lB,GAEAC,GDoYPC,GAAO,CACT,IAAK,GACL,EAAK,IACL,EAAK,KAEHC,GAAW,UAEfC,GAAY,KACRC,GAAY,sBAEhB,SAASC,GAAI51C,EAAO6Q,EAAM29B,GACxB,IAAIF,EAAOtuC,EAAQ,EAAI,IAAM,GACzBkP,GAAUo/B,GAAQtuC,EAAQA,GAAS,GACnCe,EAASmO,EAAOnO,OACpB,OAAOutC,GAAQvtC,EAASytC,EAAQ,IAAItrC,MAAMsrC,EAAQztC,EAAS,GAAGyZ,KAAK3J,GAAQ3B,EAASA,GAGtF,SAAS2mC,GAAQhuB,GACf,OAAOA,EAAE/Y,QAAQ6mC,GAAW,QAG9B,SAASG,GAASC,GAChB,OAAO,IAAInoC,OAAO,OAASmoC,EAAM5wC,IAAI0wC,IAASr7B,KAAK,KAAO,IAAK,KAGjE,SAASw7B,GAAaD,GAKpB,IAJA,IAAI5wC,EAAM,GACN8E,GAAK,EACLiO,EAAI69B,EAAMh1C,SAELkJ,EAAIiO,GACX/S,EAAI4wC,EAAM9rC,GAAG05B,eAAiB15B,EAGhC,OAAO9E,EAGT,SAAS8wC,GAAyBjlC,EAAG9B,EAAQjF,GAC3C,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEklC,GAAKh+B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASo1C,GAAyBnlC,EAAG9B,EAAQjF,GAC3C,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEolC,GAAKl+B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASs1C,GAAsBrlC,EAAG9B,EAAQjF,GACxC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEqe,GAAKnX,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASu1C,GAAmBtlC,EAAG9B,EAAQjF,GACrC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEulC,GAAKr+B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASy1C,GAAsBxlC,EAAG9B,EAAQjF,GACxC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEylC,GAAKv+B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAAS21C,GAAc1lC,EAAG9B,EAAQjF,GAChC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEoiB,GAAKlb,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAAS41C,GAAU3lC,EAAG9B,EAAQjF,GAC5B,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEoiB,GAAKlb,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAOjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG5E,SAAS61C,GAAU5lC,EAAG9B,EAAQjF,GAC5B,IAAIiO,EAAI,+BAA+BjG,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAChE,OAAOiO,GAAKlH,EAAE6lC,EAAI3+B,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG7E,SAAS+1C,GAAa9lC,EAAG9B,EAAQjF,GAC/B,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAE8e,EAAW,EAAP5X,EAAE,GAAS,EAAGjO,EAAIiO,EAAE,GAAGnX,SAAW,EAGtD,SAASg2C,GAAiB/lC,EAAG9B,EAAQjF,GACnC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAE0lB,EAAIxe,EAAE,GAAK,EAAGjO,EAAIiO,EAAE,GAAGnX,SAAW,EAGlD,SAASi2C,GAAgBhmC,EAAG9B,EAAQjF,GAClC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEA,GAAKkH,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASk2C,GAAejmC,EAAG9B,EAAQjF,GACjC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAE0lB,EAAI,EAAG1lB,EAAEA,GAAKkH,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAGxD,SAASm2C,GAAYlmC,EAAG9B,EAAQjF,GAC9B,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEgkC,GAAK98B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASo2C,GAAanmC,EAAG9B,EAAQjF,GAC/B,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEikC,GAAK/8B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASq2C,GAAapmC,EAAG9B,EAAQjF,GAC/B,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEkkC,GAAKh9B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASs2C,GAAkBrmC,EAAG9B,EAAQjF,GACpC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEue,GAAKrX,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAASu2C,GAAkBtmC,EAAG9B,EAAQjF,GACpC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC1C,OAAOiO,GAAKlH,EAAEue,EAAIpiB,KAAK4Y,MAAM7N,EAAE,GAAK,KAAOjO,EAAIiO,EAAE,GAAGnX,SAAW,EAGjE,SAASw2C,GAAoBvmC,EAAG9B,EAAQjF,GACtC,IAAIiO,EAAIw9B,GAAUzjC,KAAK/C,EAAOjM,MAAMgH,EAAGA,EAAI,IAC3C,OAAOiO,EAAIjO,EAAIiO,EAAE,GAAGnX,QAAU,EAGhC,SAASy2C,GAAmBxmC,EAAG9B,EAAQjF,GACrC,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,IACnC,OAAOiO,GAAKlH,EAAEymC,GAAKv/B,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAAS22C,GAA0B1mC,EAAG9B,EAAQjF,GAC5C,IAAIiO,EAAIu9B,GAASxjC,KAAK/C,EAAOjM,MAAMgH,IACnC,OAAOiO,GAAKlH,EAAE6W,GAAK3P,EAAE,GAAIjO,EAAIiO,EAAE,GAAGnX,SAAW,EAG/C,SAAS42C,GAAiB3mC,EAAG6e,GAC3B,OAAO+lB,GAAI5kC,EAAEgiC,UAAWnjB,EAAG,GAG7B,SAAS+nB,GAAa5mC,EAAG6e,GACvB,OAAO+lB,GAAI5kC,EAAE4iC,WAAY/jB,EAAG,GAG9B,SAASgoB,GAAa7mC,EAAG6e,GACvB,OAAO+lB,GAAI5kC,EAAE4iC,WAAa,IAAM,GAAI/jB,EAAG,GAGzC,SAASioB,GAAgB9mC,EAAG6e,GAC1B,OAAO+lB,GAAI,EAAI,GAAQrL,MAAM,GAASv5B,GAAIA,GAAI6e,EAAG,GAGnD,SAASkoB,GAAmB/mC,EAAG6e,GAC7B,OAAO+lB,GAAI5kC,EAAEyiC,kBAAmB5jB,EAAG,GAGrC,SAASmoB,GAAmBhnC,EAAG6e,GAC7B,OAAOkoB,GAAmB/mC,EAAG6e,GAAK,MAGpC,SAASooB,GAAkBjnC,EAAG6e,GAC5B,OAAO+lB,GAAI5kC,EAAE8hC,WAAa,EAAGjjB,EAAG,GAGlC,SAASqoB,GAAclnC,EAAG6e,GACxB,OAAO+lB,GAAI5kC,EAAE2iC,aAAc9jB,EAAG,GAGhC,SAASsoB,GAAcnnC,EAAG6e,GACxB,OAAO+lB,GAAI5kC,EAAE0iC,aAAc7jB,EAAG,GAGhC,SAASuoB,GAA0BpnC,GACjC,IAAIqnC,EAAMrnC,EAAEa,SACZ,OAAe,IAARwmC,EAAY,EAAIA,EAGzB,SAASC,GAAuBtnC,EAAG6e,GACjC,OAAO+lB,GAAI,GAAWrL,MAAM,GAASv5B,GAAK,EAAGA,GAAI6e,EAAG,GAGtD,SAAS0oB,GAAKvnC,GACZ,IAAIqnC,EAAMrnC,EAAEa,SACZ,OAAOwmC,GAAO,GAAa,IAARA,EAAY,GAAarnC,GAAK,GAAa6G,KAAK7G,GAGrE,SAASwnC,GAAoBxnC,EAAG6e,GAE9B,OADA7e,EAAIunC,GAAKvnC,GACF4kC,GAAI,GAAarL,MAAM,GAASv5B,GAAIA,IAA+B,IAAzB,GAASA,GAAGa,UAAiBge,EAAG,GAGnF,SAAS4oB,GAA0BznC,GACjC,OAAOA,EAAEa,SAGX,SAAS6mC,GAAuB1nC,EAAG6e,GACjC,OAAO+lB,GAAI,GAAWrL,MAAM,GAASv5B,GAAK,EAAGA,GAAI6e,EAAG,GAGtD,SAAS,GAAW7e,EAAG6e,GACrB,OAAO+lB,GAAI5kC,EAAE4hC,cAAgB,IAAK/iB,EAAG,GAGvC,SAAS8oB,GAAc3nC,EAAG6e,GAExB,OAAO+lB,IADP5kC,EAAIunC,GAAKvnC,IACI4hC,cAAgB,IAAK/iB,EAAG,GAGvC,SAAS+oB,GAAe5nC,EAAG6e,GACzB,OAAO+lB,GAAI5kC,EAAE4hC,cAAgB,IAAO/iB,EAAG,GAGzC,SAASgpB,GAAkB7nC,EAAG6e,GAC5B,IAAIwoB,EAAMrnC,EAAEa,SAEZ,OAAO+jC,IADP5kC,EAAIqnC,GAAO,GAAa,IAARA,EAAY,GAAarnC,GAAK,GAAa6G,KAAK7G,IACnD4hC,cAAgB,IAAO/iB,EAAG,GAGzC,SAASipB,GAAW9nC,GAClB,IAAI+nC,EAAI/nC,EAAEiiC,oBACV,OAAQ8F,EAAI,EAAI,KAAOA,IAAM,EAAG,MAAQnD,GAAImD,EAAI,GAAK,EAAG,IAAK,GAAKnD,GAAImD,EAAI,GAAI,IAAK,GAGrF,SAASC,GAAoBhoC,EAAG6e,GAC9B,OAAO+lB,GAAI5kC,EAAEgjC,aAAcnkB,EAAG,GAGhC,SAASopB,GAAgBjoC,EAAG6e,GAC1B,OAAO+lB,GAAI5kC,EAAEkoC,cAAerpB,EAAG,GAGjC,SAASspB,GAAgBnoC,EAAG6e,GAC1B,OAAO+lB,GAAI5kC,EAAEkoC,cAAgB,IAAM,GAAIrpB,EAAG,GAG5C,SAASupB,GAAmBpoC,EAAG6e,GAC7B,OAAO+lB,GAAI,EAAI,GAAOrL,MAAM,GAAQv5B,GAAIA,GAAI6e,EAAG,GAGjD,SAASwpB,GAAsBroC,EAAG6e,GAChC,OAAO+lB,GAAI5kC,EAAEsoC,qBAAsBzpB,EAAG,GAGxC,SAAS0pB,GAAsBvoC,EAAG6e,GAChC,OAAOwpB,GAAsBroC,EAAG6e,GAAK,MAGvC,SAAS2pB,GAAqBxoC,EAAG6e,GAC/B,OAAO+lB,GAAI5kC,EAAEyoC,cAAgB,EAAG5pB,EAAG,GAGrC,SAAS6pB,GAAiB1oC,EAAG6e,GAC3B,OAAO+lB,GAAI5kC,EAAE2oC,gBAAiB9pB,EAAG,GAGnC,SAAS+pB,GAAiB5oC,EAAG6e,GAC3B,OAAO+lB,GAAI5kC,EAAE6iC,gBAAiBhkB,EAAG,GAGnC,SAASgqB,GAA6B7oC,GACpC,IAAI8oC,EAAM9oC,EAAEijC,YACZ,OAAe,IAAR6F,EAAY,EAAIA,EAGzB,SAASC,GAA0B/oC,EAAG6e,GACpC,OAAO+lB,GAAIzB,GAAU5J,MAAM,GAAQv5B,GAAK,EAAGA,GAAI6e,EAAG,GAGpD,SAASmqB,GAAQhpC,GACf,IAAIqnC,EAAMrnC,EAAEijC,YACZ,OAAOoE,GAAO,GAAa,IAARA,EAAY9D,GAAYvjC,GAAKujC,GAAY18B,KAAK7G,GAGnE,SAASipC,GAAuBjpC,EAAG6e,GAEjC,OADA7e,EAAIgpC,GAAQhpC,GACL4kC,GAAIrB,GAAYhK,MAAM,GAAQv5B,GAAIA,IAAiC,IAA3B,GAAQA,GAAGijC,aAAoBpkB,EAAG,GAGnF,SAASqqB,GAA6BlpC,GACpC,OAAOA,EAAEijC,YAGX,SAASkG,GAA0BnpC,EAAG6e,GACpC,OAAO+lB,GAAIxB,GAAU7J,MAAM,GAAQv5B,GAAK,EAAGA,GAAI6e,EAAG,GAGpD,SAASuqB,GAAcppC,EAAG6e,GACxB,OAAO+lB,GAAI5kC,EAAE8jC,iBAAmB,IAAKjlB,EAAG,GAG1C,SAASwqB,GAAiBrpC,EAAG6e,GAE3B,OAAO+lB,IADP5kC,EAAIgpC,GAAQhpC,IACC8jC,iBAAmB,IAAKjlB,EAAG,GAG1C,SAASyqB,GAAkBtpC,EAAG6e,GAC5B,OAAO+lB,GAAI5kC,EAAE8jC,iBAAmB,IAAOjlB,EAAG,GAG5C,SAAS0qB,GAAqBvpC,EAAG6e,GAC/B,IAAIwoB,EAAMrnC,EAAEijC,YAEZ,OAAO2B,IADP5kC,EAAIqnC,GAAO,GAAa,IAARA,EAAY9D,GAAYvjC,GAAKujC,GAAY18B,KAAK7G,IACjD8jC,iBAAmB,IAAOjlB,EAAG,GAG5C,SAAS2qB,KACP,MAAO,QAGT,SAASC,KACP,MAAO,IAGT,SAASC,GAAoB1pC,GAC3B,OAAQA,EAGV,SAAS2pC,GAA2B3pC,GAClC,OAAO7D,KAAK4Y,OAAO/U,EAAI,MCvrBV,SAAuBooB,GACpC,GDiBa,SAAsBoW,GACnC,IAAIoL,EAAkBpL,EAAOqL,SACzBC,EAActL,EAAO+C,KACrBwI,EAAcvL,EAAOwL,KACrBC,EAAiBzL,EAAO0L,QACxBC,EAAkB3L,EAAO4L,KACzBC,EAAuB7L,EAAO8L,UAC9BC,EAAgB/L,EAAOgM,OACvBC,EAAqBjM,EAAOkM,YAC5BC,EAAW7F,GAASmF,GACpBW,EAAe5F,GAAaiF,GAC5BY,EAAY/F,GAASqF,GACrBW,EAAgB9F,GAAamF,GAC7BY,EAAiBjG,GAASuF,GAC1BW,EAAqBhG,GAAaqF,GAClCY,EAAUnG,GAASyF,GACnBW,EAAclG,GAAauF,GAC3BY,EAAerG,GAAS2F,GACxBW,EAAmBpG,GAAayF,GAChCY,EAAU,CACZ,EA2PF,SAA4BrrC,GAC1B,OAAOqqC,EAAqBrqC,EAAEa,WA3P9B,EA8PF,SAAuBb,GACrB,OAAOmqC,EAAgBnqC,EAAEa,WA9PzB,EAiQF,SAA0Bb,GACxB,OAAOyqC,EAAmBzqC,EAAE8hC,aAjQ5B,EAoQF,SAAqB9hC,GACnB,OAAOuqC,EAAcvqC,EAAE8hC,aApQvB,EAAK,KACL,EAAK6E,GACL,EAAKA,GACL,EAAKK,GACL,EAAKW,GACL,EAAKE,GACL,EAAKjB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,GACL,EA2PF,SAAsBlnC,GACpB,OAAOiqC,IAAiBjqC,EAAE4iC,YAAc,MA3PxC,EA8PF,SAAuB5iC,GACrB,OAAO,KAAOA,EAAE8hC,WAAa,IA9P7B,EAAK4H,GACL,EAAKC,GACL,EAAKxC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAK,GACL,EAAKE,GACL,EAAKE,GACL,IAAK2B,IAEH6B,EAAa,CACf,EAiPF,SAA+BtrC,GAC7B,OAAOqqC,EAAqBrqC,EAAEijC,cAjP9B,EAoPF,SAA0BjjC,GACxB,OAAOmqC,EAAgBnqC,EAAEijC,cApPzB,EAuPF,SAA6BjjC,GAC3B,OAAOyqC,EAAmBzqC,EAAEyoC,gBAvP5B,EA0PF,SAAwBzoC,GACtB,OAAOuqC,EAAcvqC,EAAEyoC,gBA1PvB,EAAK,KACL,EAAKT,GACL,EAAKA,GACL,EAAKO,GACL,EAAKc,GACL,EAAKE,GACL,EAAKtB,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAKG,GACL,EAAKE,GACL,EAiPF,SAAyB1oC,GACvB,OAAOiqC,IAAiBjqC,EAAEkoC,eAAiB,MAjP3C,EAoPF,SAA0BloC,GACxB,OAAO,KAAOA,EAAEyoC,cAAgB,IApPhC,EAAKiB,GACL,EAAKC,GACL,EAAKf,GACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,IAAKC,IAEH8B,EAAS,CACX,EAuJF,SAA2BvrC,EAAG9B,EAAQjF,GACpC,IAAIiO,EAAI6jC,EAAe9pC,KAAK/C,EAAOjM,MAAMgH,IACzC,OAAOiO,GAAKlH,EAAEklC,EAAI8F,EAAmB9jC,EAAE,GAAGyrB,eAAgB15B,EAAIiO,EAAE,GAAGnX,SAAW,GAxJ9E,EA2JF,SAAsBiQ,EAAG9B,EAAQjF,GAC/B,IAAIiO,EAAI2jC,EAAU5pC,KAAK/C,EAAOjM,MAAMgH,IACpC,OAAOiO,GAAKlH,EAAEklC,EAAI4F,EAAc5jC,EAAE,GAAGyrB,eAAgB15B,EAAIiO,EAAE,GAAGnX,SAAW,GA5JzE,EA+JF,SAAyBiQ,EAAG9B,EAAQjF,GAClC,IAAIiO,EAAIikC,EAAalqC,KAAK/C,EAAOjM,MAAMgH,IACvC,OAAOiO,GAAKlH,EAAE0lB,EAAI0lB,EAAiBlkC,EAAE,GAAGyrB,eAAgB15B,EAAIiO,EAAE,GAAGnX,SAAW,GAhK5E,EAmKF,SAAoBiQ,EAAG9B,EAAQjF,GAC7B,IAAIiO,EAAI+jC,EAAQhqC,KAAK/C,EAAOjM,MAAMgH,IAClC,OAAOiO,GAAKlH,EAAE0lB,EAAIwlB,EAAYhkC,EAAE,GAAGyrB,eAAgB15B,EAAIiO,EAAE,GAAGnX,SAAW,GApKvE,EAuKF,SAA6BiQ,EAAG9B,EAAQjF,GACtC,OAAOuyC,EAAexrC,EAAG4pC,EAAiB1rC,EAAQjF,IAvKlD,EAAK+sC,GACL,EAAKA,GACL,EAAKM,GACL,EAAKX,GACL,EAAKD,GACL,EAAKQ,GACL,EAAKA,GACL,EAAKD,GACL,EAAKI,GACL,EAAKN,GACL,EAAKI,GACL,EAkIF,SAAqBnmC,EAAG9B,EAAQjF,GAC9B,IAAIiO,EAAIyjC,EAAS1pC,KAAK/C,EAAOjM,MAAMgH,IACnC,OAAOiO,GAAKlH,EAAE6e,EAAI+rB,EAAa1jC,EAAE,GAAGyrB,eAAgB15B,EAAIiO,EAAE,GAAGnX,SAAW,GAnIxE,EAAK+1C,GACL,EAAKU,GACL,EAAKE,GACL,EAAKN,GACL,EAAKjB,GACL,EAAKE,GACL,EAAKC,GACL,EAAKL,GACL,EAAKO,GACL,EAqJF,SAAyBxlC,EAAG9B,EAAQjF,GAClC,OAAOuyC,EAAexrC,EAAG8pC,EAAa5rC,EAAQjF,IArJ9C,EAwJF,SAAyB+G,EAAG9B,EAAQjF,GAClC,OAAOuyC,EAAexrC,EAAG+pC,EAAa7rC,EAAQjF,IAxJ9C,EAAK0sC,GACL,EAAKD,GACL,EAAKE,GACL,IAAKW,IAUP,SAASlH,EAAUlC,EAAWkO,GAC5B,OAAO,SAAU9J,GACf,IAIIra,EACA0d,EACAnS,EANAv0B,EAAS,GACTjF,GAAK,EACL6Y,EAAI,EACJ5K,EAAIi2B,EAAUptC,OAMlB,IAFMwxC,aAAgBrmC,OAAOqmC,EAAO,IAAIrmC,MAAMqmC,MAErCtoC,EAAIiO,GACqB,KAA5Bi2B,EAAUh7B,WAAWlJ,KACvBiF,EAAOjO,KAAKktC,EAAUlrC,MAAM6f,EAAG7Y,IACgB,OAA1C2rC,EAAMJ,GAAKtd,EAAIiW,EAAUl2B,SAAShO,KAAciuB,EAAIiW,EAAUl2B,SAAShO,GAAQ2rC,EAAY,MAAN1d,EAAY,IAAM,KACxGuL,EAAS4Y,EAAQnkB,MAAIA,EAAIuL,EAAO8O,EAAMqD,IAC1C1mC,EAAOjO,KAAKi3B,GACZpV,EAAI7Y,EAAI,GAKZ,OADAiF,EAAOjO,KAAKktC,EAAUlrC,MAAM6f,EAAG7Y,IACxBiF,EAAOsL,KAAK,KAIvB,SAASiiC,EAAStO,EAAW0I,GAC3B,OAAO,SAAU3nC,GACf,IAEIwtC,EACArE,EAHArnC,EAAIqkC,GAAQ,UAAMzsC,EAAW,GAIjC,GAHQ4zC,EAAexrC,EAAGm9B,EAAWj/B,GAAU,GAAI,IAG1CA,EAAOnO,OAAQ,OAAO,KAE/B,GAAI,MAAOiQ,EAAG,OAAO,IAAI9E,KAAK8E,EAAEymC,GAChC,GAAI,MAAOzmC,EAAG,OAAO,IAAI9E,KAAW,IAAN8E,EAAE6W,GAAY,MAAO7W,EAAIA,EAAEue,EAAI,IAQ7D,GANIsnB,KAAO,MAAO7lC,KAAIA,EAAE6lC,EAAI,GAExB,MAAO7lC,IAAGA,EAAEgkC,EAAIhkC,EAAEgkC,EAAI,GAAW,GAANhkC,EAAE6e,QAErBjnB,IAARoI,EAAE0lB,IAAiB1lB,EAAE0lB,EAAI,MAAO1lB,EAAIA,EAAE8e,EAAI,GAE1C,MAAO9e,EAAG,CACZ,GAAIA,EAAEulC,EAAI,GAAKvlC,EAAEulC,EAAI,GAAI,OAAO,KAC1B,MAAOvlC,IAAIA,EAAEklC,EAAI,GAEnB,MAAOllC,GAC2BqnC,GAApCqE,EAAOvH,GAAQE,GAAQrkC,EAAEoiB,EAAG,EAAG,KAAgB6gB,YAC/CyI,EAAOrE,EAAM,GAAa,IAARA,EAAYjE,GAAUv8B,KAAK6kC,GAAQtI,GAAUsI,GAC/DA,EAAO,GAAOxrC,OAAOwrC,EAAkB,GAAX1rC,EAAEulC,EAAI,IAClCvlC,EAAEoiB,EAAIspB,EAAK5H,iBACX9jC,EAAE0lB,EAAIgmB,EAAKjD,cACXzoC,EAAEA,EAAI0rC,EAAK1I,cAAgBhjC,EAAEklC,EAAI,GAAK,IAEAmC,GAAtCqE,EAAO3H,GAAUM,GAAQrkC,EAAEoiB,EAAG,EAAG,KAAgBvhB,SACjD6qC,EAAOrE,EAAM,GAAa,IAARA,EAAY,GAAWxgC,KAAK6kC,GAAQ,GAAWA,GACjEA,EAAO,GAAQxrC,OAAOwrC,EAAkB,GAAX1rC,EAAEulC,EAAI,IACnCvlC,EAAEoiB,EAAIspB,EAAK9J,cACX5hC,EAAE0lB,EAAIgmB,EAAK5J,WACX9hC,EAAEA,EAAI0rC,EAAK1J,WAAahiC,EAAEklC,EAAI,GAAK,QAE5B,MAAOllC,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAEklC,EAAI,MAAOllC,EAAIA,EAAEolC,EAAI,EAAI,MAAOplC,EAAI,EAAI,GAC3DqnC,EAAM,MAAOrnC,EAAImkC,GAAQE,GAAQrkC,EAAEoiB,EAAG,EAAG,IAAI6gB,YAAcc,GAAUM,GAAQrkC,EAAEoiB,EAAG,EAAG,IAAIvhB,SACzFb,EAAE0lB,EAAI,EACN1lB,EAAEA,EAAI,MAAOA,GAAKA,EAAEklC,EAAI,GAAK,EAAU,EAANllC,EAAEylC,GAAS4B,EAAM,GAAK,EAAIrnC,EAAEklC,EAAU,EAANllC,EAAEqe,GAASgpB,EAAM,GAAK,GAKzF,MAAI,MAAOrnC,GACTA,EAAEgkC,GAAKhkC,EAAE6lC,EAAI,IAAM,EACnB7lC,EAAEikC,GAAKjkC,EAAE6lC,EAAI,IACN1B,GAAQnkC,IAIV+jC,GAAU/jC,IAIrB,SAASwrC,EAAexrC,EAAGm9B,EAAWj/B,EAAQ4T,GAO5C,IANA,IAGIoV,EACAykB,EAJA1yC,EAAI,EACJiO,EAAIi2B,EAAUptC,OACd21B,EAAIxnB,EAAOnO,OAIRkJ,EAAIiO,GAAG,CACZ,GAAI4K,GAAK4T,EAAG,OAAQ,EAGpB,GAAU,MAFVwB,EAAIiW,EAAUh7B,WAAWlJ,OAKvB,GAFAiuB,EAAIiW,EAAUl2B,OAAOhO,OACrB0yC,EAAQJ,EAAOrkB,KAAKsd,GAAOrH,EAAUl2B,OAAOhO,KAAOiuB,MACpCpV,EAAI65B,EAAM3rC,EAAG9B,EAAQ4T,IAAM,EAAG,OAAQ,OAChD,GAAIoV,GAAKhpB,EAAOiE,WAAW2P,KAChC,OAAQ,EAIZ,OAAOA,EAwFT,OArMAu5B,EAAQ7yC,EAAI6mC,EAAUyK,EAAauB,GACnCA,EAAQO,EAAIvM,EAAU0K,EAAasB,GACnCA,EAAQnkB,EAAImY,EAAUuK,EAAiByB,GACvCC,EAAW9yC,EAAI6mC,EAAUyK,EAAawB,GACtCA,EAAWM,EAAIvM,EAAU0K,EAAauB,GACtCA,EAAWpkB,EAAImY,EAAUuK,EAAiB0B,GAgMnC,CACL7Y,OAAQ,SAAgB0K,GACtB,IAAI7E,EAAI+G,EAAUlC,GAAa,GAAIkO,GAMnC,OAJA/S,EAAEhnC,SAAW,WACX,OAAO6rC,GAGF7E,GAETqT,MAAO,SAAexO,GACpB,IAAIte,EAAI4sB,EAAStO,GAAa,IAAI,GAMlC,OAJAte,EAAEvtB,SAAW,WACX,OAAO6rC,GAGFte,GAET0lB,UAAW,SAAmBpH,GAC5B,IAAI7E,EAAI+G,EAAUlC,GAAa,GAAImO,GAMnC,OAJAhT,EAAEhnC,SAAW,WACX,OAAO6rC,GAGF7E,GAETuT,SAAU,SAAkB1O,GAC1B,IAAIte,EAAI4sB,EAAStO,GAAa,IAAI,GAMlC,OAJAte,EAAEvtB,SAAW,WACX,OAAO6rC,GAGFte,ICnXFitB,CAAa1jB,GACtBkc,GAAa,GAAO7R,OACR,GAAOkZ,MACnBpH,GAAY,GAAOA,UACR,GAAOsH,SAfpB,CAAc,CACZhC,SAAU,SACVtI,KAAM,aACNyI,KAAM,eACNE,QAAS,CAAC,KAAM,MAChBE,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEE,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDE,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvHE,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SCC7F,SAAS,GAAKhW,GACZ,OAAO,IAAIx5B,KAAKw5B,GAGlB,SAAS,GAAOA,GACd,OAAOA,aAAax5B,MAAQw5B,GAAK,IAAIx5B,MAAMw5B,GAGtC,SAASqX,GAASC,EAAMC,EAAOP,EAAMrE,EAAK6E,EAAMC,EAAQC,EAAQC,EAAa5Z,GAClF,IAAIkJ,EAAQa,GAAW,GAAe,IAClCM,EAASnB,EAAMmB,OACfrB,EAASE,EAAMF,OACf6Q,EAAoB7Z,EAAO,OAC3B8Z,EAAe9Z,EAAO,OACtB+Z,EAAe/Z,EAAO,SACtBga,EAAaha,EAAO,SACpBia,EAAYja,EAAO,SACnBka,EAAala,EAAO,SACpBma,EAAcna,EAAO,MACrBoa,EAAapa,EAAO,MACpBqa,EAAgB,CAAC,CAACV,EAAQ,EA5BX,KA4B+B,CAACA,EAAQ,EAAG,KAAqB,CAACA,EAAQ,GAAI,MAAsB,CAACA,EAAQ,GAAI,KAAsB,CAACD,EAAQ,EA3B/I,KA2BmK,CAACA,EAAQ,EAAG,KAAqB,CAACA,EAAQ,GAAI,KAAsB,CAACA,EAAQ,GAAI,MAAsB,CAACD,EAAM,EA1BnR,MA0BqS,CAACA,EAAM,EAAG,OAAmB,CAACA,EAAM,EAAG,OAAmB,CAACA,EAAM,GAAI,OAAoB,CAAC7E,EAAK,EAzBrY,OAyBsZ,CAACA,EAAK,EAAG,QAAkB,CAACqE,EAAM,EAxBvb,QAwByc,CAACO,EAAO,EAvBhd,QAuBme,CAACA,EAAO,EAAG,QAAoB,CAACD,EAAM,EAtB1gB,UAwBjB,SAAS1L,EAAWiB,GAClB,OAAQ6K,EAAO7K,GAAQA,EAAO+K,EAAoBH,EAAO5K,GAAQA,EAAOgL,EAAeL,EAAK3K,GAAQA,EAAOiL,EAAenF,EAAI9F,GAAQA,EAAOkL,EAAaR,EAAM1K,GAAQA,EAAOmK,EAAKnK,GAAQA,EAAOmL,EAAYC,EAAaX,EAAKzK,GAAQA,EAAOqL,EAAcC,GAAYtL,GAG5Q,SAASwL,EAAavM,EAAUz8B,EAAOk1B,EAAMh1B,GAK3C,GAJgB,MAAZu8B,IAAkBA,EAAW,IAIT,iBAAbA,EAAuB,CAChC,IAAIlrC,EAAS6G,KAAKkS,IAAI4qB,EAAOl1B,GAASy8B,EAClCvnC,EAAI4/B,IAAS,SAAU5/B,GACzB,OAAOA,EAAE,MACRymB,MAAMotB,EAAex3C,GAEpB2D,IAAM6zC,EAAc/8C,QACtBkU,EAAO41B,GAAS91B,EAxCL,QAwC2Bk1B,EAxC3B,QAwCgDuH,GAC3DA,EAAWwL,GACF/yC,GAETgL,GADAhL,EAAI6zC,EAAcx3C,EAASw3C,EAAc7zC,EAAI,GAAG,GAAK6zC,EAAc7zC,GAAG,GAAK3D,EAAS2D,EAAI,EAAIA,IACnF,GACTunC,EAAWvnC,EAAE,KAEbgL,EAAO9H,KAAK4K,IAAI8yB,GAAS91B,EAAOk1B,EAAMuH,GAAW,GACjDA,EAAW6L,GAIf,OAAe,MAARpoC,EAAeu8B,EAAWA,EAASgB,MAAMv9B,GAqClD,OAlCA03B,EAAMmB,OAAS,SAAU1a,GACvB,OAAO,IAAIlnB,KAAK4hC,EAAO1a,KAGzBuZ,EAAMF,OAAS,SAAUnjC,GACvB,OAAO9I,UAAUO,OAAS0rC,EAAO,GAAIhsC,KAAK6I,EAAG,KAAWmjC,IAAStnC,IAAI,KAGvEwnC,EAAMrC,MAAQ,SAAUkH,EAAUv8B,GAChC,IAIIywB,EAJA10B,EAAIy7B,IACJ7a,EAAK5gB,EAAE,GACP6gB,EAAK7gB,EAAEA,EAAEjQ,OAAS,GAClB0wB,EAAII,EAAKD,EAMb,OAJIH,IAAGiU,EAAI9T,EAAIA,EAAKC,EAAIA,EAAK6T,GAE7BA,GADAA,EAAIqY,EAAavM,EAAU5f,EAAIC,EAAI5c,IAC3BywB,EAAE1sB,MAAM4Y,EAAIC,EAAK,GAAK,GAEvBJ,EAAIiU,EAAE2E,UAAY3E,GAG3BiH,EAAM2E,WAAa,SAAU/G,EAAO4D,GAClC,OAAoB,MAAbA,EAAoBmD,EAAa7N,EAAO0K,IAGjDxB,EAAM4E,KAAO,SAAUC,EAAUv8B,GAC/B,IAAIjE,EAAIy7B,IACR,OAAQ+E,EAAWuM,EAAavM,EAAUxgC,EAAE,GAAIA,EAAEA,EAAEjQ,OAAS,GAAIkU,IAASw3B,EAAO8E,GAAKvgC,EAAGwgC,IAAa7E,GAGxGA,EAAMjuB,KAAO,WACX,OAAOA,GAAKiuB,EAAOoQ,GAASC,EAAMC,EAAOP,EAAMrE,EAAK6E,EAAMC,EAAQC,EAAQC,EAAa5Z,KAGlFkJ,EAEM,ICvGXqR,GAAW,IAAS,SAAUzL,GAChCA,EAAKwB,WAAW,GAChBxB,EAAK2B,YAAY,EAAG,EAAG,EAAG,MACzB,SAAU3B,EAAMt9B,GACjBs9B,EAAKqC,YAAYrC,EAAKkH,cAAgBxkC,MACrC,SAAUF,EAAOC,GAClB,OAAOA,EAAIykC,cAAgB1kC,EAAM0kC,cAAkE,IAAjDzkC,EAAI8/B,iBAAmB//B,EAAM+/B,qBAC9E,SAAUvC,GACX,OAAOA,EAAKkH,iBAEC,MCTXwE,IDUmBD,GAAShlC,MCVlB,IAAS,SAAUu5B,GAC/BA,EAAK2L,cAAc,EAAG,EAAG,MACxB,SAAU3L,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EbHU,KaGHt9B,MACpB,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GbLU,QaMvB,SAAUw9B,GACX,OAAOA,EAAK2G,kBAEC,MCTXiF,IDUkBF,GAAQjlC,MCVd,IAAS,SAAUu5B,GACjCA,EAAK6L,cAAc,EAAG,MACrB,SAAU7L,EAAMt9B,GACjBs9B,EAAKhM,SAASgM,EdJY,IcILt9B,MACpB,SAAUF,EAAOC,GAClB,OAAQA,EAAMD,GdNY,OcOzB,SAAUw9B,GACX,OAAOA,EAAKoH,oBAEC,MCXA,IDYSwE,GAAUnlC,MCZnB,YACb,OAAO6O,EAAExY,MAAM,SAASlK,KAAI,SAAUqE,GACpC,MAAO,IAAMA,OCFN60C,ICCI,GAAO,gECAP,GAAO,4HCAP,GAAO,4HCAP,GAAO,4HJDDlxC,KAAKmxC,GAAK,KACpBC,GAAU,IAAMpxC,KAAKmxC,GKE5BE,IAAK,OAELlvB,IAAK,OAELsiB,GAAI,QACJ6M,IAFI,OAEC7M,GACL8M,GALI,QAKC9M,GACL+M,IAAQ,kBAEZ,SAASC,GAAiBt7C,GACxB,GAAIA,aAAau7C,GAAW,OAAO,IAAIA,GAAUv7C,EAAEihC,EAAGjhC,EAAEukB,EAAGvkB,EAAEqW,EAAGrW,EAAE6gC,SAC5D7gC,aAAaugC,KAAMvgC,EAAI4gC,GAAW5gC,IACxC,IAAImuB,EAAInuB,EAAEmuB,EAAI,IACVwS,EAAI3gC,EAAE2gC,EAAI,IACVpgC,EAAIP,EAAEO,EAAI,IACV8V,GAAKglC,GAAQ96C,EAAI46C,GAAKhtB,EAAIitB,GAAKza,IAAM0a,GAAQF,GAAKC,IAClDI,EAAKj7C,EAAI8V,EACTsF,GAAK2yB,IAAK3N,EAAItqB,GAAK2V,GAAIwvB,IAdrB,OAeFj3B,EAAI1a,KAAKinB,KAAKnV,EAAIA,EAAI6/B,EAAKA,IAAOlN,GAAIj4B,GAAK,EAAIA,IAEnD4qB,EAAI1c,EAAI1a,KAAK2lB,MAAM7T,EAAG6/B,GAAMP,GAAU,IAAMva,IAC5C,OAAO,IAAI6a,GAAUta,EAAI,EAAIA,EAAI,IAAMA,EAAG1c,EAAGlO,EAAGrW,EAAE6gC,SAGrC,SAAS,GAAUI,EAAG1c,EAAGlO,EAAGwqB,GACzC,OAA4B,IAArB3jC,UAAUO,OAAe69C,GAAiBra,GAAK,IAAIsa,GAAUta,EAAG1c,EAAGlO,EAAc,MAAXwqB,EAAkB,EAAIA,GAE9F,SAAS0a,GAAUta,EAAG1c,EAAGlO,EAAGwqB,GACjC5kC,KAAKglC,GAAKA,EACVhlC,KAAKsoB,GAAKA,EACVtoB,KAAKoa,GAAKA,EACVpa,KAAK4kC,SAAWA,EC/BlB,SAAS,GAAU4a,GACjB,OAAO,SAASC,EAAe5rB,GAG7B,SAAS6rB,EAAUlqC,EAAOC,GACxB,IAAIuvB,EAAIwa,GAAKhqC,EAAQ,GAAeA,IAAQwvB,GAAIvvB,EAAM,GAAeA,IAAMuvB,GACvE1c,EAAI,GAAM9S,EAAM8S,EAAG7S,EAAI6S,GACvBlO,EAAI,GAAM5E,EAAM4E,EAAG3E,EAAI2E,GACvBwqB,EAAU,GAAMpvB,EAAMovB,QAASnvB,EAAImvB,SACvC,OAAO,SAAUuB,GAKf,OAJA3wB,EAAMwvB,EAAIA,EAAEmB,GACZ3wB,EAAM8S,EAAIA,EAAE6d,GACZ3wB,EAAM4E,EAAIA,EAAExM,KAAKo4B,IAAIG,EAAGtS,IACxBre,EAAMovB,QAAUA,EAAQuB,GACjB3wB,EAAQ,IAKnB,OAjBAqe,GAAKA,EAgBL6rB,EAAUtZ,MAAQqZ,EACXC,EAlBF,CAmBL,GDaJ52C,GAAOw2C,GAAW,GAAW1lB,GAAOE,GAAO,CACzCiM,SAAU,SAAkBrmB,GAE1B,OADAA,EAAS,MAALA,E/EjCQ,EAHF,G+EoCkB9R,KAAKo4B,I/EjCrB,EAHF,G+EoCsCtmB,GACzC,IAAI4/B,GAAUt/C,KAAKglC,EAAGhlC,KAAKsoB,EAAGtoB,KAAKoa,EAAIsF,EAAG1f,KAAK4kC,UAExDqB,OAAQ,SAAgBvmB,GAEtB,OADAA,EAAS,MAALA,E/ExCM,G+EwCgB9R,KAAKo4B,I/ExCrB,G+EwCkCtmB,GACrC,IAAI4/B,GAAUt/C,KAAKglC,EAAGhlC,KAAKsoB,EAAGtoB,KAAKoa,EAAIsF,EAAG1f,KAAK4kC,UAExDd,IAAK,WACH,IAAIkB,EAAIt3B,MAAM1N,KAAKglC,GAAK,GAAKhlC,KAAKglC,EAAI,KAAO8Z,GACzC1kC,GAAKpa,KAAKoa,EACV/V,EAAIqJ,MAAM1N,KAAKsoB,GAAK,EAAItoB,KAAKsoB,EAAIlO,GAAK,EAAIA,GAC1CulC,EAAO/xC,KAAKgyC,IAAI5a,GAChB6a,EAAOjyC,KAAKkyC,IAAI9a,GACpB,OAAO,IAAIV,GAAI,KAAOlqB,EAAI/V,GAAK46C,GAAIU,EA/C/B,QA+C0CE,IAAQ,KAAOzlC,EAAI/V,GAAK0rB,GAAI4vB,GA7CtE,OA6CiFE,IAAQ,KAAOzlC,EAAI/V,GAAKguC,GAAIsN,IAAQ3/C,KAAK4kC,aCzBnH,I7EZR,SAAavgC,EAAGC,GACrB,IAAImN,EAAInN,EAAID,EACZ,OAAOoN,EAAIy0B,GAAO7hC,EAAGoN,EAAI,KAAOA,GAAK,IAAMA,EAAI,IAAM7D,KAAK6rB,MAAMhoB,EAAI,KAAOA,GAAK,GAAS/D,MAAMrJ,GAAKC,EAAID,M6EU3F,IACJ07C,GAAgB,GAAU,ICzBtB,GAAyB,GAAU,IAAK,GAAK,GAAM,IAAW,IAAK,GAAK,ICArE,GAAyB,IAAW,IAAK,IAAM,KAAO,GAAU,GAAI,IAAM,KAC1E,GAAyB,GAAU,IAAK,IAAM,KAAO,GAAU,GAAI,IAAM,KAC7E,KCFd,SAASC,GAAKvmC,GACZ,IAAId,EAAIc,EAAMjY,OACd,OAAO,SAAU2kC,GACf,OAAO1sB,EAAM7L,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAIpsB,EAAI,EAAG/K,KAAK4Y,MAAM2f,EAAIxtB,OAI7CqnC,GAAK,GAAO,qgDACRA,GAAK,GAAO,qgDACVA,GAAK,GAAO,qgDACbA,GAAK,GAAO,qgD,iBC4CzB,SAASC,GAAuBx/C,GACrC,MAAiD,kBAA1CG,OAAOC,UAAUkC,SAAS7B,KAAKT,GAA6BA,EAAMy/C,eAAiBz/C,ECvD5F,IAoDI0/C,GApDA,GAAWv/C,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGLwjB,GA2BK,SAAUV,EAAKnf,GACpB,GAAI/G,MAAM8E,QAAQohB,GAChB,OAAOA,EACF,GAAI/kB,OAAOwH,YAAY1L,OAAOipB,GACnC,OA9BJ,SAAuBA,EAAKnf,GAC1B,IAAIof,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAK5gB,EAET,IACE,IAAK,IAAiC6gB,EAA7BC,EAAKN,EAAI/kB,OAAOwH,cAAmByd,GAAMG,EAAKC,EAAGhB,QAAQiB,QAChEN,EAAKpoB,KAAKwoB,EAAGzpB,QAETiK,GAAKof,EAAKtoB,SAAWkJ,GAH8Cqf,GAAK,IAK9E,MAAOM,GACPL,GAAK,EACLC,EAAKI,EACL,QACA,KACON,GAAMI,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,EAOEQ,CAAcT,EAAKnf,GAE1B,MAAM,IAAItD,UAAU,yDAO1B,SAASg5C,GAAmBv2B,GAC1B,GAAIlmB,MAAM8E,QAAQohB,GAAM,CACtB,IAAK,IAAInf,EAAI,EAAG21C,EAAO18C,MAAMkmB,EAAIroB,QAASkJ,EAAImf,EAAIroB,OAAQkJ,IACxD21C,EAAK31C,GAAKmf,EAAInf,GAGhB,OAAO21C,EAEP,OAAO18C,MAAM28C,KAAKz2B,GAItB,SAAS02B,GAAgBz+C,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAmCT,IAmDI0+C,IAA0CD,GAAvBJ,GAAmB,GAnDlB,SAmD2E,IAAcI,GAAgBJ,GA5CxG,WC/BlB,WACL,OAdF,SAASM,EAASrT,GAChB,IAAIjuB,EAAOiuB,EAAMjuB,KASjB,OARAiuB,EAAMqE,QAAUrE,EAAMsT,oBACftT,EAAMuT,oBACNvT,EAAMsT,aAEbtT,EAAMjuB,KAAO,WACX,OAAOshC,EAASthC,MAGXiuB,EAIAqT,CA1FM,SAASG,IACtB,IAIIlrC,EACAmrC,EALAzT,EAAQH,KAAUE,aAAQ9jC,GAC1B6jC,EAASE,EAAMF,OACf4T,EAAe1T,EAAM3zB,MACrBA,EAAQ,CAAC,EAAG,GAGZggB,GAAQ,EACRknB,EAAe,EACfD,EAAe,EACf5R,EAAQ,GAGZ,SAAST,IACP,IAAI11B,EAAIu0B,IAAS1rC,OACbspC,EAAUrxB,EAAM,GAAKA,EAAM,GAC3BjE,EAAQiE,EAAMqxB,EAAU,GACxBJ,EAAOjxB,EAAM,EAAIqxB,GACrBp1B,GAAQg1B,EAAOl1B,GAAS5H,KAAK4K,IAAI,EAAGG,EAAIgoC,EAA8B,EAAfD,GACnDjnB,IAAO/jB,EAAO9H,KAAK4Y,MAAM9Q,IAC7BF,IAAUk1B,EAAOl1B,EAAQE,GAAQiD,EAAIgoC,IAAiB7R,EACtD+R,EAAYnrC,GAAQ,EAAIirC,GACpBlnB,IAAOjkB,EAAQ5H,KAAK6rB,MAAMjkB,GAAQqrC,EAAYjzC,KAAK6rB,MAAMonB,IAC7D,IAAIv9C,EAAS,GAASqV,GAAG/S,KAAI,SAAU8E,GACrC,OAAO8K,EAAQE,EAAOhL,KAExB,OAAOo2C,EAAahW,EAAUxnC,EAAOwnC,UAAYxnC,GA+CnD,cA9DO8pC,EAAMD,QAkBbC,EAAMF,OAAS,SAAUnjC,GACvB,OAAO9I,UAAUO,QAAU0rC,EAAOnjC,GAAIskC,KAAanB,KAGrDE,EAAM3zB,MAAQ,SAAU1P,GACtB,OAAO9I,UAAUO,QAAUiY,EAAQ,EAAE1P,EAAE,IAAKA,EAAE,IAAKskC,KAAa50B,EAAM/V,SAGxE0pC,EAAMqB,WAAa,SAAU1kC,GAC3B,OAAO0P,EAAQ,EAAE1P,EAAE,IAAKA,EAAE,IAAK0vB,GAAQ,EAAM4U,KAG/CjB,EAAMyT,UAAY,WAChB,OAAOA,GAGTzT,EAAM13B,KAAO,WACX,OAAOA,GAGT03B,EAAM3T,MAAQ,SAAU1vB,GACtB,OAAO9I,UAAUO,QAAUi4B,IAAU1vB,EAAGskC,KAAa5U,GAGvD2T,EAAMqE,QAAU,SAAU1nC,GACxB,OAAO9I,UAAUO,QAAUm/C,EAAeD,EAAe9yC,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAGh7B,IAAKskC,KAAasS,GAGrGvT,EAAMuT,aAAe,SAAU52C,GAC7B,OAAO9I,UAAUO,QAAUm/C,EAAe/yC,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAGh7B,IAAKskC,KAAasS,GAGtFvT,EAAMsT,aAAe,SAAU32C,GAC7B,OAAO9I,UAAUO,QAAUk/C,EAAe9yC,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAGh7B,IAAKskC,KAAaqS,GAGtFtT,EAAM0B,MAAQ,SAAU/kC,GACtB,OAAO9I,UAAUO,QAAUstC,EAAQlhC,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAGh7B,IAAKskC,KAAaS,GAG/E1B,EAAMjuB,KAAO,WACX,OAAOyhC,IAAO1T,OAAOA,KAAUzzB,MAAMA,GAAOggB,MAAMA,GAAOknB,aAAaA,GAAcD,aAAaA,GAAc5R,MAAMA,IAGhHT,IAiBSuS,GAAOD,aAAa,OD0E8IJ,GAAgBJ,GArC1K,WAqCiN,IAAeI,GAAgBJ,GA5BjP,UA4BuRY,IAAeR,GAAgBJ,GArB1T,OjCvGN,SAAShV,IACtB,IAAIiC,EAAQa,GAAW,GAAe,IAAef,OAAO,CAAC,EAAG,KAC5DA,EAASE,EAAMF,OACfkF,EAAO,GACP4O,EAAOzO,GAAK,IACZ0O,EAAO9O,GAAK,IAEhB,SAAS9D,IAGP,OAFA2S,EAAOzO,GAAKH,GAAO6O,EAAO9O,GAAKC,GAC3BlF,IAAS,GAAK,IAAG8T,EAAOtO,GAAQsO,GAAOC,EAAOvO,GAAQuO,IACnD7T,EA8ET,OA3EAA,EAAMgF,KAAO,SAAUroC,GACrB,OAAO9I,UAAUO,QAAU4wC,GAAQroC,EAAGskC,KAAa+D,GAGrDhF,EAAMF,OAAS,SAAUnjC,GACvB,OAAO9I,UAAUO,QAAU0rC,EAAOnjC,GAAIskC,KAAanB,KAGrDE,EAAMrC,MAAQ,SAAUC,GACtB,IAGI9Y,EAHAzgB,EAAIy7B,IACJ2J,EAAIplC,EAAE,GACN+N,EAAI/N,EAAEA,EAAEjQ,OAAS,IAEjB0wB,EAAI1S,EAAIq3B,KAAGnsC,EAAImsC,EAAGA,EAAIr3B,EAAGA,EAAI9U,GACjC,IAEI4lB,EACA5Q,EACAymB,EAJAz7B,EAAIs2C,EAAKnK,GACTtzB,EAAIy9B,EAAKxhC,GAIT7G,EAAa,MAATqyB,EAAgB,IAAMA,EAC1BwO,EAAI,GAER,KAAMpH,EAAO,IAAM7uB,EAAI7Y,EAAIiO,GAEzB,GADAjO,EAAIkD,KAAK6rB,MAAM/uB,GAAK,EAAG6Y,EAAI3V,KAAK6rB,MAAMlW,GAAK,EACvCszB,EAAI,GAAG,KAAOnsC,EAAI6Y,IAAK7Y,EACzB,IAAKgV,EAAI,EAAG4Q,EAAI2wB,EAAKv2C,GAAIgV,EAAI0yB,IAAQ1yB,EAEnC,MADAymB,EAAI7V,EAAI5Q,GACAm3B,GAAR,CACA,GAAI1Q,EAAI3mB,EAAG,MACXg6B,EAAE93C,KAAKykC,SAEJ,KAAOz7B,EAAI6Y,IAAK7Y,EACrB,IAAKgV,EAAI0yB,EAAO,EAAG9hB,EAAI2wB,EAAKv2C,GAAIgV,GAAK,IAAKA,EAExC,MADAymB,EAAI7V,EAAI5Q,GACAm3B,GAAR,CACA,GAAI1Q,EAAI3mB,EAAG,MACXg6B,EAAE93C,KAAKykC,SAIXqT,EAAI,GAAM9uC,EAAG6Y,EAAG3V,KAAKm3B,IAAIxhB,EAAI7Y,EAAGiO,IAAI/S,IAAIq7C,GAG1C,OAAO/uB,EAAIsnB,EAAE1O,UAAY0O,GAG3BpM,EAAM2E,WAAa,SAAU/G,EAAO4D,GAGlC,GAFiB,MAAbA,IAAmBA,EAAqB,KAATwD,EAAc,MAAQ,KAChC,mBAAdxD,IAA0BA,EAAY,GAAOA,IACpD5D,IAAUvU,IAAU,OAAOmY,EAClB,MAAT5D,IAAeA,EAAQ,IAC3B,IAAItrB,EAAI9R,KAAK4K,IAAI,EAAG45B,EAAOpH,EAAQoC,EAAMrC,QAAQvpC,QAEjD,OAAO,SAAUiQ,GACf,IAAI/G,EAAI+G,EAAIwvC,EAAKrzC,KAAK6rB,MAAMunB,EAAKvvC,KAEjC,OADI/G,EAAI0nC,EAAOA,EAAO,KAAK1nC,GAAK0nC,GACzB1nC,GAAKgV,EAAIkvB,EAAUn9B,GAAK,KAInC27B,EAAM4E,KAAO,WACX,OAAO9E,EAAO8E,GAAK9E,IAAU,CAC3B1mB,MAAO,SAAevc,GACpB,OAAOg3C,EAAKrzC,KAAK4Y,MAAMw6B,EAAK/2C,MAE9BqO,KAAM,SAAcrO,GAClB,OAAOg3C,EAAKrzC,KAAK0K,KAAK0oC,EAAK/2C,UAKjCmjC,EAAMjuB,KAAO,WACX,OAAOA,GAAKiuB,EAAOjC,IAAMiH,KAAKA,KAGzBhF,KiCoCmXmT,GAAgBJ,GAdtX,QhBhDP,WACb,OAAO3C,GAAS,GAAU,GAAW,GAAU,GAAS,GAAU,GAAY,GAAY,GAAiBzH,IAAY7I,OAAO,CAAC,IAAIvgC,KAAK,IAAM,EAAG,GAAI,IAAIA,KAAK,IAAM,EAAG,QgB6DkR4zC,GAAgBJ,GAPjb,YE5JX,WACb,OAAO3C,GAAS,GAAS,GAAU,GAAS,GAAQ,GAAS,GAAW,GAAW,GAAgBxH,IAAW9I,OAAO,CAACvgC,KAAKkpC,IAAI,IAAM,EAAG,GAAIlpC,KAAKkpC,IAAI,IAAM,EAAG,QFkK6VsK,IAOzfe,GAAc,CAAC,QAAS,OAAQ,UAAW,UAO/C,SAASC,GAAYn+C,GACnB,MAAO,GAAKA,EAAI,GAAG6sC,cAAgB7sC,EAAIU,MAAM,GAqFxC,SAAS09C,GAA0BC,GACxC,IAAKA,EACH,OAAO,KAGT,IAAIv2C,EAAOu2C,EAAYv2C,KACnBoiC,EAASmU,EAAYnU,OACrBzzB,EAAQ4nC,EAAY5nC,MACpB6nC,EAAYpU,EAAO,KAAOA,EAAO,GAAmB,IAAdA,EAAO,GAAW,EAAE,EAAG,GAAK,EAAEA,EAAO,GAAIA,EAAO,IAAMA,EAEhG,GA1IuB,YA0InBpiC,EACF,OAAOi2C,GAAatnC,EAAM,IAG5B,IAAI2zB,EAAQoT,GAAgB11C,KAAQoiC,OAAOoU,GAAW7nC,MAAMA,GAO5D,MArKuB,YAgKnB3O,IACFsiC,EAAMqE,QAAQ,IAvDlB,SAA+CrE,GACzCA,EAAMmB,SAIVnB,EAAMmB,OAAS,SAAgB9tC,GAC7B,IAAI8gD,EAAenU,EAAM3zB,QACrB+nC,EAAgBj3B,GAAeg3B,EAAc,GAC7CE,EAAQD,EAAc,GACtBE,EAAQF,EAAc,GAEtBhsC,EAAQ5H,KAAKm3B,IAAI0c,EAAOC,GACxBhX,EAAO98B,KAAK4K,IAAIipC,EAAOC,GAE3B,GAAIjhD,EAAQ+U,EAAQ43B,EAAMqE,UAAYrE,EAAM13B,OAC1C,OAAO03B,EAAMF,SAAS,GAGxB,GAAIzsC,EAAQiqC,EAAO0C,EAAMqE,UAAYrE,EAAM13B,OACzC,OAAO03B,EAAMF,SAASE,EAAMF,SAAS1rC,OAAS,GAGhD,IAAI+B,EAAQqK,KAAK4Y,OAAO/lB,EAAQ+U,EAAQ43B,EAAMqE,UAAYrE,EAAM13B,QAAU03B,EAAM13B,QAChF,OAAO03B,EAAMF,SAAS3pC,KAiCtBo+C,CAAsCvU,IAGjCA,EAYF,SAASwU,GAAoBC,EAASC,EAAUC,EAAWj3C,GAChE,IAEIxH,EAASu+C,EAAQ3Z,QAAO,SAAU5mC,EAAMmQ,GAC1C,IAAIhR,EAAQqhD,EAASrwC,GACjBuwC,EAASD,EAAUtwC,GAUvB,OARIwwC,GAAWxhD,IACba,EAAKI,KAAKjB,GAGRwhD,GAAWD,IACb1gD,EAAKI,KAAKsgD,GAGL1gD,IACN,IAEH,OAAKgC,EAAO9B,OAnMW,YAwMnBsJ,GAjMoB,aAiMWA,EACxB,GAAOxH,GAEP,GAAIA,GAAQA,SAPd,GAwBX,SAAS4+C,GAA2BC,EAAM1hD,EAAOqK,EAAMg3C,EAAUC,GAC/D,MA7MuB,YA6MnBj3C,EACK,CACLA,KA/MmB,UAgNnBoiC,OAAQ,GACRzzB,MAAO,CAAChZ,GACR2hD,SAAU,EACVD,KAAMA,EACNE,eAAWh5C,EACXi5C,SAAS,EACTR,SAAUA,EACVC,UAAWA,QAIM,IAAVthD,EACF,KAGF,CACLqK,KAzOsB,WA0OtB2O,MAAO,CAAChZ,GACRysC,OAAQ,GACRkV,SAAU,EACVD,KAAMA,EACNE,eAAWh5C,EACXi5C,SAAS,EACTR,SAAUA,EACVC,UAAWA,GAyLR,SAASQ,GAAmCjhD,EAAM+/C,GACvD,IAAInU,EAASmU,EAAYnU,OACrBpiC,EAAOu2C,EAAYv2C,KACnBg3C,EAAWT,EAAYS,SACvBC,EAAYV,EAAYU,UAGxBz+C,EAxBN,SAA0BhC,EAAMgC,EAAQy+C,EAAWj3C,GACjD,MAnYoB,SAmYhBA,GAA8C,IAAlBxH,EAAO9B,OAE9B,CADKugD,EAAUzgD,EAAK,KACZqI,OAAOy2C,GAAmB98C,IAGpCA,EAkBMk/C,CAAiBlhD,EDxhBzB,SAAiCuoB,EAAKi4B,GAC3C,IAAIW,EAAc,IAAIn0C,IAAIub,EAAIjkB,IAAIk8C,IAClC,OAAOn+C,MAAM28C,KAAKmC,GCohBCC,CAAwBphD,EAAMwgD,GAECC,EAAWj3C,GAEzDvH,EAjXC,SAAmCD,EAAQ+9C,GAChD,IAAIsB,EAAUvB,GAA0BC,GACpC55C,EAAS,EAEb,GAAIk7C,EAMF,IALA,IAAIC,OAAY,EACZC,EAAeF,EAAQr/C,EAAO,IAC9B8+C,EAAW3rB,IACXqsB,OAAe,EAEVp4C,EAAI,EAAGA,EAAIpH,EAAO9B,OAAQkJ,IACjCk4C,EAAYD,EAAQr/C,EAAOoH,KAC3Bo4C,EAAel1C,KAAKkS,IAAI8iC,EAAYC,IAEjBT,IACjBA,EAAWU,EACXr7C,EAASiD,GAGXm4C,EAAeD,EAInB,OAAOn7C,EA0VKs7C,CAA0Bz/C,EAAQ+9C,GAE1C2B,EAAiB,GAAGr5C,OAAOujC,GAC/B8V,EAAe,IA7FjB,SAAsC1/C,GACpC,OAAIA,EAAO9B,OAAS,GACV8B,EAAO,GAAKA,EAAO,IAAM,EAGb,IAAlBA,EAAO9B,OACF8B,EAAO,GAAK,GAGd,EAoFc2/C,CAA6B3/C,GAClD0/C,EAAe9V,EAAO1rC,OAAS,IA3EjC,SAAuC8B,GACrC,OAAIA,EAAO9B,OAAS,GACV8B,EAAOA,EAAO9B,OAAS,GAAK8B,EAAOA,EAAO9B,OAAS,IAAM,EAG7C,IAAlB8B,EAAO9B,OACF8B,EAAO,GAAK,GAGd,EAkE8B4/C,CAA8B5/C,GAvahD,QAyafwH,GAA2BoiC,EAAO,IAAM,IAC1C8V,EAAe,GAAKp1C,KAAKm3B,IAAImI,EAAO,GAAK,GAAI,IAG/C,IAIIkV,EA/DN,SAA+B9+C,EAAQ4pC,EAAQiW,EAAeR,GAC5D,GAAIr/C,EAAO9B,OAAS,EAAG,CAErB,IAAIkJ,EAAIkD,KAAK4K,IAAI2qC,EAAe,GAChC,OAAOv1C,KAAKkS,IAAI6iC,EAAQr/C,EAAOoH,IAAMi4C,EAAQr/C,EAAOoH,EAAI,KAG1D,OAAsB,IAAlBpH,EAAO9B,OACFoM,KAAKkS,IAAI6iC,EAAQzV,EAAO,IAAMyV,EAAQzV,EAAO,KAG/C,EAoDQkW,CAAsB9/C,EAAQ0/C,EAAgBz/C,EAJvC69C,GAA0B,GAAS,GAAIC,EAAa,CACxEnU,OAAQ8V,MAKV,MAAO,CACLK,QAASL,EAAe,GACxBM,QAASN,EAAeA,EAAexhD,OAAS,GAChD4gD,SAAUA,GA2FP,SAASmB,GAAwB79C,EAAOy8C,GAE7C,IAAId,EAjQN,SAAsC37C,EAAOy8C,GAC3C,IAhCqCzZ,EAgCjCjoC,EAAQiF,EAAMy8C,GACdqB,EAAgB99C,EAAM,IAAMy8C,EAAO,SACnC1oC,EAAQ/T,EAAMy8C,EAAO,SACrBsB,EAAU/9C,EAAMy8C,EAAO,YACvBC,OAAuB/4C,IAAZo6C,EAAwB,EAAIA,EACvCpB,EAAY38C,EAAMy8C,EAAO,aACzBuB,EAAWh+C,EAAMy8C,EAAO,QACxBr3C,OAAoBzB,IAAbq6C,EAxTW,SAwTkCA,EACpDC,EAAaj+C,EAAMy8C,EAAO,cAC1ByB,EAAWl+C,EAAM,MAAQy7C,GAAYgB,IACrCL,OAAwBz4C,IAAbu6C,EAAyB,SAAUnyC,GAChD,OAAOA,EAAE0wC,IACPyB,EACAC,EAAWn+C,EAAM,MAAQy7C,GAAYgB,GAAQ,KAC7CJ,OAAyB14C,IAAbw6C,EAAyB,SAAUpyC,GACjD,OAAOA,EAAE0wC,EAAO,MACd0B,EACA3W,EAASxnC,EAAMy8C,EAAO,UAE1B,OAAKwB,QAA+B,IAAVljD,QAMD,IAAd4hD,IACTnV,EDzZG,SAAyBrjB,EAAKppB,GACnC,IAAIgH,EAAS,GAAGkC,OAAOkgB,GAUvB,OARIpiB,EAAO,GAAKhH,IACdgH,EAAO,GAAKhH,GAGVgH,EAAOA,EAAOjG,OAAS,GAAKf,IAC9BgH,EAAOA,EAAOjG,OAAS,GAAKf,GAGvBgH,EC8YIq8C,CAAgB5W,EAAQmV,IAI9B5oC,GAAUyzB,GAAWA,EAAO1rC,OArD1B,CACL0rC,QAVmCxE,EAmEA,CACnCwE,OAAQA,EACRzzB,MAAOA,EACP3O,KAAMA,EACNs3C,SAAUA,EACVD,KAAMA,EACNE,UAAWA,EACXP,SAAUA,EACVC,UAAWA,IA1EK7U,OAUhBzzB,MATUivB,EAAKjvB,MAUf3O,KATS49B,EAAK59B,KAUds3C,SATa1Z,EAAK0Z,SAUlBD,KATSzZ,EAAKyZ,KAUdE,UATc3Z,EAAK2Z,UAUnBC,SAAS,EACTR,SAVapZ,EAAKoZ,SAWlBC,UAVcrZ,EAAKqZ,WAwDZG,GAA2BC,EAAMqB,EAAe99C,EAAMy8C,EAAO,QAASL,EAAUC,IAZhFG,GAA2BC,EAAM1hD,EAAOiF,EAAMy8C,EAAO,QAASL,EAAUC,GA4O/DgC,CAA6Br+C,EAAOy8C,GAEtD,IAAKd,EACH,OAAO,KAKT,IA1FF,SAAoC37C,EAAO27C,GACzC,IAAIc,EAAOd,EAAYc,KACnB6B,EAAmBt+C,EAAMu+C,UACzBC,OAAgC76C,IAArB26C,EAAiC,GAAKA,EACjDG,EAAqBz+C,EAAM0+C,YAI/B,YAHwC/6C,IAAvB86C,EAAmC,GAAKA,GAGvC3iD,QAAU0iD,EAAS1iD,SAAsC,IAA5B0iD,EAASlc,QAAQma,GAkF3DkC,CAA2B3+C,EAAO27C,GACrC,OAAOA,EAGT,IAAIv2C,EAAOu2C,EAAYv2C,KAIvB,MA1jBuB,YA0jBnBA,GAnjBoB,aAmjBWA,EAtC9B,SAAiCu2C,GACtC,IAAIsB,EAAUvB,GAA0BC,GACpCnU,EAASmU,EAAYnU,OACrBzzB,EAAQ4nC,EAAY5nC,MAQxB,OANIyzB,EAAO1rC,OAAS,EAClB6/C,EAAYe,SAAWx0C,KAAKkS,IAAI6iC,EAAQzV,EAAO,IAAMyV,EAAQzV,EAAO,KAEpEmU,EAAYe,SAAWx0C,KAAKkS,IAAIrG,EAAM,GAAKA,EAAM,IAG5C4nC,EA4BEiD,CAAwBjD,GA/EnC,SAAgC37C,EAAO27C,GACrC,IAAIkD,EAAgB7+C,EAAM8+C,SACtBC,EAAsB/+C,EAAM0+C,YAC5BM,OAAqCr7C,IAAxBo7C,EAAoC,GAAKA,EAEtDE,EAAetD,EAAYnU,OAAO1rC,OAClC0rC,EAASmU,EAAYnU,OACrB0X,EAAe1X,EAAO,GACtB2X,EAAe3X,EAAOyX,EAAe,GACrCG,EAAgBzD,EAAYe,SAqBhC,OAlBAmC,EAAc96C,SAAQ,SAAUnI,EAAMiC,GACpC,IAAmC,IAA/BmhD,EAAW1c,QAAQzkC,IAInBjC,GAAQA,EAAKE,OAAQ,CACvB,IAAIujD,EAAwBxC,GAAmCjhD,EAAM+/C,GACjEgC,EAAU0B,EAAsB1B,QAChCC,EAAUyB,EAAsBzB,QAChClB,EAAW2C,EAAsB3C,SAErCwC,EAAeh3C,KAAKm3B,IAAI6f,EAAcvB,GACtCwB,EAAej3C,KAAK4K,IAAIqsC,EAAcvB,GACtCwB,EAAgBl3C,KAAK4K,IAAIssC,EAAe1C,OAG5Cf,EAAYnU,OAAS,CAAC0X,GAAcj7C,OAAOy2C,GAAmBlT,EAAOxpC,MAAM,GAAI,IAAK,CAACmhD,IACrFxD,EAAYe,SAAW0C,EAChBzD,EAoDA2D,CAAuBt/C,EAAO27C,GAShC,SAAS4D,GAAkBv/C,EAAOy8C,GAEvC,OAAOf,GADWmC,GAAwB79C,EAAOy8C,IAWnD,SAAS+C,GAAczzC,EAAGqwC,GACxB,OAAOA,EAASrwC,EAAEnQ,KAAOmQ,EAAEnQ,KAAOmQ,GAGpC,SAASwwC,GAAWxhD,GAClB,YAAwB,IAAVA,EAkCT,SAAS0kD,GAAoBz/C,EAAOy8C,GACzC,IAAId,EAAckC,GAAwB79C,EAAOy8C,GAEjD,GAAId,EAAa,CACf,IAAIsB,EAAUvB,GAA0BC,GACxC,OAAO,SAAU5vC,GACf,OAAOkxC,EAAQuC,GAAczzC,EAAG4vC,EAAYS,YAIhD,OAAO,KAWF,SAASsD,GAAgB1/C,EAAOy8C,GACrC,IAAId,EAAckC,GAAwB79C,EAAOy8C,GAEjD,GAAId,EAAa,CACf,IAAInU,EAASmU,EAAYnU,OACrBmY,EAAwBhE,EAAYgB,UACpCA,OAAsCh5C,IAA1Bg8C,EAAsCnY,EAAO,GAAKmY,EAC9D1C,EAAUvB,GAA0BC,GACxC,OAAO,SAAU5vC,GACf,IAAIhR,EAAQykD,GAAczzC,EAAG4vC,EAAYU,WAEzC,OAAOY,EAAQV,GAAWxhD,GAASA,EAAQ4hD,IAI/C,OAAO,KAUF,SAASiD,GAAkB5/C,EAAOy8C,GACvC,IAAId,EAAckC,GAAwB79C,EAAOy8C,GAEjD,OAAId,GACGA,EAAYiB,cAA2Cj5C,IAAhC3D,EAAM,IAAMy8C,EAAO,UAC7C,aAAQ,uCAAyCA,EAAzC,wDAGHz8C,EAAM,IAAMy8C,EAAO,UAAYd,EAAY5nC,MAAM,IAGnD,KASF,SAAS8rC,GAA6BpD,GAC3C,IAAIqD,EAEJ,OAAmBjF,GAAZiF,EAAQ,GAA2B,IAAMrD,EAAO,QAAS,IAAUn6B,KAAMu4B,GAAgBiF,EAAOrD,EAAO,SAAU,IAAUzwC,OAAQ6uC,GAAgBiF,EAAO,MAAQrE,GAAYgB,GAAO,IAAU38C,MAAO+6C,GAAgBiF,EAAO,MAAQrE,GAAYgB,GAAQ,IAAK,IAAU38C,MAAO+6C,GAAgBiF,EAAOrD,EAAO,QAAS,IAAUzwC,OAAQ6uC,GAAgBiF,EAAOrD,EAAO,OAAQ,IAAUsD,MAAM7kD,OAAOiD,KAAK28C,MAAoBD,GAAgBiF,EAAOrD,EAAO,WAAY,IAAUpyC,QAASwwC,GAAgBiF,EAAOrD,EAAO,YAAa,IAAUn6B,KAAMw9B,EAUxhB,SAASE,GAA2BhgD,EAAOigD,GAChD,IAAIl+C,EAAS,GAmBb,OAlBA7G,OAAOiD,KAAK6B,GAAO+D,SAAQ,SAAU1J,GAExB4lD,EAAW3sB,MAAK,SAAU30B,GAEnC,IAAIuhD,EAAgC,IAAnB7lD,EAAIioC,QAAQ3jC,GAEzBwhD,EAA2C,IAAzB9lD,EAAIioC,QAAQ,IAAM3jC,GAEpCyhD,EAAkD,IAAxC/lD,EAAIioC,QAAQ,MAAQmZ,GAAY98C,IAC9C,OAAOuhD,GAAcC,GAAmBC,OAO1Cr+C,EAAO1H,GAAO2F,EAAM3F,OAEf0H,EAYF,SAASs+C,GAAqBrgD,EAAOpE,EAAMqkD,GAChD,IAAIl+C,EAAS,GAuBb,OArBAk+C,EAAWl8C,SAAQ,SAAU04C,GACtBz8C,EAAM,MAAQy7C,GAAYgB,MAC7B16C,EAAO,MAAQ05C,GAAYgB,IAAS,SAAU1wC,GAC5C,OAAOA,EAAE0wC,KAIRz8C,EAAM,MAAQy7C,GAAYgB,GAAQ,OACrC16C,EAAO,MAAQ05C,GAAYgB,GAAQ,KAAO,SAAU1wC,GAClD,OAAOA,EAAE0wC,EAAO,OAIfz8C,EAAMy8C,EAAO,YAChB16C,EAAO06C,EAAO,UAAYP,GAAoBtgD,EAAMoE,EAAM,MAAQy7C,GAAYgB,KAAU16C,EAAO,MAAQ05C,GAAYgB,IAAQz8C,EAAM,MAAQy7C,GAAYgB,GAAQ,MAAQ16C,EAAO,MAAQ05C,GAAYgB,GAAQ,KAAMz8C,EAAMy8C,EAAO,SAEvNz8C,EAAMy8C,EAAO,aACf16C,EAAO06C,EAAO,UA3JtB,SAAoBjV,EAAQuE,GAC1B,IAAKvE,EACH,OAAOA,EAGT,GAAIx/B,MAAMI,WAAWo/B,EAAO,MAAQx/B,MAAMI,WAAWo/B,EAAO,KAC1D,OAAOA,EAGT,IAAI8Y,EAAUz7B,GAAe2iB,EAAQ,GACjCnI,EAAMihB,EAAQ,GACdxtC,EAAMwtC,EAAQ,GAEdC,EAAyC,IAAVxU,GAAdj5B,EAAMusB,GAC3B,MAAO,CAACA,EAAMkhB,EAAeztC,EAAMytC,GA6IHC,CAAWz+C,EAAO06C,EAAO,UAAWz8C,EAAMy8C,EAAO,iBAI1E16C,EAOF,SAASs5C,GAAa3/B,GAC3B,SAASgsB,EAAM37B,GACb,YAAUpI,IAANoI,EACK2P,EAGF3P,EAGT,SAAS00C,IACP,OAAO/Y,EAOT,OAJAA,EAAMF,OAASiZ,EACf/Y,EAAM3zB,MAAQ0sC,EACd/Y,EAAMD,QAAUgZ,EAChB/Y,EAAMjuB,KAAOgnC,EACN/Y,EAEF,SAASgZ,GAA2BC,GACzC,OAAIA,EACKlhB,GAAIkhB,GAAYjsC,EAAI,IAAO,OAAS,OAGtC,KASF,SAASksC,GAAgB5gD,EAAOyU,GACrC,IAAIosC,EAAerF,GAAYhZ,QAAO,SAAUhf,EAAMi5B,GACpD,IAAIjV,EAASxnC,EAAMy8C,EAAO,UACtB1oC,EAAQ/T,EAAMy8C,EAAO,SACrBr3C,EAAOpF,EAAMy8C,EAAO,QAExB,OAAIjV,GAAUzzB,GAAS3O,EACd,GAAS,GAAIoe,EAAMq3B,GAAgB,GAAI4B,EAAM3B,GAAgB11C,KAAQoiC,OAAOA,GAAQzzB,MAAMA,KAG5FyP,IACN,IACH,OAAO/O,EAASvU,KAAI,SAAUijC,GAC5B,OAAOqY,GAAYhZ,QAAO,SAAUhf,EAAMi5B,GACxC,GAAItZ,EAAMnjC,YAA+B2D,IAAtBw/B,EAAMnjC,MAAMy8C,GAAqB,CAClD,IAAIqE,EAAa3d,EAAMnjC,MAAMy8C,GACzB/U,EAAQmZ,EAAapE,GACrBqB,EAAgBpW,EAAQA,EAAMoZ,GAAcA,EAChD,OAAO,GAAS,GAAIt9B,EAAMq3B,GAAgB,GAAI,IAAM4B,EAAO,QAASqB,IAGtE,OAAOt6B,IACN,OAGP,IACIu9B,GADuB,CAAC,WACyB7gD,KAAI,SAAU5C,GACjE,OAAO,IAAIqL,OAAOrL,EAAM,IAAK,QAUxB,SAAS0jD,GAAsBhhD,GACpC,OAAO9E,OAAOiD,KAAK6B,GAAOwiC,QAAO,SAAUye,EAAKC,GAK9C,OAJwBH,GAA0BxT,OAAM,SAAU4T,GAChE,OAAQD,EAAK92C,MAAM+2C,QAOrBF,EAAIC,GAAQlhD,EAAMkhD,IAHTD,IAKR,IAEU,IGt9BX,GAAe,WACjB,SAASp8C,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAgCnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA4C5E,IAAI4lD,IArEWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,IA0DgB,GAAIw+C,GAA6B,KAAMA,GAA6B,KAAMA,GAA6B,QAASA,GAA6B,WAAYA,GAA6B,SAAU,CACvNtW,MAAO,IAAUl/B,OACjBg3C,OAAQ,IAAUh3C,OAClBzO,KAAM,IAAUumB,QAAQ,IAAUK,UAAU,CAAC,IAAU/jB,OAAQ,IAAUuN,SACzEs1C,iBAAkB,IAAUxhD,KAC5ByhD,gBAAiB,IAAUzhD,KAC3B0hD,aAAc,IAAU1hD,KACxB2hD,kBAAmB,IAAU3hD,KAC7B4hD,kBAAmB,IAAU5hD,KAC7B6hD,iBAAkB,IAAU7hD,KAC5B8hD,cAAe,IAAU9hD,KACzB+hD,mBAAoB,IAAU/hD,KAC9BgiD,WAAY,IAAUhiD,KACtBiiD,YAAa,IAAUjiD,KACvBS,MAAO,IAAU9B,OACjBwlC,UAAWG,GACXt1B,MAAO,IAAUozB,OASf,GAAiB,SAAUQ,GAG7B,SAASsf,IACP,IAAIhf,EAEAif,EAAO5iC,EAEX,GAAgB/kB,KAAM0nD,GAEtB,IAAK,IAAIE,EAAO3mD,UAAUO,OAAQ0C,EAAOP,MAAMikD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E3jD,EAAK2jD,GAAQ5mD,UAAU4mD,GAGzB,OAAeF,EAAS5iC,EAAQ,GAA2B/kB,MAAO0oC,EAAOgf,EAAe37C,WAAanL,OAAOkL,eAAe47C,IAAiBxmD,KAAKoG,MAAMohC,EAAM,CAAC1oC,MAAM2J,OAAOzF,KAAiB6gB,EAAM+iC,oBAAsB,SAAUC,GAChO,IAAIT,EAAgBviC,EAAMrf,MAAM4hD,cAE5BA,GACFA,EAAc,CACZS,MAAOA,KAGVhjC,EAAMijC,uBAAyB,SAAUD,GAC1C,IAAIV,EAAmBtiC,EAAMrf,MAAM2hD,iBAE/BA,GACFA,EAAiB,CACfU,MAAOA,KAGVhjC,EAAMkjC,wBAA0B,SAAUF,GAC3C,IAAIX,EAAoBriC,EAAMrf,MAAM0hD,kBAEhCA,GACFA,EAAkB,CAChBW,MAAOA,KAGVhjC,EAAMmjC,yBAA2B,SAAUH,GAC5C,IAAIR,EAAqBxiC,EAAMrf,MAAM6hD,mBAEjCA,GACFA,EAAmB,CACjBQ,MAAOA,KAGVhjC,EAAMojC,mBAAqB,SAAU12C,EAAGs2C,GACzC,IAAIK,EAAcrjC,EAAMrf,MACpBwhD,EAAekB,EAAYlB,aAC3BI,EAAgBc,EAAYd,cAE5BJ,GACFA,EAAaz1C,EAAG,CACds2C,MAAOA,IAIPT,GACFA,EAAc,CACZS,MAAOA,KAGVhjC,EAAMsjC,sBAAwB,SAAU52C,EAAGs2C,GAC5C,IAAIO,EAAevjC,EAAMrf,MACrBuhD,EAAkBqB,EAAarB,gBAC/BI,EAAmBiB,EAAajB,iBAEhCJ,GACFA,EAAgBx1C,EAAG,CACjBs2C,MAAOA,IAIPV,GACFA,EAAiB,CACfU,MAAOA,KAGVhjC,EAAMwjC,uBAAyB,SAAU92C,EAAGs2C,GAC7C,IAAIS,EAAezjC,EAAMrf,MACrBshD,EAAmBwB,EAAaxB,iBAChCI,EAAoBoB,EAAapB,kBAEjCJ,GACFA,EAAiBv1C,EAAG,CAClBs2C,MAAOA,IAIPX,GACFA,EAAkB,CAChBW,MAAOA,KAGVhjC,EAAM0jC,wBAA0B,SAAUh3C,EAAGs2C,GAC9C,IAAIW,EAAe3jC,EAAMrf,MACrByhD,EAAoBuB,EAAavB,kBACjCI,EAAqBmB,EAAanB,mBAElCJ,GACFA,EAAkB11C,EAAG,CACnBs2C,MAAOA,IAIPR,GACFA,EAAmB,CACjBQ,MAAOA,KAGF,GAA2BhjC,EAAnC4iC,GAqPL,OAraF,SAAmBpgC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAsD3G,CAAUkgC,EAAgBtf,GAgH1B,GAAasf,EAAgB,CAAC,CAC5B3nD,IAAK,oBACLU,MAAO,SAA2BsnD,GAChC,IAAI3/B,EAASpoB,KAAK0F,MACd8hD,EAAap/B,EAAOo/B,WACpBC,EAAcr/B,EAAOq/B,YACrBnmD,EAAO8mB,EAAO9mB,MAEbkmD,GAAeC,IAAgBnmD,IAIhCmmD,EACFznD,KAAK2oD,iBAAiBZ,GAEtB/nD,KAAK4oD,gBAAgBb,MAGxB,CACDhoD,IAAK,oBACLU,MAAO,SAA2B2E,GAChCA,EAAEyjD,iBACF7oD,KAAK8oD,kBAAkB1jD,KAExB,CACDrF,IAAK,qBACLU,MAAO,SAA4B2E,GAEjCA,EAAEyjD,mBASH,CACD9oD,IAAK,mBACLU,MAAO,SAA0B0hD,GAC/B,OAAOiD,GAAgBplD,KAAK0F,MAAOy8C,KASpC,CACDpiD,IAAK,uBACLU,MAAO,SAA8B0hD,GACnC,OAAOgD,GAAoBnlD,KAAK0F,MAAOy8C,KAUxC,CACDpiD,IAAK,qBACLU,MAAO,SAA4B0hD,GACjC,OAAOmD,GAAkBtlD,KAAK0F,MAAOy8C,KAStC,CACDpiD,IAAK,oBACLU,MAAO,SAA2B0hD,GAChC,IAAId,EAAckC,GAAwBvjD,KAAK0F,MAAOy8C,GACtD,OAAOd,EAAcA,EAAYe,SAAW,IAE7C,CACDriD,IAAK,8BACLU,MAAO,SAAqCsnD,GAC1C,IAAIgB,EAAU/oD,KAAK0F,MACfsjD,EAAoBD,EAAQE,UAC5BA,OAAkC5/C,IAAtB2/C,EAAkC,EAAIA,EAClDE,EAAqBH,EAAQI,WAC7BA,OAAoC9/C,IAAvB6/C,EAAmC,EAAIA,EACpDE,EAAMrB,EAAMsB,YACZC,EAAgBvB,EAAMuB,cACtBC,EAAOD,EAAcE,wBACrBv/C,EAAIm/C,EAAIK,QACR51B,EAAIu1B,EAAIM,QAOZ,MALiB,cAAbN,EAAIt+C,OACNb,EAAIm/C,EAAIO,QAAQ,GAAGC,MACnB/1B,EAAIu1B,EAAIO,QAAQ,GAAGE,OAGd,CACL5/C,EAAGA,EAAIs/C,EAAKr4B,KAAOo4B,EAAcQ,WAAaX,EAC9Ct1B,EAAGA,EAAI01B,EAAKQ,IAAMT,EAAcU,UAAYf,KAG/C,CACDlpD,IAAK,kBACLU,MAAO,SAAyBsnD,GAC9B,IAAIkC,EAAUjqD,KAAK0F,MACf8hD,EAAayC,EAAQzC,WACrBlmD,EAAO2oD,EAAQ3oD,KACf4oD,EAAcr8C,OAAOs8C,kBACrB1pD,EAAQ,KACR2pD,EAAa,KAEbC,EAAarqD,KAAKsqD,4BAA4BvC,GAE9CwC,EAAWvqD,KAAKwqD,qBAAqB,KAEzClpD,EAAKmI,SAAQ,SAAUghD,EAAM//C,GAC3B,IAAIggD,EAAoBH,EAASE,GAC7BE,EAAc/8C,KAAKkS,IAAIuqC,EAAWpgD,EAAIygD,GAEtCC,EAAcT,IAChBA,EAAcS,EACdlqD,EAAQgqD,EACRL,EAAa1/C,MAIZjK,GAIL+mD,EAAW/mD,EAAO,CAChBmqD,OAAQL,EAAS9pD,GACjB8C,MAAO6mD,EACPrC,MAAOA,EAAMsB,gBAGhB,CACDtpD,IAAK,mBACLU,MAAO,SAA0BsnD,GAC/B,IAAI8C,EAAU7qD,KAAK0F,MACf+hD,EAAcoD,EAAQpD,YACtBnmD,EAAOupD,EAAQvpD,KAEf+oD,EAAarqD,KAAKsqD,4BAA4BvC,GAE9CwC,EAAWvqD,KAAKwqD,qBAAqB,KAErCM,EAAW9qD,KAAKwqD,qBAAqB,KAIrCO,EADkB,KAAU9gD,EAAEsgD,GAAU12B,EAAEi3B,EAC7BE,CAAgB1pD,GAAM03B,KAAKqxB,EAAWpgD,EAAGogD,EAAWx2B,GACjEpzB,EAAQsqD,EAAWzpD,KAElBb,GAILgnD,EAAYhnD,EAAO,CACjBmqD,OAAQG,EAAW,GACnBE,OAAQF,EAAW,GACnBxnD,MAAOwnD,EAAWxnD,MAClBwkD,MAAOA,EAAMsB,iBAuDf,CAAC,CACHtpD,IAAK,kBAMLU,MAAO,WACL,MAAO,KAOR,CACDV,IAAK,cACLyH,IAAK,WACH,OAAO,MAIJkgD,EAnWY,CAoWnB,iBAEF,GAAe7d,YAAc,iBAC7B,GAAeid,UAAYA,GAC3B,GAAeoE,aA9WI,CACjBvlD,UAAW,GACX6O,OAAO,EACPvO,MAAO,IA4WM,UCtcJklD,GAAuB,CAAC,UAAW,UAAW,UAAW,UAAW,WACpEC,GAAgC,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC7PC,GAAyB,CAAC,UAAW,WACrCC,GAAa,CAAC,EAAG,IAKjBC,GAAgBJ,GAAqB,GCzB5C,GAAWvqD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBjF,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EA+BF,SAAS0pD,GAAc3iB,GAE5B,OADgBA,EAAM/9B,KAAKjK,qBACC,GAQvB,SAAS4qD,GAAkBtxC,GAChC,OAAO,IAAM4O,SAAS2iC,QAAQvxC,GAAU4e,QAAO,SAAU8P,GACvD,OAAOA,GAAS2iB,GAAc3iB,MA+E3B,SAAS8iB,GAAexxC,EAAUgoC,GACvC,IAAIyJ,EAAuBzxC,EAAS0xC,MAAK,SAAUC,GACjD,OAAOA,GAAUA,EAAOpmD,MAAM8O,SAG5Bu3C,EAAsB,GAC1B,OAAO5xC,EAAS+tB,QAAO,SAAU8jB,EAAaF,EAAQG,GAEpD,IAAKH,EAEH,OADAE,EAAYtqD,KAAK,MACVsqD,EAGT,IAAIE,EAAaJ,EAAOhhD,KAAK++B,YACzBsiB,EAAgBL,EAAOpmD,MACvBpE,EAAO6qD,EAAc7qD,KACrB8qD,EAAwBD,EAAcE,QACtCA,OAAoChjD,IAA1B+iD,EAAsC,UAAYA,EAC5D53C,EAAQ23C,EAAc33C,MACtB83C,EA3CR,SAAqBhrD,GACnB,OApBF,WACE,IAAIA,EAAOL,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,GAAmBA,UAAU,GAAK,GAE/E,QAAKK,GAIEA,EAAKuqD,MAAK,SAAU7iB,GACzB,OAAOA,EAAI/P,QAAU+P,EAAIujB,SAYtBC,CAAqBlrD,GAInBA,EAAKsE,KAAI,SAAUojC,GACxB,OAAO,GAAS,GAAIA,EAAK,CACvB/+B,EAAG++B,EAAI/P,OAASrrB,KAAKgyC,IAAI5W,EAAIujB,OAC7B14B,EAAGmV,EAAI/P,OAASrrB,KAAKkyC,IAAI9W,EAAIujB,YANxBjrD,EAyCWmrD,CAAYnrD,GAE9B,IAAK6gD,IAASmK,IAAgBA,EAAY9qD,QAAUoqD,IAAyBp3C,EAE3E,OADAw3C,EAAYtqD,KAAK4qD,GACVN,EAGT,IAAIU,EAAQvK,EAAO,IACfwK,EAAoB,MAATxK,EAAe,IAAM,IA2BpC,OA1BA6J,EAAYtqD,KAAK4qD,EAAY1mD,KAAI,SAAU6L,EAAGm7C,GAC5C,IAAIC,EAAWC,EAEVf,EAAoBM,KACvBN,EAAoBM,GAAW,IAG5BN,EAAoBM,GAASH,KAChCH,EAAoBM,GAASH,GAAc,IAG7C,IAGMa,EAHFC,EAAQjB,EAAoBM,GAASH,GAAYz6C,EAAEk7C,IAEvD,IAAKK,EAIH,OADAjB,EAAoBM,GAASH,GAAYz6C,EAAEk7C,KAA0C,GAA5BI,EAAwB,GAA2CL,EAAOj7C,EAAEi7C,IAAS,GAAgBK,EAAuB5K,EAAM1wC,EAAE0wC,IAAQ4K,GAC9L,GAAS,GAAIt7C,GAItB,IAAIw7C,EAAQ,GAAS,GAAIx7C,GAAoB,GAAhBo7C,EAAY,GAA+BH,EAAOM,EAAM7K,IAAQ,GAAgB0K,EAAW1K,EAAM6K,EAAM7K,GAAQ1wC,EAAE0wC,IAAS1wC,EAAEi7C,IAAU,IAAKG,IAGxK,OADAd,EAAoBM,GAASH,GAAYz6C,EAAEk7C,KAA2C,GAA7BG,EAAyB,GAA4CJ,EAAOO,EAAMP,IAAS,GAAgBI,EAAwB3K,EAAM8K,EAAM9K,IAAQ2K,GACzMG,MAEFjB,IACN,IASE,SAASkB,GAA2B/yC,GACzC,IAAI1S,EAAS,GACT0lD,EAvIN,SAAgChzC,GAC9B,IAAI1S,EAAS,GAgBb,OAfA0S,EAAS4e,OAAOyyB,IAAe/hD,SAAQ,SAAUo/B,GAC/C,IAAIgB,EAAchB,EAAM/9B,KAAK++B,YACzBwiB,EAAUxjB,EAAMnjC,MAAM2mD,QAErB5kD,EAAOoiC,KACVpiC,EAAOoiC,GAAe,CACpBujB,cAAe,EACfC,cAAe,EACfC,SAAU,IAAIh/C,MAIlB7G,EAAOoiC,GAAayjB,SAAS9pD,IAAI6oD,GACjC5kD,EAAOoiC,GAAaujB,mBAEf3lD,EAsHe8lD,CAAuBpzC,GACzC8xC,EAAc,EA2BlB,OAzBA9xC,EAAS1Q,SAAQ,SAAUo/B,GACzB,IAAInjC,OAAQ,EAEZ,GAAI8lD,GAAc3iB,GAAQ,CACxB,IAAI2kB,EAAiBL,EAAgBtkB,EAAM/9B,KAAK++B,aAEhDnkC,EAAQ,GAAS,GAAI8nD,EAAgB,CACnCvB,YAAaA,EACbwB,YAHgBtC,GAAqBc,EAAcd,GAAqB3pD,QAIxEksD,cD3MqB,IC6MvBF,EAAeH,gBACfpB,IAEIpjB,EAAMnjC,MAAM2mD,UACd3mD,EAAM2mD,QAAUxjB,EAAMnjC,MAAM2mD,QAE5B3mD,EAAM4nD,SAAW3pD,MAAM28C,KAAKkN,EAAeF,UAC3C5nD,EAAM0nD,cAAgB1nD,EAAM4nD,SAAS9rD,OACrCkE,EAAM2nD,cAAgB3nD,EAAM4nD,SAAStlB,QAAQa,EAAMnjC,MAAM2mD,UAI7D5kD,EAAO/F,KAAKgE,MAEP+B,EAUF,SAASkmD,GAAgBrsD,GAC9B,OAAOA,EAAK4mC,QAAO,SAAU0lB,EAAK5kB,GAChC,OAAOp7B,KAAK4K,IAAIwwB,EAAI/P,OAAQ20B,KAC3B,GAEE,IAAIC,GAAwB,CAAC,SAAU,UAAW,IAAK,SAAU,UAAW,IAAK,aAAc,cAAe,QAAS,eAAgB,gBAAiB,UAAW,cAAe,eAAgB,SAAU,YAAa,aAAc,OAAQ,QAAS,SAAU,aAAc,YAAa,cAAe,eAAgB,OAAQ,cAAe,aAAc,QAAS,eAAgB,cAAe,SAAU,oBAAqB,mBAAoB,eAC5b,SAASC,GAAepoD,GAC7B,IAAIqoD,EAAWroD,EAAMqoD,SACjBC,EAAetoD,EAAMsoD,aACrB3B,EAAU3mD,EAAM2mD,QAChB4B,EAAuBvoD,EAAM0nD,cAC7BA,OAAyC/jD,IAAzB4kD,EAAqC,EAAIA,EACzDC,EAAuBxoD,EAAM2nD,cAC7BA,OAAyChkD,IAAzB6kD,EAAqC,EAAIA,EAQ7D,OALIH,IAAaC,GAAiB3B,IAChCe,EAAgB,EAChBC,EAAgB,GAGX,CACLD,cAAeA,EACfC,cAAeA,GCrRnB,IAAIc,GAAKvgD,KAAKmxC,GACVqP,GAAM,EAAID,GAEVE,GAAaD,GADH,KAGd,SAASE,KACPtuD,KAAKuuD,IAAMvuD,KAAKwuD,IAChBxuD,KAAKyuD,IAAMzuD,KAAK0uD,IAAM,KAEtB1uD,KAAK+J,EAAI,GAGX,SAAS,KACP,OAAO,IAAIukD,GAGbA,GAAKztD,UAAY,GAAKA,UAAY,CAChCuI,YAAaklD,GACbK,OAAQ,SAAgB1kD,EAAG4pB,GACzB7zB,KAAK+J,GAAK,KAAO/J,KAAKuuD,IAAMvuD,KAAKyuD,KAAOxkD,GAAK,KAAOjK,KAAKwuD,IAAMxuD,KAAK0uD,KAAO76B,IAE7E+6B,UAAW,WACQ,OAAb5uD,KAAKyuD,MACPzuD,KAAKyuD,IAAMzuD,KAAKuuD,IAAKvuD,KAAK0uD,IAAM1uD,KAAKwuD,IACrCxuD,KAAK+J,GAAK,MAGd8kD,OAAQ,SAAgB5kD,EAAG4pB,GACzB7zB,KAAK+J,GAAK,KAAO/J,KAAKyuD,KAAOxkD,GAAK,KAAOjK,KAAK0uD,KAAO76B,IAEvDi7B,iBAAkB,SAA0B98B,EAAIC,EAAIhoB,EAAG4pB,GACrD7zB,KAAK+J,GAAK,MAAOioB,EAAK,MAAOC,EAAK,KAAOjyB,KAAKyuD,KAAOxkD,GAAK,KAAOjK,KAAK0uD,KAAO76B,IAE/Ek7B,cAAe,SAAuB/8B,EAAIC,EAAI+8B,EAAIC,EAAIhlD,EAAG4pB,GACvD7zB,KAAK+J,GAAK,MAAOioB,EAAK,MAAOC,EAAK,MAAO+8B,EAAK,MAAOC,EAAK,KAAOjvD,KAAKyuD,KAAOxkD,GAAK,KAAOjK,KAAK0uD,KAAO76B,IAEvGq7B,MAAO,SAAel9B,EAAIC,EAAI+8B,EAAIC,EAAI/8B,GACpCF,GAAMA,EAAIC,GAAMA,EAAI+8B,GAAMA,EAAIC,GAAMA,EAAI/8B,GAAKA,EAC7C,IAAIJ,EAAK9xB,KAAKyuD,IACV18B,EAAK/xB,KAAK0uD,IACVS,EAAMH,EAAKh9B,EACXo9B,EAAMH,EAAKh9B,EACXo9B,EAAMv9B,EAAKE,EACXs9B,EAAMv9B,EAAKE,EACXs9B,EAAQF,EAAMA,EAAMC,EAAMA,EAE9B,GAAIp9B,EAAI,EAAG,MAAM,IAAIllB,MAAM,oBAAsBklB,GAEjD,GAAiB,OAAblyB,KAAKyuD,IACPzuD,KAAK+J,GAAK,KAAO/J,KAAKyuD,IAAMz8B,GAAM,KAAOhyB,KAAK0uD,IAAMz8B,QAEjD,GAAMs9B,EAjDD,KAoDL,GAAM3hD,KAAKkS,IAAIwvC,EAAMH,EAAMC,EAAMC,GApD5B,MAoDgDn9B,EAGrD,CACH,IAAIs9B,EAAMR,EAAKl9B,EACX29B,EAAMR,EAAKl9B,EACX29B,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAMhiD,KAAKinB,KAAK66B,GAChBG,EAAMjiD,KAAKinB,KAAK06B,GAChBn1C,EAAI8X,EAAItkB,KAAKs1B,KAAKirB,GAAKvgD,KAAKkiD,MAAMJ,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,KAAS,GAC/EE,EAAM31C,EAAIy1C,EACVG,EAAM51C,EAAIw1C,EAEVhiD,KAAKkS,IAAIiwC,EAAM,GAlEX,OAmEN/vD,KAAK+J,GAAK,KAAOioB,EAAK+9B,EAAMV,GAAO,KAAOp9B,EAAK89B,EAAMT,IAGvDtvD,KAAK+J,GAAK,IAAMmoB,EAAI,IAAMA,EAAI,WAAYo9B,EAAME,EAAMH,EAAMI,GAAO,KAAOzvD,KAAKyuD,IAAMz8B,EAAKg+B,EAAMb,GAAO,KAAOnvD,KAAK0uD,IAAMz8B,EAAK+9B,EAAMZ,QAjBpIpvD,KAAK+J,GAAK,KAAO/J,KAAKyuD,IAAMz8B,GAAM,KAAOhyB,KAAK0uD,IAAMz8B,UAoBxD6B,IAAK,SAAa7pB,EAAG4pB,EAAG3B,EAAG+9B,EAAIC,EAAIC,GACjClmD,GAAKA,EAAG4pB,GAAKA,EAAWs8B,IAAQA,EAChC,IAAI59B,GADYL,GAAKA,GACRtkB,KAAKgyC,IAAIqQ,GAClBz9B,EAAKN,EAAItkB,KAAKkyC,IAAImQ,GAClBn+B,EAAK7nB,EAAIsoB,EACTR,EAAK8B,EAAIrB,EACT49B,EAAK,EAAID,EACTE,EAAKF,EAAMF,EAAKC,EAAKA,EAAKD,EAE9B,GAAI/9B,EAAI,EAAG,MAAM,IAAIllB,MAAM,oBAAsBklB,GAEhC,OAAblyB,KAAKyuD,IACPzuD,KAAK+J,GAAK,IAAM+nB,EAAK,IAAMC,GAEpBnkB,KAAKkS,IAAI9f,KAAKyuD,IAAM38B,GAvFnB,MAuFoClkB,KAAKkS,IAAI9f,KAAK0uD,IAAM38B,GAvFxD,QAwFR/xB,KAAK+J,GAAK,IAAM+nB,EAAK,IAAMC,GAIxBG,IAEDm+B,EAAK,IAAGA,EAAKA,EAAKjC,GAAMA,IAExBiC,EAAKhC,GACPruD,KAAK+J,GAAK,IAAMmoB,EAAI,IAAMA,EAAI,QAAUk+B,EAAK,KAAOnmD,EAAIsoB,GAAM,KAAOsB,EAAIrB,GAAM,IAAMN,EAAI,IAAMA,EAAI,QAAUk+B,EAAK,KAAOpwD,KAAKyuD,IAAM38B,GAAM,KAAO9xB,KAAK0uD,IAAM38B,GAErJs+B,EAnGC,OAoGRrwD,KAAK+J,GAAK,IAAMmoB,EAAI,IAAMA,EAAI,SAAUm+B,GAAMlC,IAAM,IAAMiC,EAAK,KAAOpwD,KAAKyuD,IAAMxkD,EAAIioB,EAAItkB,KAAKgyC,IAAIsQ,IAAO,KAAOlwD,KAAK0uD,IAAM76B,EAAI3B,EAAItkB,KAAKkyC,IAAIoQ,OAGhJ3G,KAAM,SAAct/C,EAAG4pB,EAAG8iB,EAAG3R,GAC3BhlC,KAAK+J,GAAK,KAAO/J,KAAKuuD,IAAMvuD,KAAKyuD,KAAOxkD,GAAK,KAAOjK,KAAKwuD,IAAMxuD,KAAK0uD,KAAO76B,GAAK,MAAO8iB,EAAI,MAAO3R,EAAI,KAAO2R,EAAI,KAEnH5zC,SAAU,WACR,OAAO/C,KAAK+J,IAGD,UChHA,eACb,OAAO,WACL,OAAOE,ICFA6V,GAAMlS,KAAKkS,IACXyT,GAAQ3lB,KAAK2lB,MACbqsB,GAAMhyC,KAAKgyC,IACX,GAAMhyC,KAAK4K,IACX,GAAM5K,KAAKm3B,IACX+a,GAAMlyC,KAAKkyC,IACX,GAAOlyC,KAAKinB,KAEZ,GAAKjnB,KAAKmxC,GACVuR,GAAS,GAAK,EACd,GAAM,EAAI,GACd,SAASR,GAAK7lD,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAK2D,KAAKkiD,KAAK7lD,GAEtC,SAASsmD,GAAKtmD,GACnB,OAAOA,GAAK,EAAIqmD,GAASrmD,IAAM,GAAKqmD,GAAS1iD,KAAK2iD,KAAKtmD,GCXzD,SAASumD,GAAe/+C,GACtB,OAAOA,EAAEg/C,YAGX,SAASC,GAAej/C,GACtB,OAAOA,EAAEk/C,YAGX,SAASC,GAAcn/C,GACrB,OAAOA,EAAEo/C,WAGX,SAASC,GAAYr/C,GACnB,OAAOA,EAAEs/C,SAGX,SAASC,GAAYv/C,GACnB,OAAOA,GAAKA,EAAEw/C,SAGhB,SAASC,GAAUp/B,EAAIC,EAAIC,EAAIC,EAAI+8B,EAAIC,EAAIkC,EAAIC,GAC7C,IAAIC,EAAMr/B,EAAKF,EACXw/B,EAAMr/B,EAAKF,EACXw/B,EAAMJ,EAAKnC,EACXwC,EAAMJ,EAAKnC,EACX9oB,EAAIqrB,EAAMH,EAAME,EAAMD,EAC1B,KAAInrB,EAAIA,EDvBW,OCyBnB,MAAO,CAACrU,GADRqU,GAAKorB,GAAOx/B,EAAKk9B,GAAMuC,GAAO1/B,EAAKk9B,IAAO7oB,GACzBkrB,EAAKt/B,EAAKoU,EAAImrB,GAKjC,SAASG,GAAe3/B,EAAIC,EAAIC,EAAIC,EAAI4b,EAAI6jB,EAAItB,GAC9C,IAAIf,EAAMv9B,EAAKE,EACXs9B,EAAMv9B,EAAKE,EACXiY,GAAMkmB,EAAKsB,GAAMA,GAAM,GAAKrC,EAAMA,EAAMC,EAAMA,GAC9CqC,EAAKznB,EAAKolB,EACVsC,GAAM1nB,EAAKmlB,EACXwC,EAAM//B,EAAK6/B,EACXG,EAAM//B,EAAK6/B,EACXP,EAAMr/B,EAAK2/B,EACXL,EAAMr/B,EAAK2/B,EACXG,GAAOF,EAAMR,GAAO,EACpBW,GAAOF,EAAMR,GAAO,EACpB/+B,EAAK8+B,EAAMQ,EACXr/B,EAAK8+B,EAAMQ,EACX/5B,EAAKxF,EAAKA,EAAKC,EAAKA,EACpBN,EAAI2b,EAAK6jB,EACTO,EAAIJ,EAAMP,EAAMD,EAAMS,EACtBrgD,GAAK+gB,EAAK,GAAK,EAAI,GAAK,GAAK,GAAI,EAAGN,EAAIA,EAAI6F,EAAKk6B,EAAIA,IACrDC,GAAOD,EAAIz/B,EAAKD,EAAK9gB,GAAKsmB,EAC1Bo6B,IAAQF,EAAI1/B,EAAKC,EAAK/gB,GAAKsmB,EAC3Bq6B,GAAOH,EAAIz/B,EAAKD,EAAK9gB,GAAKsmB,EAC1Bs6B,IAAQJ,EAAI1/B,EAAKC,EAAK/gB,GAAKsmB,EAC3Bu6B,EAAMJ,EAAMH,EACZQ,EAAMJ,EAAMH,EACZQ,EAAMJ,EAAML,EACZU,EAAMJ,EAAML,EAIhB,OADIM,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAC7D,CACL79B,GAAI09B,EACJn+B,GAAIo+B,EACJ9C,KAAMsC,EACNrC,KAAMsC,EACNC,IAAKK,GAAOrkB,EAAK3b,EAAI,GACrB4/B,IAAKK,GAAOtkB,EAAK3b,EAAI,IAIV,kBACb,IAAIu+B,EAAcD,GACdG,EAAcD,GACdgC,EAAe,GAAS,GACxBC,EAAY,KACZ9B,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACX4B,EAAU,KAEd,SAAS9+B,IACP,IAAInf,EACAud,EACA0b,GAAM6iB,EAAYnpD,MAAMtH,KAAMiB,WAC9B4sC,GAAM8iB,EAAYrpD,MAAMtH,KAAMiB,WAC9BgvD,EAAKY,EAAWvpD,MAAMtH,KAAMiB,WAAaqvD,GACzCJ,EAAKa,EAASzpD,MAAMtH,KAAMiB,WAAaqvD,GACvCD,EAAKvwC,GAAIowC,EAAKD,GACdG,EAAKF,EAAKD,EAKd,GAJK2C,IAASA,EAAUj+C,EAAS,MAE7Bk5B,EAAKD,IAAI1b,EAAI2b,EAAIA,EAAKD,EAAIA,EAAK1b,GAE7B2b,ED5FW,MC6FZ,GAAIwiB,EAAK,GD7FG,MC8FfuC,EAAQjE,OAAO9gB,EAAK+R,GAAIqQ,GAAKpiB,EAAKiS,GAAImQ,IACtC2C,EAAQ9+B,IAAI,EAAG,EAAG+Z,EAAIoiB,EAAIC,GAAKE,GAE3BxiB,EDjGW,QCkGbglB,EAAQjE,OAAO/gB,EAAKgS,GAAIsQ,GAAKtiB,EAAKkS,GAAIoQ,IACtC0C,EAAQ9+B,IAAI,EAAG,EAAG8Z,EAAIsiB,EAAID,EAAIG,QAG7B,CACH,IAWI/9B,EACAC,EAZAugC,EAAM5C,EACN6C,EAAM5C,EACN6C,EAAM9C,EACN+C,EAAM9C,EACN+C,EAAM5C,EACN6C,EAAM7C,EACN8C,EAAKlC,EAAS3pD,MAAMtH,KAAMiB,WAAa,EACvCmyD,EAAKD,ED9GM,QC8GWR,GAAaA,EAAUrrD,MAAMtH,KAAMiB,WAAa,GAAK2sC,EAAKA,EAAKC,EAAKA,IAC1F6jB,EAAK,GAAI5xC,GAAI+tB,EAAKD,GAAM,GAAI8kB,EAAaprD,MAAMtH,KAAMiB,YACrDoyD,EAAM3B,EACN4B,EAAM5B,EAIV,GAAI0B,EDrHW,MCqHG,CAChB,IAAIG,EAAKhD,GAAK6C,EAAKxlB,EAAKkS,GAAIqT,IACxBK,EAAKjD,GAAK6C,EAAKvlB,EAAKiS,GAAIqT,KACvBF,GAAY,EAALM,GDxHC,OCwHqCR,GAAnBQ,GAAMnD,EAAK,GAAK,EAAc4C,GAAOO,IAAQN,EAAM,EAAGF,EAAMC,GAAO/C,EAAKC,GAAM,IACxGgD,GAAY,EAALM,GDzHC,OCyHqCX,GAAnBW,GAAMpD,EAAK,GAAK,EAAc0C,GAAOU,IAAQN,EAAM,EAAGL,EAAMC,GAAO7C,EAAKC,GAAM,GAG/G,IAAIb,EAAMxhB,EAAK+R,GAAIiT,GACfvD,EAAMzhB,EAAKiS,GAAI+S,GACfxB,EAAMzjB,EAAKgS,GAAIoT,GACf1B,EAAM1jB,EAAKkS,GAAIkT,GAEnB,GAAItB,EDjIW,MCiIG,CAChB,IAII+B,EAJA5B,EAAMhkB,EAAK+R,GAAIkT,GACfhB,EAAMjkB,EAAKiS,GAAIgT,GACff,EAAMnkB,EAAKgS,GAAImT,GACff,EAAMpkB,EAAKkS,GAAIiT,GAGnB,GAAI1C,EAAK,KAAOoD,EAAKvC,GAAU7B,EAAKC,EAAKyC,EAAKC,EAAKH,EAAKC,EAAKT,EAAKC,IAAO,CACvE,IAAIn/B,EAAKk9B,EAAMoE,EAAG,GACdrhC,EAAKk9B,EAAMmE,EAAG,GACdn/B,EAAKu9B,EAAM4B,EAAG,GACdl/B,EAAKu9B,EAAM2B,EAAG,GACdC,EAAK,EAAI5T,GAAIgQ,IAAM39B,EAAKmC,EAAKlC,EAAKmC,IAAO,GAAKpC,EAAKA,EAAKC,EAAKA,GAAM,GAAKkC,EAAKA,EAAKC,EAAKA,KAAQ,GAC/Fo/B,EAAK,GAAKF,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAM,GAAI3B,GAAK9jB,EAAK+lB,IAAOD,EAAK,IAChCJ,EAAM,GAAI5B,GAAK7jB,EAAK8lB,IAAOD,EAAK,KAK9BR,EDrJS,MCsJNI,EDtJM,OCuJbjhC,EAAKo/B,GAAeM,EAAKC,EAAK3C,EAAKC,EAAKzhB,EAAIylB,EAAKlD,GACjD99B,EAAKm/B,GAAeI,EAAKC,EAAKT,EAAKC,EAAKzjB,EAAIylB,EAAKlD,GACjDwC,EAAQjE,OAAOt8B,EAAGmC,GAAKnC,EAAGg9B,IAAKh9B,EAAG0B,GAAK1B,EAAGi9B,KAEtCgE,EAAM5B,EAAIkB,EAAQ9+B,IAAIzB,EAAGmC,GAAInC,EAAG0B,GAAIu/B,EAAK//B,GAAMlB,EAAGi9B,IAAKj9B,EAAGg9B,KAAM97B,GAAMjB,EAAGg9B,IAAKh9B,EAAG+8B,MAAOe,IAE1FwC,EAAQ9+B,IAAIzB,EAAGmC,GAAInC,EAAG0B,GAAIu/B,EAAK//B,GAAMlB,EAAGi9B,IAAKj9B,EAAGg9B,KAAM97B,GAAMlB,EAAGy/B,IAAKz/B,EAAGw/B,MAAOzB,GAC9EwC,EAAQ9+B,IAAI,EAAG,EAAG+Z,EAAIta,GAAMlB,EAAG0B,GAAK1B,EAAGy/B,IAAKz/B,EAAGmC,GAAKnC,EAAGw/B,KAAMt+B,GAAMjB,EAAGyB,GAAKzB,EAAGw/B,IAAKx/B,EAAGkC,GAAKlC,EAAGu/B,MAAOzB,GACrGwC,EAAQ9+B,IAAIxB,EAAGkC,GAAIlC,EAAGyB,GAAIu/B,EAAK//B,GAAMjB,EAAGw/B,IAAKx/B,EAAGu/B,KAAMt+B,GAAMjB,EAAGg9B,IAAKh9B,EAAG+8B,MAAOe,MAG7EwC,EAAQjE,OAAOU,EAAKC,GAAMsD,EAAQ9+B,IAAI,EAAG,EAAG+Z,EAAIglB,EAAKC,GAAM1C,IAb1CwC,EAAQjE,OAAOU,EAAKC,GAgBpC1hB,EDrKS,OCqKUqlB,EDrKV,MCsKNI,EDtKM,OCuKbhhC,EAAKo/B,GAAeJ,EAAKC,EAAKO,EAAKC,EAAKlkB,GAAKylB,EAAKjD,GAClD99B,EAAKm/B,GAAepC,EAAKC,EAAKyC,EAAKC,EAAKpkB,GAAKylB,EAAKjD,GAClDwC,EAAQ/D,OAAOx8B,EAAGmC,GAAKnC,EAAGg9B,IAAKh9B,EAAG0B,GAAK1B,EAAGi9B,KAEtC+D,EAAM3B,EAAIkB,EAAQ9+B,IAAIzB,EAAGmC,GAAInC,EAAG0B,GAAIs/B,EAAK9/B,GAAMlB,EAAGi9B,IAAKj9B,EAAGg9B,KAAM97B,GAAMjB,EAAGg9B,IAAKh9B,EAAG+8B,MAAOe,IAE1FwC,EAAQ9+B,IAAIzB,EAAGmC,GAAInC,EAAG0B,GAAIs/B,EAAK9/B,GAAMlB,EAAGi9B,IAAKj9B,EAAGg9B,KAAM97B,GAAMlB,EAAGy/B,IAAKz/B,EAAGw/B,MAAOzB,GAC9EwC,EAAQ9+B,IAAI,EAAG,EAAG8Z,EAAIra,GAAMlB,EAAG0B,GAAK1B,EAAGy/B,IAAKz/B,EAAGmC,GAAKnC,EAAGw/B,KAAMt+B,GAAMjB,EAAGyB,GAAKzB,EAAGw/B,IAAKx/B,EAAGkC,GAAKlC,EAAGu/B,KAAMzB,GACpGwC,EAAQ9+B,IAAIxB,EAAGkC,GAAIlC,EAAGyB,GAAIs/B,EAAK9/B,GAAMjB,EAAGw/B,IAAKx/B,EAAGu/B,KAAMt+B,GAAMjB,EAAGg9B,IAAKh9B,EAAG+8B,MAAOe,KAG7EwC,EAAQ9+B,IAAI,EAAG,EAAG8Z,EAAIolB,EAAKD,EAAK3C,GAbIwC,EAAQ/D,OAAOwC,EAAKC,QAzE1CsB,EAAQjE,OAAO,EAAG,GAyFvC,GADAiE,EAAQhE,YACJj6C,EAAQ,OAAOi+C,EAAU,KAAMj+C,EAAS,IAAM,KAyCpD,OAtCAmf,EAAI8/B,SAAW,WACb,IAAI1hC,IAAMu+B,EAAYnpD,MAAMtH,KAAMiB,aAAc0vD,EAAYrpD,MAAMtH,KAAMiB,YAAc,EAClFoD,IAAMwsD,EAAWvpD,MAAMtH,KAAMiB,aAAc8vD,EAASzpD,MAAMtH,KAAMiB,YAAc,EAAI,GAAK,EAC3F,MAAO,CAAC2+C,GAAIv7C,GAAK6tB,EAAG4tB,GAAIz7C,GAAK6tB,IAG/B4B,EAAI28B,YAAc,SAAU1mD,GAC1B,OAAO9I,UAAUO,QAAUivD,EAA2B,mBAAN1mD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAO28B,GAG9F38B,EAAI68B,YAAc,SAAU5mD,GAC1B,OAAO9I,UAAUO,QAAUmvD,EAA2B,mBAAN5mD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAO68B,GAG9F78B,EAAI4+B,aAAe,SAAU3oD,GAC3B,OAAO9I,UAAUO,QAAUkxD,EAA4B,mBAAN3oD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAO4+B,GAG/F5+B,EAAI6+B,UAAY,SAAU5oD,GACxB,OAAO9I,UAAUO,QAAUmxD,EAAiB,MAAL5oD,EAAY,KAAoB,mBAANA,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAO6+B,GAG/G7+B,EAAI+8B,WAAa,SAAU9mD,GACzB,OAAO9I,UAAUO,QAAUqvD,EAA0B,mBAAN9mD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAO+8B,GAG7F/8B,EAAIi9B,SAAW,SAAUhnD,GACvB,OAAO9I,UAAUO,QAAUuvD,EAAwB,mBAANhnD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAOi9B,GAG3Fj9B,EAAIm9B,SAAW,SAAUlnD,GACvB,OAAO9I,UAAUO,QAAUyvD,EAAwB,mBAANlnD,EAAmBA,EAAI,IAAUA,GAAI+pB,GAAOm9B,GAG3Fn9B,EAAI8+B,QAAU,SAAU7oD,GACtB,OAAO9I,UAAUO,QAAUoxD,EAAe,MAAL7oD,EAAY,KAAOA,EAAG+pB,GAAO8+B,GAG7D9+B,GCrOL,GAAe,WACjB,SAASvpB,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GA0DT,IACI8sD,GAAa,CAAC,SAAU,SAExB,GAAe,GAAS,GAAI,GAAe3I,aAAc,CAC3D4I,OAAQ,CACN7pD,EAAG,EACH4pB,EAAG,GAELkgC,aAAc,GACdpuD,UAAW,GACXM,MAAO,GACPgrD,SAAU,IAYZ,SAAS+C,GAAUhrB,GACjB,IAAI/P,EAAS+P,EAAI/P,OACbszB,EAAQvjB,EAAIujB,MACZ0H,EAASjrB,EAAIirB,OACbC,GAAc,EAAI3H,EAAQ3+C,KAAKmxC,GAAK,EACpCoV,GAAe,EAAIF,EAASrmD,KAAKmxC,GAAK,EAC1C,OAAO,GAAS,GAAI/V,EAAK,CACvB/+B,EAAGgvB,EAASrrB,KAAKgyC,IAAIsU,GACrBrgC,EAAGoF,EAASrrB,KAAKkyC,IAAIoU,GACrB3H,MAAO2H,EACPD,OAAQE,IAIZ,IAAI,GAAY,SAAUC,GAGxB,SAASC,EAAU3uD,IA/FrB,SAAyBsf,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCA8FpB,CAAgBpH,KAAMq0D,GAEtB,IAAItvC,EA5FR,SAAoChP,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAuF5D,CAA2BlB,MAAOq0D,EAAUtoD,WAAanL,OAAOkL,eAAeuoD,IAAYnzD,KAAKlB,KAAM0F,IAE9G4uD,EAAavvC,EAAMwvC,kBAAkB7uD,GAKzC,OAHAqf,EAAMS,MAAQ,CACZ8uC,WAAYA,GAEPvvC,EA0JT,OArPF,SAAmBwC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAkE3G,CAAU6sC,EAAWD,GAerB,GAAaC,EAAW,CAAC,CACvBt0D,IAAK,4BACLU,MAAO,SAAmC+zD,GACxCx0D,KAAK+lB,SAAS,CACZuuC,WAAYt0D,KAAKu0D,kBAAkBC,OAWtC,CACDz0D,IAAK,oBACLU,MAAO,SAA2BiF,GAChC,IAAI+uD,EAAoBz0D,KAAK00D,sBAAsBhvD,GAE/CivD,EAAiBjP,GAA2BhgD,EAAOmuD,IACnDe,EAAoB7O,GAAqB,GAAS,GAAI0O,EAAmBE,GAAiBjvD,EAAMpE,KAAMuyD,IAC1G,OAAO,GAAS,GAAIY,EAAmBE,EAAgBC,KASxD,CACD70D,IAAK,wBACLU,MAAO,SAA+BiF,GACpC,IAAImvD,EAAanvD,EAAMmvD,WACnBC,EAAcpvD,EAAMovD,YACpB77B,EAASrrB,KAAKm3B,IAAI8vB,EAAa,EAAGC,EAAc,GACpD,MAAO,CACLC,YAAa,CAAC,EAAG97B,GACjB+7B,aAAc/7B,EACdg8B,UAAW,aAGd,CACDl1D,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdquD,EAAe3rC,EAAO2rC,aACtBpqB,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBmuD,EAAS1rC,EAAO0rC,OAChBxyD,EAAO8mB,EAAO9mB,KACd6zD,EAAgB/sC,EAAO+sC,cACvBC,EAAahtC,EAAOgtC,WACpBjM,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBgI,EAAW7oC,EAAO6oC,SAClBhrD,EAAQmiB,EAAOniB,MAEnB,IAAK3E,EACH,OAAO,KAGT,GAAIqoC,EAAW,CACb,IAAI0rB,EAAY/zD,EAAKsE,KAAI,SAAU6L,GACjC,OAAO,GAAS,GAAIA,MAEtB,OAAO,IAAMm4B,cAAc,IAAK,CAC9BjkC,UAAW,8CACV,IAAMikC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CACzDoiC,cAAe+lB,GACfvsD,KAAM+zD,IACJ,IAAMzrB,cAAcyqB,EAAW,GAAS,GAAIr0D,KAAK0F,MAAO,CAC1DikC,UAAW,KACXwrB,eAAe,EACf7zD,KAAM+zD,MACF,IAAMzrB,cAAcyqB,EAAW,GAAS,GAAIr0D,KAAK0F,MAAO,CAC5DikC,UAAW,KACXyrB,YAAY,EACZnvD,MAAO,CACLsL,OAAQ,WAKd,IAAI+iD,EAAat0D,KAAKwlB,MAAM8uC,WACxBgB,EAAehB,EAAWgB,aAE1Br8B,EAASksB,GAAoBmP,EAAY,UACzCiB,EAAUnQ,GAAgBkP,EAAY,UACtC/H,EAAQpH,GAAoBmP,EAAY,SACxCL,EAAS7O,GAAgBkP,EAAY,SAErChjD,EAAOtR,KAAKwqD,qBAAqB,SAAWxqD,KAAKwqD,qBAAqB,SAEtEj5C,EAASvR,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SAE1E5lB,EAAU5kC,KAAKwqD,qBAAqB,WAEpCvgD,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAElC,OAAO,IAAM5gB,cAAc,IAAK,CAC9BjkC,UAAW6vD,8CAA4B7vD,EACvC8vD,YAAaz1D,KAAKioD,wBAClByN,WAAY11D,KAAKgoD,uBACjB2N,QAAS31D,KAAK8nD,oBACd8N,cAAe51D,KAAKkoD,yBACpBtjB,QAASwwB,EAAa,EAAI,EAC1BS,cAAeV,EAAgB,OAAS,MACxCt0C,UAAW,cAAgBsoC,EAAal/C,EAAE6pD,IAAW,KAAO7K,EAAYp1B,EAAEigC,IAAW,KACpFxyD,EAAKsE,KAAI,SAAUojC,EAAKt+B,GACzB,IACIorD,EAAS,CACXrF,YAFa6E,EAAa,KAAOA,EAAa,GAEtB,EAAIC,EAAQvsB,GACpC2nB,YAAa13B,EAAO+P,GACpB6nB,WAAYoD,EAAOjrB,IAAQ,EAC3B+nB,SAAUxE,EAAMvjB,IAEd+sB,EAAY,KAAa9E,SAASA,GAClC+E,EAAWhtB,EAAI/iC,OAAS,GACxBgwD,EAAejtB,EAAIrjC,WAAa,GACpC,OAAO,IAAMikC,cAAc,OAAQ,CACjC3jC,MAAO,GAAS,CACd2+B,QAASA,GAAWA,EAAQoE,GAC5Bz3B,OAAQA,GAAUA,EAAOy3B,GACzB13B,KAAMA,GAAQA,EAAK03B,IAClB/iC,EAAO+vD,GACVL,QAAS,SAAiBvwD,GACxB,OAAO8vD,EAAO/M,mBAAmB6L,GAAUhrB,GAAM5jC,IAEnDwwD,cAAe,SAAuBxwD,GACpC,OAAO8vD,EAAOzM,wBAAwBuL,GAAUhrB,GAAM5jC,IAExDqwD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAO3M,uBAAuByL,GAAUhrB,GAAM5jC,IAEvDswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAO7M,sBAAsB2L,GAAUhrB,GAAM5jC,IAEtDrF,IAAK2K,EACL/E,UAAW6vD,mDAAiCzB,EAAe,IAAMkC,EACjExkD,EAAGskD,EAAUD,aAMdzB,EAvKO,CAwKd,IAEF,GAAUnJ,aAAe,GACzB,GAAUrhB,YAAc,YACT,UCxSf,SAASqsB,GAAOtD,GACd5yD,KAAKm2D,SAAWvD,EAGlBsD,GAAOr1D,UAAY,CACjBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKw2D,OAAS,GAEhBC,QAAS,YACHz2D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EAGhB,QACEx2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,MAMjB,mBACb,OAAO,IAAIqiC,GAAOtD,ICvCb,SAAS,GAAEtiC,GAChB,OAAOA,EAAE,GAEJ,SAAS,GAAEA,GAChB,OAAOA,EAAE,GCAI,kBACb,IAAIrmB,EAAI,GACJ4pB,EAAI,GACJ8iC,EAAU,IAAS,GACnB/D,EAAU,KACVgE,EAAQ,GACRzoB,EAAS,KAEb,SAAS0oB,EAAKv1D,GACZ,IAAIoJ,EAEA+G,EAEAkD,EAHAgE,EAAIrX,EAAKE,OAETs1D,GAAW,EAIf,IAFe,MAAXlE,IAAiBzkB,EAASyoB,EAAMjiD,EAAS,OAExCjK,EAAI,EAAGA,GAAKiO,IAAKjO,IACdA,EAAIiO,GAAKg+C,EAAQllD,EAAInQ,EAAKoJ,GAAIA,EAAGpJ,MAAWw1D,KAC5CA,GAAYA,GAAU3oB,EAAOooB,YAAiBpoB,EAAOsoB,WAGvDK,GAAU3oB,EAAOuoB,OAAOzsD,EAAEwH,EAAG/G,EAAGpJ,IAAQuyB,EAAEpiB,EAAG/G,EAAGpJ,IAGtD,GAAIqT,EAAQ,OAAOw5B,EAAS,KAAMx5B,EAAS,IAAM,KAuBnD,OApBAkiD,EAAK5sD,EAAI,SAAUF,GACjB,OAAO9I,UAAUO,QAAUyI,EAAiB,mBAANF,EAAmBA,EAAI,IAAUA,GAAI8sD,GAAQ5sD,GAGrF4sD,EAAKhjC,EAAI,SAAU9pB,GACjB,OAAO9I,UAAUO,QAAUqyB,EAAiB,mBAAN9pB,EAAmBA,EAAI,IAAUA,GAAI8sD,GAAQhjC,GAGrFgjC,EAAKF,QAAU,SAAU5sD,GACvB,OAAO9I,UAAUO,QAAUm1D,EAAuB,mBAAN5sD,EAAmBA,EAAI,KAAWA,GAAI8sD,GAAQF,GAG5FE,EAAKD,MAAQ,SAAU7sD,GACrB,OAAO9I,UAAUO,QAAUo1D,EAAQ7sD,EAAc,MAAX6oD,IAAoBzkB,EAASyoB,EAAMhE,IAAWiE,GAAQD,GAG9FC,EAAKjE,QAAU,SAAU7oD,GACvB,OAAO9I,UAAUO,QAAe,MAALuI,EAAY6oD,EAAUzkB,EAAS,KAAOA,EAASyoB,EAAMhE,EAAU7oD,GAAI8sD,GAAQjE,GAGjGiE,GC9CM,cACb,IAAI/kC,EAAK,GACLE,EAAK,KACLD,EAAK,GAAS,GACdE,EAAK,GACL0kC,EAAU,IAAS,GACnB/D,EAAU,KACVgE,EAAQ,GACRzoB,EAAS,KAEb,SAAS4oB,EAAKz1D,GACZ,IAAIoJ,EACA6Y,EACA7D,EAEAjO,EAEAkD,EAHAgE,EAAIrX,EAAKE,OAETs1D,GAAW,EAEXE,EAAM,IAAIrzD,MAAMgV,GAChBs+C,EAAM,IAAItzD,MAAMgV,GAGpB,IAFe,MAAXi6C,IAAiBzkB,EAASyoB,EAAMjiD,EAAS,OAExCjK,EAAI,EAAGA,GAAKiO,IAAKjO,EAAG,CACvB,KAAMA,EAAIiO,GAAKg+C,EAAQllD,EAAInQ,EAAKoJ,GAAIA,EAAGpJ,MAAWw1D,EAChD,GAAIA,GAAYA,EACdvzC,EAAI7Y,EACJyjC,EAAOioB,YACPjoB,EAAOooB,gBACF,CAIL,IAHApoB,EAAOsoB,UACPtoB,EAAOooB,YAEF72C,EAAIhV,EAAI,EAAGgV,GAAK6D,IAAK7D,EACxByuB,EAAOuoB,MAAMM,EAAIt3C,GAAIu3C,EAAIv3C,IAG3ByuB,EAAOsoB,UACPtoB,EAAOmoB,UAIPQ,IACFE,EAAItsD,IAAMonB,EAAGrgB,EAAG/G,EAAGpJ,GAAO21D,EAAIvsD,IAAMqnB,EAAGtgB,EAAG/G,EAAGpJ,GAC7C6sC,EAAOuoB,MAAM1kC,GAAMA,EAAGvgB,EAAG/G,EAAGpJ,GAAQ01D,EAAItsD,GAAIunB,GAAMA,EAAGxgB,EAAG/G,EAAGpJ,GAAQ21D,EAAIvsD,KAI3E,GAAIiK,EAAQ,OAAOw5B,EAAS,KAAMx5B,EAAS,IAAM,KAGnD,SAASuiD,IACP,OAAO,KAAOP,QAAQA,GAASC,MAAMA,GAAOhE,QAAQA,GAmDtD,OAhDAmE,EAAK9sD,EAAI,SAAUF,GACjB,OAAO9I,UAAUO,QAAUswB,EAAkB,mBAAN/nB,EAAmBA,EAAI,IAAUA,GAAIioB,EAAK,KAAM+kC,GAAQjlC,GAGjGilC,EAAKjlC,GAAK,SAAU/nB,GAClB,OAAO9I,UAAUO,QAAUswB,EAAkB,mBAAN/nB,EAAmBA,EAAI,IAAUA,GAAIgtD,GAAQjlC,GAGtFilC,EAAK/kC,GAAK,SAAUjoB,GAClB,OAAO9I,UAAUO,QAAUwwB,EAAU,MAALjoB,EAAY,KAAoB,mBAANA,EAAmBA,EAAI,IAAUA,GAAIgtD,GAAQ/kC,GAGzG+kC,EAAKljC,EAAI,SAAU9pB,GACjB,OAAO9I,UAAUO,QAAUuwB,EAAkB,mBAANhoB,EAAmBA,EAAI,IAAUA,GAAIkoB,EAAK,KAAM8kC,GAAQhlC,GAGjGglC,EAAKhlC,GAAK,SAAUhoB,GAClB,OAAO9I,UAAUO,QAAUuwB,EAAkB,mBAANhoB,EAAmBA,EAAI,IAAUA,GAAIgtD,GAAQhlC,GAGtFglC,EAAK9kC,GAAK,SAAUloB,GAClB,OAAO9I,UAAUO,QAAUywB,EAAU,MAALloB,EAAY,KAAoB,mBAANA,EAAmBA,EAAI,IAAUA,GAAIgtD,GAAQ9kC,GAGzG8kC,EAAKI,OAASJ,EAAKK,OAAS,WAC1B,OAAOF,IAAWjtD,EAAE6nB,GAAI+B,EAAE9B,IAG5BglC,EAAKM,OAAS,WACZ,OAAOH,IAAWjtD,EAAE6nB,GAAI+B,EAAE5B,IAG5B8kC,EAAKO,OAAS,WACZ,OAAOJ,IAAWjtD,EAAE+nB,GAAI6B,EAAE9B,IAG5BglC,EAAKJ,QAAU,SAAU5sD,GACvB,OAAO9I,UAAUO,QAAUm1D,EAAuB,mBAAN5sD,EAAmBA,EAAI,KAAWA,GAAIgtD,GAAQJ,GAG5FI,EAAKH,MAAQ,SAAU7sD,GACrB,OAAO9I,UAAUO,QAAUo1D,EAAQ7sD,EAAc,MAAX6oD,IAAoBzkB,EAASyoB,EAAMhE,IAAWmE,GAAQH,GAG9FG,EAAKnE,QAAU,SAAU7oD,GACvB,OAAO9I,UAAUO,QAAe,MAALuI,EAAY6oD,EAAUzkB,EAAS,KAAOA,EAASyoB,EAAMhE,EAAU7oD,GAAIgtD,GAAQnE,GAGjGmE,GC3GM,iBACb,OAAOzyD,EAAID,GAAK,EAAIC,EAAID,EAAI,EAAIC,GAAKD,EAAI,EAAIogC,KCDhC,eACb,OAAOhzB,GCIM,cACb,IAAIhR,EAAQ,GACRqsC,EAAa,GACb7tB,EAAO,KACP4xC,EAAa,GAAS,GACtBE,EAAW,GAAS,IACpBE,EAAW,GAAS,GAExB,SAASsG,EAAIj2D,GACX,IAAIoJ,EAEA6Y,EACA7D,EAMAwwC,EAGA1wC,EAXA7G,EAAIrX,EAAKE,OAGTkqC,EAAM,EACNnoC,EAAQ,IAAII,MAAMgV,GAClB6+C,EAAO,IAAI7zD,MAAMgV,GACjBs3C,GAAMY,EAAWvpD,MAAMtH,KAAMiB,WAC7BovD,EAAKziD,KAAKm3B,IAAI,GAAKn3B,KAAK4K,KAAK,GAAKu4C,EAASzpD,MAAMtH,KAAMiB,WAAagvD,IAEpE3/B,EAAI1iB,KAAKm3B,IAAIn3B,KAAKkS,IAAIuwC,GAAM13C,EAAGs4C,EAAS3pD,MAAMtH,KAAMiB,YACpDw2D,EAAKnnC,GAAK+/B,EAAK,GAAK,EAAI,GAG5B,IAAK3lD,EAAI,EAAGA,EAAIiO,IAAKjO,GACd8U,EAAIg4C,EAAKj0D,EAAMmH,GAAKA,IAAMjK,EAAMa,EAAKoJ,GAAIA,EAAGpJ,IAAS,IACxDoqC,GAAOlsB,GAWX,IANkB,MAAdstB,EAAoBvpC,EAAM0b,MAAK,SAAUvU,EAAG6Y,GAC9C,OAAOupB,EAAW0qB,EAAK9sD,GAAI8sD,EAAKj0C,OACd,MAARtE,GAAc1b,EAAM0b,MAAK,SAAUvU,EAAG6Y,GAChD,OAAOtE,EAAK3d,EAAKoJ,GAAIpJ,EAAKiiB,OAGvB7Y,EAAI,EAAGgV,EAAIgsB,GAAO2kB,EAAK13C,EAAI8+C,GAAM/rB,EAAM,EAAGhhC,EAAIiO,IAAKjO,EAAGulD,EAAKC,EAC9D3sC,EAAIhgB,EAAMmH,GAAiBwlD,EAAKD,IAAlBzwC,EAAIg4C,EAAKj0C,IAAmB,EAAI/D,EAAIE,EAAI,GAAK+3C,EAAID,EAAKj0C,GAAK,CACvEjiB,KAAMA,EAAKiiB,GACXhgB,MAAOmH,EACPjK,MAAO+e,EACPqxC,WAAYZ,EACZc,SAAUb,EACVe,SAAU3gC,GAId,OAAOknC,EA2BT,OAxBAD,EAAI92D,MAAQ,SAAUsJ,GACpB,OAAO9I,UAAUO,QAAUf,EAAqB,mBAANsJ,EAAmBA,EAAI,IAAUA,GAAIwtD,GAAO92D,GAGxF82D,EAAIzqB,WAAa,SAAU/iC,GACzB,OAAO9I,UAAUO,QAAUsrC,EAAa/iC,EAAGkV,EAAO,KAAMs4C,GAAOzqB,GAGjEyqB,EAAIt4C,KAAO,SAAUlV,GACnB,OAAO9I,UAAUO,QAAUyd,EAAOlV,EAAG+iC,EAAa,KAAMyqB,GAAOt4C,GAGjEs4C,EAAI1G,WAAa,SAAU9mD,GACzB,OAAO9I,UAAUO,QAAUqvD,EAA0B,mBAAN9mD,EAAmBA,EAAI,IAAUA,GAAIwtD,GAAO1G,GAG7F0G,EAAIxG,SAAW,SAAUhnD,GACvB,OAAO9I,UAAUO,QAAUuvD,EAAwB,mBAANhnD,EAAmBA,EAAI,IAAUA,GAAIwtD,GAAOxG,GAG3FwG,EAAItG,SAAW,SAAUlnD,GACvB,OAAO9I,UAAUO,QAAUyvD,EAAwB,mBAANlnD,EAAmBA,EAAI,IAAUA,GAAIwtD,GAAOtG,GAGpFsG,GC9EEG,GAAoBC,GAAY,IAE3C,SAASC,GAAOhB,GACd52D,KAAK63D,OAASjB,EAoBD,SAASe,GAAYf,GAClC,SAASkB,EAAOlF,GACd,OAAO,IAAIgF,GAAOhB,EAAMhE,IAI1B,OADAkF,EAAOD,OAASjB,EACTkB,EC5BF,SAASC,GAAW39C,GACzB,IAAIue,EAAIve,EAAEw8C,MAQV,OAPAx8C,EAAEmyC,MAAQnyC,EAAEnQ,SAAUmQ,EAAEnQ,EACxBmQ,EAAE6e,OAAS7e,EAAEyZ,SAAUzZ,EAAEyZ,EAEzBzZ,EAAEw8C,MAAQ,SAAU7sD,GAClB,OAAO9I,UAAUO,OAASm3B,EAAEg/B,GAAY5tD,IAAM4uB,IAAIk/B,QAG7Cz9C,EDJTw9C,GAAO/2D,UAAY,CACjBu1D,UAAW,WACTp2D,KAAK63D,OAAOzB,aAEdE,QAAS,WACPt2D,KAAK63D,OAAOvB,WAEdC,UAAW,WACTv2D,KAAK63D,OAAOtB,aAEdE,QAAS,WACPz2D,KAAK63D,OAAOpB,WAEdC,MAAO,SAAeryD,EAAG6tB,GACvBlyB,KAAK63D,OAAOnB,MAAMxkC,EAAItkB,KAAKkyC,IAAIz7C,GAAI6tB,GAAKtkB,KAAKgyC,IAAIv7C,MCRtC,kBACb,OAAO0zD,GAAW,KAAOnB,MAAMc,MCXlB,cACb,IAAIrzD,EAAI,KAAOuyD,MAAMc,IACjB/+B,EAAIt0B,EAAEuyD,MACN9kC,EAAKztB,EAAE8yD,OACPnlC,EAAK3tB,EAAEizD,OACPvlC,EAAK1tB,EAAE+yD,OACPnlC,EAAK5tB,EAAEgzD,OAwBX,OAvBAhzD,EAAEkoD,MAAQloD,EAAE4F,SAAU5F,EAAE4F,EACxB5F,EAAEwsD,WAAaxsD,EAAEytB,UAAWztB,EAAEytB,GAC9BztB,EAAE0sD,SAAW1sD,EAAE2tB,UAAW3tB,EAAE2tB,GAC5B3tB,EAAE40B,OAAS50B,EAAEwvB,SAAUxvB,EAAEwvB,EACzBxvB,EAAEosD,YAAcpsD,EAAE0tB,UAAW1tB,EAAE0tB,GAC/B1tB,EAAEssD,YAActsD,EAAE4tB,UAAW5tB,EAAE4tB,GAC/B5tB,EAAE2zD,eAAiB,WACjB,OAAOD,GAAWjmC,aACVztB,EAAE8yD,OACZ9yD,EAAE4zD,aAAe,WACf,OAAOF,GAAW/lC,aACV3tB,EAAEizD,OACZjzD,EAAE6zD,gBAAkB,WAClB,OAAOH,GAAWhmC,aACV1tB,EAAE+yD,OACZ/yD,EAAE8zD,gBAAkB,WAClB,OAAOJ,GAAW9lC,aACV5tB,EAAEgzD,OAEZhzD,EAAEuyD,MAAQ,SAAU7sD,GAClB,OAAO9I,UAAUO,OAASm3B,EAAEg/B,GAAY5tD,IAAM4uB,IAAIk/B,QAG7CxzD,GCjCM,iBACb,MAAO,EAAEwvB,GAAKA,GAAKjmB,KAAKgyC,IAAI31C,GAAK2D,KAAKmxC,GAAK,GAAIlrB,EAAIjmB,KAAKkyC,IAAI71C,KCDnD,GAAQtG,MAAM9C,UAAU6C,MCMnC,SAAS00D,GAAW3mD,GAClB,OAAOA,EAAEgJ,OAGX,SAAS49C,GAAW5mD,GAClB,OAAOA,EAAE1K,OAGX,SAAS,GAAK6vD,GACZ,IAAIn8C,EAAS29C,GACTrxD,EAASsxD,GACTpuD,EAAI,GACJ4pB,EAAI,GACJ++B,EAAU,KAEd,SAAS0F,IACP,IAAI3jD,EACA4jD,EAAO,GAAMr3D,KAAKD,WAClBqnB,EAAI7N,EAAOnT,MAAMtH,KAAMu4D,GACvBpyB,EAAIp/B,EAAOO,MAAMtH,KAAMu4D,GAG3B,GAFK3F,IAASA,EAAUj+C,EAAS,MACjCiiD,EAAMhE,GAAU3oD,EAAE3C,MAAMtH,MAAOu4D,EAAK,GAAKjwC,EAAGiwC,KAAS1kC,EAAEvsB,MAAMtH,KAAMu4D,IAAQtuD,EAAE3C,MAAMtH,MAAOu4D,EAAK,GAAKpyB,EAAGoyB,KAAS1kC,EAAEvsB,MAAMtH,KAAMu4D,IAC1H5jD,EAAQ,OAAOi+C,EAAU,KAAMj+C,EAAS,IAAM,KAuBpD,OApBA2jD,EAAK79C,OAAS,SAAU1Q,GACtB,OAAO9I,UAAUO,QAAUiZ,EAAS1Q,EAAGuuD,GAAQ79C,GAGjD69C,EAAKvxD,OAAS,SAAUgD,GACtB,OAAO9I,UAAUO,QAAUuF,EAASgD,EAAGuuD,GAAQvxD,GAGjDuxD,EAAKruD,EAAI,SAAUF,GACjB,OAAO9I,UAAUO,QAAUyI,EAAiB,mBAANF,EAAmBA,EAAI,IAAUA,GAAIuuD,GAAQruD,GAGrFquD,EAAKzkC,EAAI,SAAU9pB,GACjB,OAAO9I,UAAUO,QAAUqyB,EAAiB,mBAAN9pB,EAAmBA,EAAI,IAAUA,GAAIuuD,GAAQzkC,GAGrFykC,EAAK1F,QAAU,SAAU7oD,GACvB,OAAO9I,UAAUO,QAAUoxD,EAAe,MAAL7oD,EAAY,KAAOA,EAAGuuD,GAAQ1F,GAG9D0F,EAGT,SAASE,GAAgB5F,EAAS9gC,EAAIC,EAAIC,EAAIC,GAC5C2gC,EAAQjE,OAAO78B,EAAIC,GACnB6gC,EAAQ7D,cAAcj9B,GAAMA,EAAKE,GAAM,EAAGD,EAAID,EAAIG,EAAID,EAAIC,GAG5D,SAASwmC,GAAc7F,EAAS9gC,EAAIC,EAAIC,EAAIC,GAC1C2gC,EAAQjE,OAAO78B,EAAIC,GACnB6gC,EAAQ7D,cAAcj9B,EAAIC,GAAMA,EAAKE,GAAM,EAAGD,EAAID,EAAIC,EAAIC,GAG5D,SAAS,GAAY2gC,EAAS9gC,EAAIC,EAAIC,EAAIC,GACxC,IAAIshC,EAAKmF,GAAY5mC,EAAIC,GACrByhC,EAAKkF,GAAY5mC,EAAIC,GAAMA,EAAKE,GAAM,GACtC0mC,EAAKD,GAAY1mC,EAAID,GACrB6mC,EAAKF,GAAY1mC,EAAIC,GACzB2gC,EAAQjE,OAAO4E,EAAG,GAAIA,EAAG,IACzBX,EAAQ7D,cAAcyE,EAAG,GAAIA,EAAG,GAAImF,EAAG,GAAIA,EAAG,GAAIC,EAAG,GAAIA,EAAG,IAGvD,SAASC,KACd,OAAO,GAAKL,IAEP,SAASM,KACd,OAAO,GAAKL,IAEP,SAASM,KACd,IAAI3+C,EAAI,GAAK,IAGb,OAFAA,EAAEmyC,MAAQnyC,EAAEnQ,SAAUmQ,EAAEnQ,EACxBmQ,EAAE6e,OAAS7e,EAAEyZ,SAAUzZ,EAAEyZ,EAClBzZ,EClFM,QACb4+C,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIuwB,EAAItkB,KAAKinB,KAAKlzB,EAAO,IACzBixD,EAAQjE,OAAOz8B,EAAG,GAClB0gC,EAAQ9+B,IAAI,EAAG,EAAG5B,EAAG,EAAG,MCLb,IACb8mC,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIuwB,EAAItkB,KAAKinB,KAAKlzB,EAAO,GAAK,EAC9BixD,EAAQjE,QAAQ,EAAIz8B,GAAIA,GACxB0gC,EAAQ/D,QAAQ38B,GAAIA,GACpB0gC,EAAQ/D,QAAQ38B,GAAI,EAAIA,GACxB0gC,EAAQ/D,OAAO38B,GAAI,EAAIA,GACvB0gC,EAAQ/D,OAAO38B,GAAIA,GACnB0gC,EAAQ/D,OAAO,EAAI38B,GAAIA,GACvB0gC,EAAQ/D,OAAO,EAAI38B,EAAGA,GACtB0gC,EAAQ/D,OAAO38B,EAAGA,GAClB0gC,EAAQ/D,OAAO38B,EAAG,EAAIA,GACtB0gC,EAAQ/D,QAAQ38B,EAAG,EAAIA,GACvB0gC,EAAQ/D,QAAQ38B,EAAGA,GACnB0gC,EAAQ/D,QAAQ,EAAI38B,EAAGA,GACvB0gC,EAAQhE,cCfRqK,GAAQrrD,KAAKinB,KAAK,EAAI,GACtBqkC,GAAkB,EAARD,GACC,IACbD,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIkyB,EAAIjmB,KAAKinB,KAAKlzB,EAAOu3D,IACrBjvD,EAAI4pB,EAAIolC,GACZrG,EAAQjE,OAAO,GAAI96B,GACnB++B,EAAQ/D,OAAO5kD,EAAG,GAClB2oD,EAAQ/D,OAAO,EAAGh7B,GAClB++B,EAAQ/D,QAAQ5kD,EAAG,GACnB2oD,EAAQhE,cCRRuK,GAAKvrD,KAAKkyC,IAAI,GAAK,IAAMlyC,KAAKkyC,IAAI,EAAI,GAAK,IAC3CsZ,GAAKxrD,KAAKkyC,IAAI,GAAM,IAAMqZ,GAC1B,IAAMvrD,KAAKgyC,IAAI,GAAM,IAAMuZ,GAChB,IACbH,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIuwB,EAAItkB,KAAKinB,KANR,kBAMalzB,GACdsI,EAAImvD,GAAKlnC,EACT2B,EAAI,GAAK3B,EACb0gC,EAAQjE,OAAO,GAAIz8B,GACnB0gC,EAAQ/D,OAAO5kD,EAAG4pB,GAElB,IAAK,IAAInpB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIrG,EAAI,GAAMqG,EAAI,EACdiuB,EAAI/qB,KAAKgyC,IAAIv7C,GACbikB,EAAI1a,KAAKkyC,IAAIz7C,GACjBuuD,EAAQ/D,OAAOvmC,EAAI4J,GAAIyG,EAAIzG,GAC3B0gC,EAAQ/D,OAAOl2B,EAAI1uB,EAAIqe,EAAIuL,EAAGvL,EAAIre,EAAI0uB,EAAI9E,GAG5C++B,EAAQhE,cCrBG,IACboK,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIg1C,EAAI/oC,KAAKinB,KAAKlzB,GACdsI,GAAK0sC,EAAI,EACbic,EAAQrJ,KAAKt/C,EAAGA,EAAG0sC,EAAGA,KCJtB0iB,GAAQzrD,KAAKinB,KAAK,GACP,IACbmkC,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIkyB,GAAKjmB,KAAKinB,KAAKlzB,GAAgB,EAAR03D,KAC3BzG,EAAQjE,OAAO,EAAO,EAAJ96B,GAClB++B,EAAQ/D,QAAQwK,GAAQxlC,GAAIA,GAC5B++B,EAAQ/D,OAAOwK,GAAQxlC,GAAIA,GAC3B++B,EAAQhE,cCNR,GAAIhhD,KAAKinB,KAAK,GAAK,EACnB,GAAI,EAAIjnB,KAAKinB,KAAK,IAClB,GAAkB,GAAb,GAAI,EAAI,GACF,IACbmkC,KAAM,SAAcpG,EAASjxD,GAC3B,IAAIuwB,EAAItkB,KAAKinB,KAAKlzB,EAAO,IACrBmwB,EAAKI,EAAI,EACTH,EAAKG,EAAI,GACTF,EAAKF,EACLG,EAAKC,EAAI,GAAIA,EACb88B,GAAMh9B,EACNi9B,EAAKh9B,EACT2gC,EAAQjE,OAAO78B,EAAIC,GACnB6gC,EAAQ/D,OAAO78B,EAAIC,GACnB2gC,EAAQ/D,OAAOG,EAAIC,GACnB2D,EAAQ/D,QAhBJ,GAgBe/8B,EAAK,GAAIC,EAAI,GAAID,GAhBhC,GAgByCC,GAC7C6gC,EAAQ/D,QAjBJ,GAiBe78B,EAAK,GAAIC,EAAI,GAAID,GAjBhC,GAiByCC,GAC7C2gC,EAAQ/D,QAlBJ,GAkBeG,EAAK,GAAIC,EAAI,GAAID,GAlBhC,GAkByCC,GAC7C2D,EAAQ/D,QAnBJ,GAmBe/8B,EAAK,GAAIC,GAnBxB,GAmBgCA,EAAK,GAAID,GAC7C8gC,EAAQ/D,QApBJ,GAoBe78B,EAAK,GAAIC,GApBxB,GAoBgCA,EAAK,GAAID,GAC7C4gC,EAAQ/D,QArBJ,GAqBeG,EAAK,GAAIC,GArBxB,GAqBgCA,EAAK,GAAID,GAC7C4D,EAAQhE,cCbD0K,GAAU,CAAC,GAAQ,GAAOC,GAASC,GAAQC,GAAMC,GAAUC,IACvD,cACb,IAAI7uD,EAAO,GAAS,IAChBnJ,EAAO,GAAS,IAChBixD,EAAU,KAEd,SAASh8C,IACP,IAAIjC,EAGJ,GAFKi+C,IAASA,EAAUj+C,EAAS,MACjC7J,EAAKxD,MAAMtH,KAAMiB,WAAW+3D,KAAKpG,GAAUjxD,EAAK2F,MAAMtH,KAAMiB,YACxD0T,EAAQ,OAAOi+C,EAAU,KAAMj+C,EAAS,IAAM,KAepD,OAZAiC,EAAO9L,KAAO,SAAUf,GACtB,OAAO9I,UAAUO,QAAUsJ,EAAoB,mBAANf,EAAmBA,EAAI,GAASA,GAAI6M,GAAU9L,GAGzF8L,EAAOjV,KAAO,SAAUoI,GACtB,OAAO9I,UAAUO,QAAUG,EAAoB,mBAANoI,EAAmBA,EAAI,IAAUA,GAAI6M,GAAUjV,GAG1FiV,EAAOg8C,QAAU,SAAU7oD,GACzB,OAAO9I,UAAUO,QAAUoxD,EAAe,MAAL7oD,EAAY,KAAOA,EAAG6M,GAAUg8C,GAGhEh8C,GClCM,gBCAf,SAAS4/C,GAAO57C,EAAM3Q,EAAG4pB,GACvBjZ,EAAKu7C,SAASpH,eAAe,EAAIn0C,EAAK2zC,IAAM3zC,EAAK6zC,KAAO,GAAI,EAAI7zC,EAAK4zC,IAAM5zC,EAAK8zC,KAAO,GAAI9zC,EAAK2zC,IAAM,EAAI3zC,EAAK6zC,KAAO,GAAI7zC,EAAK4zC,IAAM,EAAI5zC,EAAK8zC,KAAO,GAAI9zC,EAAK2zC,IAAM,EAAI3zC,EAAK6zC,IAAMxkD,GAAK,GAAI2Q,EAAK4zC,IAAM,EAAI5zC,EAAK8zC,IAAM76B,GAAK,GAItN,SAAS+lC,GAAMhH,GACpB5yD,KAAKm2D,SAAWvD,EAElBgH,GAAM/4D,UAAY,CAChBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAKwuD,IAAMxuD,KAAK0uD,IAAMjqB,IAC5CzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EACHA,GAAOx2D,KAAMA,KAAKyuD,IAAKzuD,KAAK0uD,KAI9B,KAAK,EACH1uD,KAAKm2D,SAAStH,OAAO7uD,KAAKyuD,IAAKzuD,KAAK0uD,MAKpC1uD,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EAEdx2D,KAAKm2D,SAAStH,QAAQ,EAAI7uD,KAAKuuD,IAAMvuD,KAAKyuD,KAAO,GAAI,EAAIzuD,KAAKwuD,IAAMxuD,KAAK0uD,KAAO,GAIlF,QACE8H,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMxkD,EAChCjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM76B,IAGrB,mBACb,OAAO,IAAI+lC,GAAMhH,IC/DnB,SAASiH,GAAYjH,GACnB5yD,KAAKm2D,SAAWvD,EAGlBiH,GAAYh5D,UAAY,CACtBu1D,UAAW0D,GACXxD,QAASwD,GACTvD,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKg6D,IAAMh6D,KAAKi6D,IAAMj6D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMl6D,KAAKm6D,IAAMn6D,KAAKo6D,IAAM31B,IAC9GzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EAEDx2D,KAAKm2D,SAASxH,OAAO3uD,KAAK+5D,IAAK/5D,KAAKk6D,KAEpCl6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAKm2D,SAASxH,QAAQ3uD,KAAK+5D,IAAM,EAAI/5D,KAAKg6D,KAAO,GAAIh6D,KAAKk6D,IAAM,EAAIl6D,KAAKm6D,KAAO,GAEhFn6D,KAAKm2D,SAAStH,QAAQ7uD,KAAKg6D,IAAM,EAAIh6D,KAAK+5D,KAAO,GAAI/5D,KAAKm6D,IAAM,EAAIn6D,KAAKk6D,KAAO,GAEhFl6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAK02D,MAAM12D,KAAK+5D,IAAK/5D,KAAKk6D,KAC1Bl6D,KAAK02D,MAAM12D,KAAKg6D,IAAKh6D,KAAKm6D,KAC1Bn6D,KAAK02D,MAAM12D,KAAKi6D,IAAKj6D,KAAKo6D,OAKlC1D,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAK+5D,IAAM9vD,EAAGjK,KAAKk6D,IAAMrmC,EACzB,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACdx2D,KAAKg6D,IAAM/vD,EAAGjK,KAAKm6D,IAAMtmC,EACzB,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACdx2D,KAAKi6D,IAAMhwD,EAAGjK,KAAKo6D,IAAMvmC,EAEzB7zB,KAAKm2D,SAASxH,QAAQ3uD,KAAKuuD,IAAM,EAAIvuD,KAAKyuD,IAAMxkD,GAAK,GAAIjK,KAAKwuD,IAAM,EAAIxuD,KAAK0uD,IAAM76B,GAAK,GAExF,MAEF,QACE2iC,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMxkD,EAChCjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM76B,IAGrB,mBACb,OAAO,IAAIgmC,GAAYjH,IC5EzB,SAASyH,GAAUzH,GACjB5yD,KAAKm2D,SAAWvD,EAGlByH,GAAUx5D,UAAY,CACpBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAKwuD,IAAMxuD,KAAK0uD,IAAMjqB,IAC5CzkC,KAAKw2D,OAAS,GAEhBC,QAAS,YACHz2D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,IAAI1kC,GAAM9xB,KAAKuuD,IAAM,EAAIvuD,KAAKyuD,IAAMxkD,GAAK,EACrC8nB,GAAM/xB,KAAKwuD,IAAM,EAAIxuD,KAAK0uD,IAAM76B,GAAK,EACzC7zB,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO/8B,EAAIC,GAAM/xB,KAAKm2D,SAASxH,OAAO78B,EAAIC,GACrE,MAEF,KAAK,EACH/xB,KAAKw2D,OAAS,EAGhB,QACEA,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMxkD,EAChCjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM76B,IAGrB,mBACb,OAAO,IAAIwmC,GAAUzH,ICrDvB,SAAS0H,GAAO1H,EAAS2H,GACvBv6D,KAAKw6D,OAAS,IAAIZ,GAAMhH,GACxB5yD,KAAKy6D,MAAQF,EAGfD,GAAOz5D,UAAY,CACjB01D,UAAW,WACTv2D,KAAK8vC,GAAK,GACV9vC,KAAK06D,GAAK,GAEV16D,KAAKw6D,OAAOjE,aAEdE,QAAS,WACP,IAAIxsD,EAAIjK,KAAK8vC,GACTjc,EAAI7zB,KAAK06D,GACTn3C,EAAItZ,EAAEzI,OAAS,EAEnB,GAAI+hB,EAAI,EAQN,IAPA,IAKI4iB,EALArU,EAAK7nB,EAAE,GACP8nB,EAAK8B,EAAE,GACPtB,EAAKtoB,EAAEsZ,GAAKuO,EACZU,EAAKqB,EAAEtQ,GAAKwO,EACZrnB,GAAK,IAGAA,GAAK6Y,GACZ4iB,EAAIz7B,EAAI6Y,EAERvjB,KAAKw6D,OAAO9D,MAAM12D,KAAKy6D,MAAQxwD,EAAES,IAAM,EAAI1K,KAAKy6D,QAAU3oC,EAAKqU,EAAI5T,GAAKvyB,KAAKy6D,MAAQ5mC,EAAEnpB,IAAM,EAAI1K,KAAKy6D,QAAU1oC,EAAKoU,EAAI3T,IAI7HxyB,KAAK8vC,GAAK9vC,KAAK06D,GAAK,KAEpB16D,KAAKw6D,OAAO/D,WAEdC,MAAO,SAAezsD,EAAG4pB,GACvB7zB,KAAK8vC,GAAGpuC,MAAMuI,GAEdjK,KAAK06D,GAAGh5D,MAAMmyB,KAGH,qBACb,SAAS8mC,EAAO/H,GACd,OAAgB,IAAT2H,EAAa,IAAIX,GAAMhH,GAAW,IAAI0H,GAAO1H,EAAS2H,GAO/D,OAJAI,EAAOJ,KAAO,SAAUA,GACtB,OAAOK,GAAQL,IAGVI,EATM,CAUZ,KCtDH,SAAS,GAAO//C,EAAM3Q,EAAG4pB,GACvBjZ,EAAKu7C,SAASpH,cAAcn0C,EAAK6zC,IAAM7zC,EAAKigD,IAAMjgD,EAAKm/C,IAAMn/C,EAAK2zC,KAAM3zC,EAAK8zC,IAAM9zC,EAAKigD,IAAMjgD,EAAKs/C,IAAMt/C,EAAK4zC,KAAM5zC,EAAKm/C,IAAMn/C,EAAKigD,IAAMjgD,EAAK6zC,IAAMxkD,GAAI2Q,EAAKs/C,IAAMt/C,EAAKigD,IAAMjgD,EAAK8zC,IAAM76B,GAAIjZ,EAAKm/C,IAAKn/C,EAAKs/C,KAIxM,SAASY,GAASlI,EAASmI,GAChC/6D,KAAKm2D,SAAWvD,EAChB5yD,KAAK66D,IAAM,EAAIE,GAAW,EAE5BD,GAASj6D,UAAY,CACnBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMz1B,IAClEzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKm2D,SAAStH,OAAO7uD,KAAK+5D,IAAK/5D,KAAKk6D,KAEpC,MAEF,KAAK,EACH,GAAOl6D,KAAMA,KAAKyuD,IAAKzuD,KAAK0uD,MAK5B1uD,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACdx2D,KAAKyuD,IAAMxkD,EAAGjK,KAAK0uD,IAAM76B,EACzB,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EAGhB,QACE,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmnC,EAASpI,GAChB,OAAO,IAAIkI,GAASlI,EAASmI,GAO/B,OAJAC,EAASD,QAAU,SAAUA,GAC3B,OAAOH,GAAQG,IAGVC,EATM,CAUZ,GCxEI,SAASC,GAAerI,EAASmI,GACtC/6D,KAAKm2D,SAAWvD,EAChB5yD,KAAK66D,IAAM,EAAIE,GAAW,EAE5BE,GAAep6D,UAAY,CACzBu1D,UAAW0D,GACXxD,QAASwD,GACTvD,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKg6D,IAAMh6D,KAAKi6D,IAAMj6D,KAAKk7D,IAAMl7D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMl6D,KAAKm6D,IAAMn6D,KAAKo6D,IAAMp6D,KAAKm7D,IAAM12B,IACpIzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EAEDx2D,KAAKm2D,SAASxH,OAAO3uD,KAAKg6D,IAAKh6D,KAAKm6D,KAEpCn6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAKm2D,SAAStH,OAAO7uD,KAAKg6D,IAAKh6D,KAAKm6D,KAEpCn6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAK02D,MAAM12D,KAAKg6D,IAAKh6D,KAAKm6D,KAC1Bn6D,KAAK02D,MAAM12D,KAAKi6D,IAAKj6D,KAAKo6D,KAC1Bp6D,KAAK02D,MAAM12D,KAAKk7D,IAAKl7D,KAAKm7D,OAKlCzE,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKg6D,IAAM/vD,EAAGjK,KAAKm6D,IAAMtmC,EACzB,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EAEdx2D,KAAKm2D,SAASxH,OAAO3uD,KAAKi6D,IAAMhwD,EAAGjK,KAAKo6D,IAAMvmC,GAE9C,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACdx2D,KAAKk7D,IAAMjxD,EAAGjK,KAAKm7D,IAAMtnC,EACzB,MAEF,QACE,GAAO7zB,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmnC,EAASpI,GAChB,OAAO,IAAIqI,GAAerI,EAASmI,GAOrC,OAJAC,EAASD,QAAU,SAAUA,GAC3B,OAAOH,GAAQG,IAGVC,EATM,CAUZ,GClFI,SAASI,GAAaxI,EAASmI,GACpC/6D,KAAKm2D,SAAWvD,EAChB5yD,KAAK66D,IAAM,EAAIE,GAAW,EAE5BK,GAAav6D,UAAY,CACvBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMz1B,IAClEzkC,KAAKw2D,OAAS,GAEhBC,QAAS,YACHz2D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO7uD,KAAK+5D,IAAK/5D,KAAKk6D,KAAOl6D,KAAKm2D,SAASxH,OAAO3uD,KAAK+5D,IAAK/5D,KAAKk6D,KAC5F,MAEF,KAAK,EACHl6D,KAAKw2D,OAAS,EAGhB,QACE,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmnC,EAASpI,GAChB,OAAO,IAAIwI,GAAaxI,EAASmI,GAOnC,OAJAC,EAASD,QAAU,SAAUA,GAC3B,OAAOH,GAAQG,IAGVC,EATM,CAUZ,GC1DH,SAAS,GAAOpgD,EAAM3Q,EAAG4pB,GACvB,IAAI7B,EAAKpX,EAAK6zC,IACVx8B,EAAKrX,EAAK8zC,IACVM,EAAKp0C,EAAKm/C,IACV9K,EAAKr0C,EAAKs/C,IAEd,GAAIt/C,EAAKygD,OhCFU,MgCEQ,CACzB,IAAIh3D,EAAI,EAAIuW,EAAK0gD,QAAU,EAAI1gD,EAAKygD,OAASzgD,EAAK2gD,OAAS3gD,EAAK4gD,QAC5D7iD,EAAI,EAAIiC,EAAKygD,QAAUzgD,EAAKygD,OAASzgD,EAAK2gD,QAC9CvpC,GAAMA,EAAK3tB,EAAIuW,EAAK2zC,IAAM3zC,EAAK4gD,QAAU5gD,EAAKm/C,IAAMn/C,EAAK0gD,SAAW3iD,EACpEsZ,GAAMA,EAAK5tB,EAAIuW,EAAK4zC,IAAM5zC,EAAK4gD,QAAU5gD,EAAKs/C,IAAMt/C,EAAK0gD,SAAW3iD,EAGtE,GAAIiC,EAAK6gD,OhCTU,MgCSQ,CACzB,IAAIn3D,EAAI,EAAIsW,EAAK8gD,QAAU,EAAI9gD,EAAK6gD,OAAS7gD,EAAK2gD,OAAS3gD,EAAK4gD,QAC5DrkC,EAAI,EAAIvc,EAAK6gD,QAAU7gD,EAAK6gD,OAAS7gD,EAAK2gD,QAC9CvM,GAAMA,EAAK1qD,EAAIsW,EAAK6zC,IAAM7zC,EAAK8gD,QAAUzxD,EAAI2Q,EAAK4gD,SAAWrkC,EAC7D83B,GAAMA,EAAK3qD,EAAIsW,EAAK8zC,IAAM9zC,EAAK8gD,QAAU7nC,EAAIjZ,EAAK4gD,SAAWrkC,EAG/Dvc,EAAKu7C,SAASpH,cAAc/8B,EAAIC,EAAI+8B,EAAIC,EAAIr0C,EAAKm/C,IAAKn/C,EAAKs/C,KAK7D,SAASyB,GAAW/I,EAASgJ,GAC3B57D,KAAKm2D,SAAWvD,EAChB5yD,KAAK67D,OAASD,EAGhBD,GAAW96D,UAAY,CACrBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMz1B,IAClEzkC,KAAKq7D,OAASr7D,KAAKu7D,OAASv7D,KAAKy7D,OAASz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAAUx7D,KAAK07D,QAAU17D,KAAKw2D,OAAS,GAEvGC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKm2D,SAAStH,OAAO7uD,KAAK+5D,IAAK/5D,KAAKk6D,KAEpC,MAEF,KAAK,EACHl6D,KAAK02D,MAAM12D,KAAK+5D,IAAK/5D,KAAKk6D,MAI1Bl6D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,GAFA5pB,GAAKA,EAAG4pB,GAAKA,EAET7zB,KAAKw2D,OAAQ,CACf,IAAIsF,EAAM97D,KAAK+5D,IAAM9vD,EACjB8xD,EAAM/7D,KAAKk6D,IAAMrmC,EACrB7zB,KAAKy7D,OAAS7tD,KAAKinB,KAAK70B,KAAK07D,QAAU9tD,KAAKo4B,IAAI81B,EAAMA,EAAMC,EAAMA,EAAK/7D,KAAK67D,SAG9E,OAAQ77D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EAGhB,QACE,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKq7D,OAASr7D,KAAKu7D,OAAQv7D,KAAKu7D,OAASv7D,KAAKy7D,OAC9Cz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAASx7D,KAAKw7D,QAAUx7D,KAAK07D,QACjD17D,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmoC,EAAWpJ,GAClB,OAAOgJ,EAAQ,IAAID,GAAW/I,EAASgJ,GAAS,IAAId,GAASlI,EAAS,GAOxE,OAJAoJ,EAAWJ,MAAQ,SAAUA,GAC3B,OAAOhB,GAAQgB,IAGVI,EATM,CAUZ,ICpGH,SAASC,GAAiBrJ,EAASgJ,GACjC57D,KAAKm2D,SAAWvD,EAChB5yD,KAAK67D,OAASD,EAGhBK,GAAiBp7D,UAAY,CAC3Bu1D,UAAW0D,GACXxD,QAASwD,GACTvD,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKg6D,IAAMh6D,KAAKi6D,IAAMj6D,KAAKk7D,IAAMl7D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMl6D,KAAKm6D,IAAMn6D,KAAKo6D,IAAMp6D,KAAKm7D,IAAM12B,IACpIzkC,KAAKq7D,OAASr7D,KAAKu7D,OAASv7D,KAAKy7D,OAASz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAAUx7D,KAAK07D,QAAU17D,KAAKw2D,OAAS,GAEvGC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EAEDx2D,KAAKm2D,SAASxH,OAAO3uD,KAAKg6D,IAAKh6D,KAAKm6D,KAEpCn6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAKm2D,SAAStH,OAAO7uD,KAAKg6D,IAAKh6D,KAAKm6D,KAEpCn6D,KAAKm2D,SAASvH,YAEd,MAGJ,KAAK,EAED5uD,KAAK02D,MAAM12D,KAAKg6D,IAAKh6D,KAAKm6D,KAC1Bn6D,KAAK02D,MAAM12D,KAAKi6D,IAAKj6D,KAAKo6D,KAC1Bp6D,KAAK02D,MAAM12D,KAAKk7D,IAAKl7D,KAAKm7D,OAKlCzE,MAAO,SAAezsD,EAAG4pB,GAGvB,GAFA5pB,GAAKA,EAAG4pB,GAAKA,EAET7zB,KAAKw2D,OAAQ,CACf,IAAIsF,EAAM97D,KAAK+5D,IAAM9vD,EACjB8xD,EAAM/7D,KAAKk6D,IAAMrmC,EACrB7zB,KAAKy7D,OAAS7tD,KAAKinB,KAAK70B,KAAK07D,QAAU9tD,KAAKo4B,IAAI81B,EAAMA,EAAMC,EAAMA,EAAK/7D,KAAK67D,SAG9E,OAAQ77D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKg6D,IAAM/vD,EAAGjK,KAAKm6D,IAAMtmC,EACzB,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EAEdx2D,KAAKm2D,SAASxH,OAAO3uD,KAAKi6D,IAAMhwD,EAAGjK,KAAKo6D,IAAMvmC,GAE9C,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACdx2D,KAAKk7D,IAAMjxD,EAAGjK,KAAKm7D,IAAMtnC,EACzB,MAEF,QACE,GAAO7zB,KAAMiK,EAAG4pB,GAKpB7zB,KAAKq7D,OAASr7D,KAAKu7D,OAAQv7D,KAAKu7D,OAASv7D,KAAKy7D,OAC9Cz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAASx7D,KAAKw7D,QAAUx7D,KAAK07D,QACjD17D,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmoC,EAAWpJ,GAClB,OAAOgJ,EAAQ,IAAIK,GAAiBrJ,EAASgJ,GAAS,IAAIX,GAAerI,EAAS,GAOpF,OAJAoJ,EAAWJ,MAAQ,SAAUA,GAC3B,OAAOhB,GAAQgB,IAGVI,EATM,CAUZ,IC3FH,SAASE,GAAetJ,EAASgJ,GAC/B57D,KAAKm2D,SAAWvD,EAChB5yD,KAAK67D,OAASD,EAGhBM,GAAer7D,UAAY,CACzBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAM/5D,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAKk6D,IAAMz1B,IAClEzkC,KAAKq7D,OAASr7D,KAAKu7D,OAASv7D,KAAKy7D,OAASz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAAUx7D,KAAK07D,QAAU17D,KAAKw2D,OAAS,GAEvGC,QAAS,YACHz2D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GAGvB,GAFA5pB,GAAKA,EAAG4pB,GAAKA,EAET7zB,KAAKw2D,OAAQ,CACf,IAAIsF,EAAM97D,KAAK+5D,IAAM9vD,EACjB8xD,EAAM/7D,KAAKk6D,IAAMrmC,EACrB7zB,KAAKy7D,OAAS7tD,KAAKinB,KAAK70B,KAAK07D,QAAU9tD,KAAKo4B,IAAI81B,EAAMA,EAAMC,EAAMA,EAAK/7D,KAAK67D,SAG9E,OAAQ77D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO7uD,KAAK+5D,IAAK/5D,KAAKk6D,KAAOl6D,KAAKm2D,SAASxH,OAAO3uD,KAAK+5D,IAAK/5D,KAAKk6D,KAC5F,MAEF,KAAK,EACHl6D,KAAKw2D,OAAS,EAGhB,QACE,GAAOx2D,KAAMiK,EAAG4pB,GAKpB7zB,KAAKq7D,OAASr7D,KAAKu7D,OAAQv7D,KAAKu7D,OAASv7D,KAAKy7D,OAC9Cz7D,KAAKs7D,QAAUt7D,KAAKw7D,QAASx7D,KAAKw7D,QAAUx7D,KAAK07D,QACjD17D,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMzuD,KAAK+5D,IAAK/5D,KAAK+5D,IAAM9vD,EACrDjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM1uD,KAAKk6D,IAAKl6D,KAAKk6D,IAAMrmC,IAG1C,qBACb,SAASmoC,EAAWpJ,GAClB,OAAOgJ,EAAQ,IAAIM,GAAetJ,EAASgJ,GAAS,IAAIR,GAAaxI,EAAS,GAOhF,OAJAoJ,EAAWJ,MAAQ,SAAUA,GAC3B,OAAOhB,GAAQgB,IAGVI,EATM,CAUZ,ICtEH,SAASG,GAAavJ,GACpB5yD,KAAKm2D,SAAWvD,EAGlBuJ,GAAat7D,UAAY,CACvBu1D,UAAW0D,GACXxD,QAASwD,GACTvD,UAAW,WACTv2D,KAAKw2D,OAAS,GAEhBC,QAAS,WACHz2D,KAAKw2D,QAAQx2D,KAAKm2D,SAASvH,aAEjC8H,MAAO,SAAezsD,EAAG4pB,GACvB5pB,GAAKA,EAAG4pB,GAAKA,EACT7zB,KAAKw2D,OAAQx2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,IAAQ7zB,KAAKw2D,OAAS,EAAGx2D,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,MAG/E,mBACb,OAAO,IAAIsoC,GAAavJ,ICrB1B,SAAS,GAAK3oD,GACZ,OAAOA,EAAI,GAAK,EAAI,EAOtB,SAASmyD,GAAOxhD,EAAMo0C,EAAIC,GACxB,IAAIoN,EAAKzhD,EAAK6zC,IAAM7zC,EAAK2zC,IACrB+N,EAAKtN,EAAKp0C,EAAK6zC,IACf/1B,GAAM9d,EAAK8zC,IAAM9zC,EAAK4zC,MAAQ6N,GAAMC,EAAK,IAAM,GAC/CzjC,GAAMo2B,EAAKr0C,EAAK8zC,MAAQ4N,GAAMD,EAAK,IAAM,GACzC/rC,GAAKoI,EAAK4jC,EAAKzjC,EAAKwjC,IAAOA,EAAKC,GACpC,OAAQ,GAAK5jC,GAAM,GAAKG,IAAOjrB,KAAKm3B,IAAIn3B,KAAKkS,IAAI4Y,GAAK9qB,KAAKkS,IAAI+Y,GAAK,GAAMjrB,KAAKkS,IAAIwQ,KAAO,EAI5F,SAASisC,GAAO3hD,EAAMurB,GACpB,IAAInB,EAAIpqB,EAAK6zC,IAAM7zC,EAAK2zC,IACxB,OAAOvpB,GAAK,GAAKpqB,EAAK8zC,IAAM9zC,EAAK4zC,KAAOxpB,EAAImB,GAAK,EAAIA,EAMvD,SAAS,GAAOvrB,EAAMyX,EAAIC,GACxB,IAAIR,EAAKlX,EAAK2zC,IACVx8B,EAAKnX,EAAK4zC,IACVx8B,EAAKpX,EAAK6zC,IACVx8B,EAAKrX,EAAK8zC,IACVn8B,GAAMP,EAAKF,GAAM,EAErBlX,EAAKu7C,SAASpH,cAAcj9B,EAAKS,EAAIR,EAAKQ,EAAKF,EAAIL,EAAKO,EAAIN,EAAKM,EAAKD,EAAIN,EAAIC,GAGhF,SAASuqC,GAAU5J,GACjB5yD,KAAKm2D,SAAWvD,EAgElB,SAAS6J,GAAU7J,GACjB5yD,KAAKm2D,SAAW,IAAIuG,GAAe9J,GAOrC,SAAS8J,GAAe9J,GACtB5yD,KAAKm2D,SAAWvD,EAiBX,SAAS+J,GAAU/J,GACxB,OAAO,IAAI4J,GAAU5J,GAEhB,SAASgK,GAAUhK,GACxB,OAAO,IAAI6J,GAAU7J,GCnIvB,SAASiK,GAAQjK,GACf5yD,KAAKm2D,SAAWvD,EA6ClB,SAASkK,GAAc7yD,GACrB,IAAIS,EAEAysB,EADAxe,EAAI1O,EAAEzI,OAAS,EAEf6C,EAAI,IAAIV,MAAMgV,GACdrU,EAAI,IAAIX,MAAMgV,GACduZ,EAAI,IAAIvuB,MAAMgV,GAGlB,IAFAtU,EAAE,GAAK,EAAGC,EAAE,GAAK,EAAG4tB,EAAE,GAAKjoB,EAAE,GAAK,EAAIA,EAAE,GAEnCS,EAAI,EAAGA,EAAIiO,EAAI,IAAKjO,EACvBrG,EAAEqG,GAAK,EAAGpG,EAAEoG,GAAK,EAAGwnB,EAAExnB,GAAK,EAAIT,EAAES,GAAK,EAAIT,EAAES,EAAI,GAKlD,IAFArG,EAAEsU,EAAI,GAAK,EAAGrU,EAAEqU,EAAI,GAAK,EAAGuZ,EAAEvZ,EAAI,GAAK,EAAI1O,EAAE0O,EAAI,GAAK1O,EAAE0O,GAEnDjO,EAAI,EAAGA,EAAIiO,IAAKjO,EACnBysB,EAAI9yB,EAAEqG,GAAKpG,EAAEoG,EAAI,GAAIpG,EAAEoG,IAAMysB,EAAGjF,EAAExnB,IAAMysB,EAAIjF,EAAExnB,EAAI,GAKpD,IAFArG,EAAEsU,EAAI,GAAKuZ,EAAEvZ,EAAI,GAAKrU,EAAEqU,EAAI,GAEvBjO,EAAIiO,EAAI,EAAGjO,GAAK,IAAKA,EACxBrG,EAAEqG,IAAMwnB,EAAExnB,GAAKrG,EAAEqG,EAAI,IAAMpG,EAAEoG,GAK/B,IAFApG,EAAEqU,EAAI,IAAM1O,EAAE0O,GAAKtU,EAAEsU,EAAI,IAAM,EAE1BjO,EAAI,EAAGA,EAAIiO,EAAI,IAAKjO,EACvBpG,EAAEoG,GAAK,EAAIT,EAAES,EAAI,GAAKrG,EAAEqG,EAAI,GAG9B,MAAO,CAACrG,EAAGC,GDrCbk4D,GAAU37D,UAAY,CACpBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKuuD,IAAMvuD,KAAKyuD,IAAMzuD,KAAKwuD,IAAMxuD,KAAK0uD,IAAM1uD,KAAK+8D,IAAMt4B,IACvDzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACP,OAAQz2D,KAAKw2D,QACX,KAAK,EACHx2D,KAAKm2D,SAAStH,OAAO7uD,KAAKyuD,IAAKzuD,KAAK0uD,KAEpC,MAEF,KAAK,EACH,GAAO1uD,KAAMA,KAAK+8D,IAAKR,GAAOv8D,KAAMA,KAAK+8D,OAKzC/8D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACvE5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,OAExBK,MAAO,SAAezsD,EAAG4pB,GACvB,IAAIvB,EAAKmS,IAET,GADQ5Q,GAAKA,GAAb5pB,GAAKA,KACKjK,KAAKyuD,KAAO56B,IAAM7zB,KAAK0uD,IAAjC,CAEA,OAAQ1uD,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EACd,MAEF,KAAK,EACHx2D,KAAKw2D,OAAS,EAEd,GAAOx2D,KAAMu8D,GAAOv8D,KAAMsyB,EAAK8pC,GAAOp8D,KAAMiK,EAAG4pB,IAAKvB,GAEpD,MAEF,QACE,GAAOtyB,KAAMA,KAAK+8D,IAAKzqC,EAAK8pC,GAAOp8D,KAAMiK,EAAG4pB,IAKhD7zB,KAAKuuD,IAAMvuD,KAAKyuD,IAAKzuD,KAAKyuD,IAAMxkD,EAChCjK,KAAKwuD,IAAMxuD,KAAK0uD,IAAK1uD,KAAK0uD,IAAM76B,EAChC7zB,KAAK+8D,IAAMzqC,MAQdmqC,GAAU57D,UAAYD,OAAO6mB,OAAO+0C,GAAU37D,YAAY61D,MAAQ,SAAUzsD,EAAG4pB,GAC9E2oC,GAAU37D,UAAU61D,MAAMx1D,KAAKlB,KAAM6zB,EAAG5pB,IAO1CyyD,GAAe77D,UAAY,CACzB8tD,OAAQ,SAAgB1kD,EAAG4pB,GACzB7zB,KAAKm2D,SAASxH,OAAO96B,EAAG5pB,IAE1B2kD,UAAW,WACT5uD,KAAKm2D,SAASvH,aAEhBC,OAAQ,SAAgB5kD,EAAG4pB,GACzB7zB,KAAKm2D,SAAStH,OAAOh7B,EAAG5pB,IAE1B8kD,cAAe,SAAuB/8B,EAAIC,EAAI+8B,EAAIC,EAAIhlD,EAAG4pB,GACvD7zB,KAAKm2D,SAASpH,cAAc98B,EAAID,EAAIi9B,EAAID,EAAIn7B,EAAG5pB,KCxHnD4yD,GAAQh8D,UAAY,CAClBu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAK8vC,GAAK,GACV9vC,KAAK06D,GAAK,IAEZjE,QAAS,WACP,IAAIxsD,EAAIjK,KAAK8vC,GACTjc,EAAI7zB,KAAK06D,GACT/hD,EAAI1O,EAAEzI,OAEV,GAAImX,EAGF,GAFA3Y,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAE,GAAI4pB,EAAE,IAAM7zB,KAAKm2D,SAASxH,OAAO1kD,EAAE,GAAI4pB,EAAE,IAEnE,IAANlb,EACF3Y,KAAKm2D,SAAStH,OAAO5kD,EAAE,GAAI4pB,EAAE,SAK7B,IAHA,IAAImpC,EAAKF,GAAc7yD,GACnBgzD,EAAKH,GAAcjpC,GAEdqF,EAAK,EAAGC,EAAK,EAAGA,EAAKxgB,IAAKugB,IAAMC,EACvCn5B,KAAKm2D,SAASpH,cAAciO,EAAG,GAAG9jC,GAAK+jC,EAAG,GAAG/jC,GAAK8jC,EAAG,GAAG9jC,GAAK+jC,EAAG,GAAG/jC,GAAKjvB,EAAEkvB,GAAKtF,EAAEsF,KAKnFn5B,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAAqB,IAAN19C,IAAS3Y,KAAKm2D,SAASvH,YAC7D5uD,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,MACtBr2D,KAAK8vC,GAAK9vC,KAAK06D,GAAK,MAEtBhE,MAAO,SAAezsD,EAAG4pB,GACvB7zB,KAAK8vC,GAAGpuC,MAAMuI,GAEdjK,KAAK06D,GAAGh5D,MAAMmyB,KAsCH,mBACb,OAAO,IAAIgpC,GAAQjK,ICjFrB,SAASsK,GAAKtK,EAASzsB,GACrBnmC,KAAKm2D,SAAWvD,EAChB5yD,KAAKm9D,GAAKh3B,EAGZ+2B,GAAKr8D,UAAY,CACfu1D,UAAW,WACTp2D,KAAKq2D,MAAQ,GAEfC,QAAS,WACPt2D,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAK8vC,GAAK9vC,KAAK06D,GAAKj2B,IACpBzkC,KAAKw2D,OAAS,GAEhBC,QAAS,WACH,EAAIz2D,KAAKm9D,IAAMn9D,KAAKm9D,GAAK,GAAqB,IAAhBn9D,KAAKw2D,QAAcx2D,KAAKm2D,SAAStH,OAAO7uD,KAAK8vC,GAAI9vC,KAAK06D,KACpF16D,KAAKq2D,OAAwB,IAAfr2D,KAAKq2D,OAA+B,IAAhBr2D,KAAKw2D,SAAcx2D,KAAKm2D,SAASvH,YACnE5uD,KAAKq2D,OAAS,IAAGr2D,KAAKm9D,GAAK,EAAIn9D,KAAKm9D,GAAIn9D,KAAKq2D,MAAQ,EAAIr2D,KAAKq2D,QAEpEK,MAAO,SAAezsD,EAAG4pB,GAGvB,OAFA5pB,GAAKA,EAAG4pB,GAAKA,EAEL7zB,KAAKw2D,QACX,KAAK,EACHx2D,KAAKw2D,OAAS,EACdx2D,KAAKq2D,MAAQr2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAAK7zB,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAClE,MAEF,KAAK,EACH7zB,KAAKw2D,OAAS,EAGhB,QAEI,GAAIx2D,KAAKm9D,IAAM,EACbn9D,KAAKm2D,SAAStH,OAAO7uD,KAAK8vC,GAAIjc,GAE9B7zB,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,OACnB,CACL,IAAI7B,EAAKhyB,KAAK8vC,IAAM,EAAI9vC,KAAKm9D,IAAMlzD,EAAIjK,KAAKm9D,GAE5Cn9D,KAAKm2D,SAAStH,OAAO78B,EAAIhyB,KAAK06D,IAE9B16D,KAAKm2D,SAAStH,OAAO78B,EAAI6B,IAOjC7zB,KAAK8vC,GAAK7lC,EAAGjK,KAAK06D,GAAK7mC,IAGZ,mBACb,OAAO,IAAIqpC,GAAKtK,EAAS,KAEpB,SAASwK,GAAWxK,GACzB,OAAO,IAAIsK,GAAKtK,EAAS,GAEpB,SAASyK,GAAUzK,GACxB,OAAO,IAAIsK,GAAKtK,EAAS,GC9DZ,qBACb,IAAOj6C,EAAImzC,EAAOtqD,QAAU,EAE5B,IAAK,IAAW+hB,EAAGmV,EAA2B/f,EAArCjO,EAAI,EAAUmuB,EAAKizB,EAAOjf,EAAM,IAAQ1V,EAAI0B,EAAGr3B,OAAQkJ,EAAIiO,IAAKjO,EAGvE,IAFAguB,EAAKG,EAAIA,EAAKizB,EAAOjf,EAAMniC,IAEtB6Y,EAAI,EAAGA,EAAI4T,IAAK5T,EACnBsV,EAAGtV,GAAG,IAAMsV,EAAGtV,GAAG,GAAK7V,MAAMgrB,EAAGnV,GAAG,IAAMmV,EAAGnV,GAAG,GAAKmV,EAAGnV,GAAG,ICPjD,eAIb,IAHA,IAAI5K,EAAImzC,EAAOtqD,OACXuC,EAAI,IAAIJ,MAAMgV,KAETA,GAAK,GACZ5U,EAAE4U,GAAKA,EAGT,OAAO5U,GCHT,SAASu5D,GAAW7rD,EAAG1R,GACrB,OAAO0R,EAAE1R,GAGI,kBACb,IAAI8D,EAAO,GAAS,IAChBgpC,EAAQ,GACRl7B,EAAS,GACTlR,EAAQ68D,GAEZ,SAAS9oD,EAAMlT,GACb,IACIoJ,EAIA6yD,EALAC,EAAK35D,EAAKyD,MAAMtH,KAAMiB,WAEtBk2B,EAAI71B,EAAKE,OACTmX,EAAI6kD,EAAGh8D,OACPi8D,EAAK,IAAI95D,MAAMgV,GAGnB,IAAKjO,EAAI,EAAGA,EAAIiO,IAAKjO,EAAG,CACtB,IAAK,IAAkDgzD,EAA9CC,EAAKH,EAAG9yD,GAAIkzD,EAAKH,EAAG/yD,GAAK,IAAI/G,MAAMwzB,GAAI5T,EAAI,EAAQA,EAAI4T,IAAK5T,EACnEq6C,EAAGr6C,GAAKm6C,EAAM,CAAC,GAAIj9D,EAAMa,EAAKiiB,GAAIo6C,EAAIp6C,EAAGjiB,IACzCo8D,EAAIp8D,KAAOA,EAAKiiB,GAGlBq6C,EAAG79D,IAAM49D,EAGX,IAAKjzD,EAAI,EAAG6yD,EAAK1wB,EAAM4wB,GAAK/yD,EAAIiO,IAAKjO,EACnC+yD,EAAGF,EAAG7yD,IAAInH,MAAQmH,EAIpB,OADAiH,EAAO8rD,EAAIF,GACJE,EAmBT,OAhBAjpD,EAAM3Q,KAAO,SAAUkG,GACrB,OAAO9I,UAAUO,QAAUqC,EAAoB,mBAANkG,EAAmBA,EAAI,GAAS,GAAM7I,KAAK6I,IAAKyK,GAAS3Q,GAGpG2Q,EAAM/T,MAAQ,SAAUsJ,GACtB,OAAO9I,UAAUO,QAAUf,EAAqB,mBAANsJ,EAAmBA,EAAI,IAAUA,GAAIyK,GAAS/T,GAG1F+T,EAAMq4B,MAAQ,SAAU9iC,GACtB,OAAO9I,UAAUO,QAAUqrC,EAAa,MAAL9iC,EAAY,GAAyB,mBAANA,EAAmBA,EAAI,GAAS,GAAM7I,KAAK6I,IAAKyK,GAASq4B,GAG7Hr4B,EAAM7C,OAAS,SAAU5H,GACvB,OAAO9I,UAAUO,QAAUmQ,EAAc,MAAL5H,EAAY,GAAaA,EAAGyK,GAAS7C,GAGpE6C,GCvDM,iBACb,IAAOmE,EAAImzC,EAAOtqD,QAAU,EAA5B,CAEA,IAAK,IAAIkJ,EAAGiO,EAAgCkb,EAA7BtQ,EAAI,EAAG4T,EAAI20B,EAAO,GAAGtqD,OAAW+hB,EAAI4T,IAAK5T,EAAG,CACzD,IAAKsQ,EAAInpB,EAAI,EAAGA,EAAIiO,IAAKjO,EACvBmpB,GAAKi4B,EAAOphD,GAAG6Y,GAAG,IAAM,EAG1B,GAAIsQ,EAAG,IAAKnpB,EAAI,EAAGA,EAAIiO,IAAKjO,EAC1BohD,EAAOphD,GAAG6Y,GAAG,IAAMsQ,EAIvBgqC,GAAK/R,EAAQjf,KCdA,iBACb,IAAOl0B,EAAImzC,EAAOtqD,QAAU,EAE5B,IAAK,IAAIkJ,EAAU+G,EAAG+gB,EAAIsrC,EAAIC,EAAIplD,EAAtB4K,EAAI,EAAqB4T,EAAI20B,EAAOjf,EAAM,IAAIrrC,OAAQ+hB,EAAI4T,IAAK5T,EACzE,IAAKu6C,EAAKC,EAAK,EAAGrzD,EAAI,EAAGA,EAAIiO,IAAKjO,GAC3B8nB,GAAM/gB,EAAIq6C,EAAOjf,EAAMniC,IAAI6Y,IAAI,GAAK9R,EAAE,IAAM,GAC/CA,EAAE,GAAKqsD,EAAIrsD,EAAE,GAAKqsD,GAAMtrC,GACfA,EAAK,GACd/gB,EAAE,GAAKssD,EAAItsD,EAAE,GAAKssD,GAAMvrC,IAExB/gB,EAAE,GAAK,EAAGA,EAAE,GAAK+gB,ICTV,iBACb,IAAO7Z,EAAImzC,EAAOtqD,QAAU,EAA5B,CAEA,IAAK,IAAkCmX,EAA9B4K,EAAI,EAAGmV,EAAKozB,EAAOjf,EAAM,IAAQ1V,EAAIuB,EAAGl3B,OAAQ+hB,EAAI4T,IAAK5T,EAAG,CACnE,IAAK,IAAI7Y,EAAI,EAAGmpB,EAAI,EAAGnpB,EAAIiO,IAAKjO,EAC9BmpB,GAAKi4B,EAAOphD,GAAG6Y,GAAG,IAAM,EAG1BmV,EAAGnV,GAAG,IAAMmV,EAAGnV,GAAG,IAAMsQ,EAAI,EAG9BgqC,GAAK/R,EAAQjf,KCXA,iBACb,IAAOl0B,EAAImzC,EAAOtqD,QAAU,IAAS21B,GAAKuB,EAAKozB,EAAOjf,EAAM,KAAKrrC,QAAU,EAA3E,CAEA,IAAK,IAAkBk3B,EAAIvB,EAAGxe,EAArBkb,EAAI,EAAGtQ,EAAI,EAAaA,EAAI4T,IAAK5T,EAAG,CAC3C,IAAK,IAAI7Y,EAAI,EAAGmuB,EAAK,EAAGmlC,EAAK,EAAGtzD,EAAIiO,IAAKjO,EAAG,CAM1C,IALA,IAAIkzD,EAAK9R,EAAOjf,EAAMniC,IAClBuzD,EAAOL,EAAGr6C,GAAG,IAAM,EAEnB26C,GAAMD,GADCL,EAAGr6C,EAAI,GAAG,IAAM,IACF,EAEhB7D,EAAI,EAAGA,EAAIhV,IAAKgV,EAAG,CAC1B,IAAIy+C,EAAKrS,EAAOjf,EAAMntB,IAGtBw+C,IAFWC,EAAG56C,GAAG,IAAM,IACZ46C,EAAG56C,EAAI,GAAG,IAAM,GAI7BsV,GAAMolC,EAAMD,GAAME,EAAKD,EAGzBvlC,EAAGnV,EAAI,GAAG,IAAMmV,EAAGnV,EAAI,GAAG,GAAKsQ,EAC3BgF,IAAIhF,GAAKmqC,EAAKnlC,GAGpBH,EAAGnV,EAAI,GAAG,IAAMmV,EAAGnV,EAAI,GAAG,GAAKsQ,EAC/BgqC,GAAK/R,EAAQjf,KCxBA,eACb,IAAIuxB,EAAQtS,EAAOlmD,IAAIy4D,IACvB,OAAO,GAAKvS,GAAQ7sC,MAAK,SAAU5a,EAAGC,GACpC,OAAO85D,EAAM/5D,GAAK+5D,EAAM95D,OAI5B,SAAS+5D,GAAKvS,GAOZ,IANA,IAGIwS,EAHA5zD,GAAK,EACL6Y,EAAI,EACJ5K,EAAImzC,EAAOtqD,OAEX+8D,GAAM9nC,MAED/rB,EAAIiO,IACN2lD,GAAMxS,EAAOphD,GAAG,IAAM6zD,IAAIA,EAAKD,EAAI/6C,EAAI7Y,GAG9C,OAAO6Y,EClBM,mBACb,IAAIi7C,EAAO1S,EAAOlmD,IAAI,IACtB,OAAO,GAAKkmD,GAAQ7sC,MAAK,SAAU5a,EAAGC,GACpC,OAAOk6D,EAAKn6D,GAAKm6D,EAAKl6D,OAGnB,SAAS,GAAIwnD,GAMlB,IALA,IAGItsC,EAHA8I,EAAI,EACJ5d,GAAK,EACLiO,EAAImzC,EAAOtqD,SAGNkJ,EAAIiO,IACP6G,GAAKssC,EAAOphD,GAAG,MAAI4d,GAAK9I,GAG9B,OAAO8I,ECjBM,mBACb,OAAO,GAAUwjC,GAAQhhB,WCAZ,eACb,IACIpgC,EACA6Y,EAFA5K,EAAImzC,EAAOtqD,OAGXg9D,EAAO1S,EAAOlmD,IAAI,IAClBinC,EAAQ4xB,GAAW3S,GACnB/B,EAAM,EACN2U,EAAS,EACTC,EAAO,GACPC,EAAU,GAEd,IAAKl0D,EAAI,EAAGA,EAAIiO,IAAKjO,EACnB6Y,EAAIspB,EAAMniC,GAENq/C,EAAM2U,GACR3U,GAAOyU,EAAKj7C,GACZo7C,EAAKj9D,KAAK6hB,KAEVm7C,GAAUF,EAAKj7C,GACfq7C,EAAQl9D,KAAK6hB,IAIjB,OAAOq7C,EAAQ9zB,UAAUnhC,OAAOg1D,ICxBnB,eACb,OAAO,GAAK7S,GAAQhhB,WCFlB,GAAWlqC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA6C5E,IAEI,GAAa,SAAUkzD,GAGzB,SAASyK,IAGP,OAFA,GAAgB7+D,KAAM6+D,GAEf,GAA2B7+D,MAAO6+D,EAAW9yD,WAAanL,OAAOkL,eAAe+yD,IAAav3D,MAAMtH,KAAMiB,YAkFlH,OApIF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAgC3G,CAAUq3C,EAAYzK,GAQtB,GAAayK,EAAY,CAAC,CACxB9+D,IAAK,cACLU,MAAO,SAAqBa,EAAM2I,EAAG8nB,EAAI8B,EAAG+iC,EAAOkI,GACjD,IAAI/H,EAAO,KAYX,OAVc,OAAVH,IACmB,iBAAVA,GAAsB,EAAQA,GACvCG,EAAOA,EAAKH,MAAM,EAAQA,IACA,mBAAVA,IAChBG,EAAOA,EAAKH,MAAMA,MAKtBG,GADAA,EAAOA,EAAKJ,QAAQmI,IACR70D,EAAEA,GAAG8nB,GAAGA,GAAIE,GAAG4B,IACfvyB,KAEb,CACDvB,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBixD,EAAQxuC,EAAOwuC,MACft1D,EAAO8mB,EAAO9mB,KACd6nD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MAMnB,GAJIjG,KAAK0F,MAAMq5D,cACb,aAAQ,4CAA4C,IAGjDz9D,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAci1B,EAAY,GAAS,GAAI7+D,KAAK0F,MAAO,CAC3DikC,UAAW,SAIf,IAAI1/B,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9Bz4B,EAAK/xB,KAAKg/D,iBAAiB,KAE3BztD,EAASvR,KAAKi/D,mBAAmB,WAAaj/D,KAAKi/D,mBAAmB,SAEtE3tD,EAAOtR,KAAKi/D,mBAAmB,SAAWj/D,KAAKi/D,mBAAmB,SAElEC,EAAal/D,KAAKi/D,mBAAmB,WAErCr6B,EAAU/2B,OAAOJ,SAASyxD,GAAcA,EvDnIrB,EuDoInBJ,EAAU9+D,KAAK0F,MAAMq5D,cAAgB/+D,KAAK0F,MAAMo5D,QAEhDrtD,EAAIzR,KAAKm/D,YAAY79D,EAAM2I,EAAG8nB,EAAI8B,EAAG+iC,EAAOkI,GAEhD,OAAO,IAAMl1B,cAAc,OAAQ,CACjCn4B,EAAGA,EACH9L,UAAW,+CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,IACzDwM,YAAaz1D,KAAKioD,wBAClByN,WAAY11D,KAAKgoD,uBACjB2N,QAAS31D,KAAK8nD,oBACd8N,cAAe51D,KAAKkoD,yBACpBjiD,MAAO,GAAS,CACd2+B,QAASA,EACTrzB,OAAQA,EACRD,KAAMA,GACLrL,SAKF44D,EAxFQ,CAyFf,IAEF,GAAWh1B,YAAc,aACzB,GAAWqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CAClE4T,QAAS,WACP,OAAO,KAGI,IC3LX,GAAWl+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAuBLq4D,GACM,6BADNA,GAES,sBAFTA,GAGI,2BAHJA,GAIK,4BAJLA,GAKG,0BAGP,SAASC,GAAQ35D,GACf,IAAIujD,EAAYvjD,EAAMujD,UAClBqW,EAAe55D,EAAM45D,aACrBnW,EAAazjD,EAAMyjD,WACnBoW,EAAc75D,EAAM65D,YACpB1K,EAAanvD,EAAMmvD,WACnBC,EAAcpvD,EAAMovD,YACpB7uD,EAAQP,EAAMO,MACdN,EAAYD,EAAMC,UAClBohD,EAAS+N,EAAc7L,EAAYqW,EACnCrwB,EAAQ4lB,EAAa1L,EAAaoW,EACtC,OAAO,IAAM31B,cAAc,IAAK,CAC9BjkC,UAAWy5D,GAAoB,IAAMz5D,GACpC,IAAMikC,cAAc,OAAQ,CAC7BjkC,UAAWy5D,GAAiB,IAAMz5D,EAAY,UAC9CM,MAAO,GAAS,GAAIA,EAAMu5D,IAAKv5D,EAAMy4D,QACrCz0D,EAAG,EACH4pB,EAAGkzB,EAASuY,EACZrwB,MAAOA,EACP8X,OAAQuY,IACN,IAAM11B,cAAc,OAAQ,CAC9BjkC,UAAWy5D,GAAe,IAAMz5D,EAAY,QAC5CM,MAAO,GAAS,GAAIA,EAAMu5D,IAAKv5D,EAAMirB,MACrCjnB,EAAG,EACH4pB,EAAG,EACHob,MAAOka,EACPpC,OAAQA,IACN,IAAMnd,cAAc,OAAQ,CAC9BjkC,UAAWy5D,GAAgB,IAAMz5D,EAAY,SAC7CM,MAAO,GAAS,GAAIA,EAAMu5D,IAAKv5D,EAAMkrB,OACrClnB,EAAGglC,EAAQswB,EACX1rC,EAAG,EACHob,MAAOswB,EACPxY,OAAQA,IACN,IAAMnd,cAAc,OAAQ,CAC9BjkC,UAAWy5D,GAAc,IAAMz5D,EAAY,OAC3CM,MAAO,GAAS,GAAIA,EAAMu5D,IAAKv5D,EAAM8jD,KACrC9/C,EAAG,EACH4pB,EAAG,EACHob,MAAOA,EACP8X,OAAQkC,KAIZoW,GAAQx1B,YAAc,UACtBw1B,GAAQnU,aAAe,CACrBvlD,UAAW,GACXM,MAAO,CACLu5D,IAAK,GACLd,OAAQ,GACRxtC,KAAM,GACNC,MAAO,GACP44B,IAAK,KAGTsV,GAAQI,aAAc,EACP,IClGX,GAAe,WACjB,SAASl1D,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAwC5E,IAAI,GAAa,SAAUw+D,GAGzB,SAASC,IAGP,OAFA,GAAgB3/D,KAAM2/D,GAEf,GAA2B3/D,MAAO2/D,EAAW5zD,WAAanL,OAAOkL,eAAe6zD,IAAar4D,MAAMtH,KAAMiB,YAmClH,OA9EF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAyB3G,CAAUm4C,EAAYD,GAQtB,GAAaC,EAAY,CAAC,CACxB5/D,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdovD,EAAc1sC,EAAO0sC,YACrBD,EAAazsC,EAAOysC,WACpByK,EAAel3C,EAAOk3C,aACtBnW,EAAa/gC,EAAO+gC,WACpBoW,EAAcn3C,EAAOm3C,YACrBtW,EAAY7gC,EAAO6gC,UACnBtjD,EAAYyiB,EAAOziB,UACnBi6D,EAAgBx3C,EAAOw3C,cACvB35D,EAAQmiB,EAAOniB,MACf45D,EAAOz3C,EAAOy3C,KAKdC,GAFQjL,GAAc+K,EAAgBzW,EAAaoW,EAAc,IAFtDn3C,EAAO23C,UAISH,EAAgB,EAAIzW,GAC/C6W,GAFSlL,GAAe8K,EAAgB3W,EAAYqW,EAAe,IAFxDl3C,EAAO63C,UAIUL,EAAgBzW,EAAa,GAC7D,OAAO,IAAMvf,cAAc,IAAK,CAC9B/oB,UAAW,aAAei/C,EAAO,KAAOE,EAAO,IAC/Cr6D,UAAW,2BAA6BA,GACvC,IAAMikC,cAAc,OAAQ3jC,EAAO45D,OAEtC,CAAC,CACH9/D,IAAK,cACLyH,IAAK,WACH,OAAO,MAIJm4D,EAzCQ,CA0Cf,IAAMO,eAER,GAAWr2B,YAAc,aACzB,GAAWqhB,aAAe,CACxBvlD,UAAW,GACXi6D,eAAe,EACfC,KAAM,GACNE,SAAU,EACVE,SAAU,EACVh6D,MAAO,IAEM,ICrGJk6D,GAAc,CACvBC,IAAK,MACLC,KAAM,OACNC,MAAO,QACPC,OAAQ,SACRC,SAAU,WACVC,WAAY,cAEHC,GAAY,CACrBF,SAAU,WACVC,WAAY,cAQP,SAASE,GAAsBh/D,GACpC,OAAIA,EAAO,IACLA,EAAO,IACF,GAGF,EAGF,GAUF,SAASi/D,GAAcxzB,EAAOyzB,EAAWC,GAC9C,OAAQA,IAAa1zB,EAAMrC,MAAQqC,EAAMrC,MAAM81B,GAAazzB,EAAMF,UAgGrD,ICzJX,GAAWtsC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAgB,CAAC,SAAU,SAAU,UAAW,UAAW,QAAS,SAAU,aAAc,YAAa,cAAe,eAAgB,aAExI,GAAoB,SAAUknC,GAGhC,SAAS24B,IAGP,OAFA,GAAgB/gE,KAAM+gE,GAEf,GAA2B/gE,MAAO+gE,EAAkBh1D,WAAanL,OAAOkL,eAAei1D,IAAoBz5D,MAAMtH,KAAMiB,YAsEhI,OArHF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA6B3G,CAAUu5C,EAAmB34B,GAQ7B,GAAa24B,EAAmB,CAAC,CAC/BhhE,IAAK,mBACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdmvD,EAAazsC,EAAOysC,WACpBC,EAAc1sC,EAAO0sC,YACrB7L,EAAY7gC,EAAO6gC,UAEvB,MAAO,CACL/3B,KAFe9I,EAAO+gC,WAGtBY,IAAKd,EACLha,MAAO4lB,EACP9N,OAAQ+N,EACR7uD,MAAO,GACP46D,UAAWF,GAAsB/yD,KAAKm3B,IAAI8vB,EAAYC,OAGzD,CACD/0D,IAAK,SACLU,MAAO,WACL,IAAIsoD,EAAU/oD,KAAK0F,MACfikC,EAAYof,EAAQpf,UACpBq3B,EAAUjY,EAAQiY,QAClBC,EAAUlY,EAAQkY,QAEtB,GAAIt3B,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe,KACb,IAAM8B,cAAcm3B,EAAmB,GAAS,GAAI/gE,KAAK0F,MAAO,CAClEikC,UAAW,SAIf,IAAIjkC,EAAQ,GAAS,GAAI1F,KAAKkhE,mBAAoBlhE,KAAK0F,OAEnDm7D,EAAYn7D,EAAMm7D,UAClBC,EAAap7D,EAAMo7D,WACnB3X,EAAazjD,EAAMyjD,WACnBF,EAAYvjD,EAAMujD,UAClBkY,EAASz7D,EAAMy7D,OACfl7D,EAAQP,EAAMO,MACdm7D,EAASnc,GAAkBv/C,EAAO,KAClC27D,EAASpc,GAAkBv/C,EAAO,KAClCpC,EAASs9D,GAAcQ,EAAQP,EAAWC,GAC9C,OAAO,IAAMl3B,cAAc,IAAK,CAC9B/oB,UAAW,cAAgBugD,EAAOJ,GAAW7X,GAAc,KAAOkY,EAAOJ,GAAWhY,GAAa,IACjGtjD,UAAW,mCACVrC,EAAO4kC,QAAO,SAAU0lB,EAAKntD,EAAO8C,GACrC,IAAI01B,EAASmoC,EAAO3gE,GAEpB,OAAI0gE,IAAWloC,EAASkoC,EAAO,IAAMloC,EAASkoC,EAAO,IAC5CvT,EAGFA,EAAIjkD,OAAO,CAAC,IAAMigC,cAAc,SAAU,GAAS,CACxDpV,GAAI,EACJT,GAAI,EACJ7B,EAAG+G,GACF,CACDl5B,IAAKwD,EACLoC,UAAW,wCACXM,MAAOA,SAER,SAIA86D,EA5Ee,CA6EtB,iBAEF,GAAkBl3B,YAAc,oBAChC,GAAkBqhB,aAAe,CAC/B8V,QAAS,EACTC,QAAS,GAEX,GAAkBxB,aAAc,EACjB,IC7KJ,GADC97D,MAAM9C,UACO6C,MCDV,iBACb,OAAOW,EAAIC,GCDE,eACb,OAAO,WACL,OAAO2F,ICFI,iBAKb,IAJA,IAEI0uB,EAFAjuB,GAAK,EACLiO,EAAI2oD,EAAK9/D,SAGJkJ,EAAIiO,GACX,GAAIggB,EAAI4oC,GAAaC,EAAMF,EAAK52D,IAAK,OAAOiuB,EAG9C,OAAO,GAGT,SAAS4oC,GAAaC,EAAM9K,GAK1B,IAJA,IAAIzsD,EAAIysD,EAAM,GACV7iC,EAAI6iC,EAAM,GACV+K,GAAY,EAEP/2D,EAAI,EAAGiO,EAAI6oD,EAAKhgE,OAAQ+hB,EAAI5K,EAAI,EAAGjO,EAAIiO,EAAG4K,EAAI7Y,IAAK,CAC1D,IAAIyjD,EAAKqT,EAAK92D,GACVg3D,EAAKvT,EAAG,GACRwT,EAAKxT,EAAG,GACRyT,EAAKJ,EAAKj+C,GACVs+C,EAAKD,EAAG,GACRE,EAAKF,EAAG,GACZ,GAAIG,GAAgB5T,EAAIyT,EAAIlL,GAAQ,OAAO,EACvCiL,EAAK9tC,GAAMiuC,EAAKjuC,GAAK5pB,GAAK43D,EAAKH,IAAO7tC,EAAI8tC,IAAOG,EAAKH,GAAMD,IAAID,GAAYA,GAGlF,OAAOA,EAGT,SAASM,GAAgB19D,EAAGC,EAAGq0B,GAC7B,IAAIjuB,EAQU4lB,EAAGC,EAAG2B,EAPpB,OAGF,SAAmB7tB,EAAGC,EAAGq0B,GACvB,OAAQr0B,EAAE,GAAKD,EAAE,KAAOs0B,EAAE,GAAKt0B,EAAE,MAASs0B,EAAE,GAAKt0B,EAAE,KAAOC,EAAE,GAAKD,EAAE,IAJ5D29D,CAAU39D,EAAGC,EAAGq0B,KAOTrI,EAPsBjsB,EAAEqG,IAAMrG,EAAE,KAAOC,EAAE,KAOtCisB,EAP4CoI,EAAEjuB,GAO3CwnB,EAP+C5tB,EAAEoG,GAQ9D4lB,GAAKC,GAAKA,GAAK2B,GAAKA,GAAK3B,GAAKA,GAAKD,GCzC7B,oBCQX2xC,GAAQ,CAAC,GAAI,CAAC,CAAC,CAAC,EAAK,KAAM,CAAC,GAAK,KAAQ,CAAC,CAAC,CAAC,IAAK,GAAM,CAAC,EAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,GAAM,CAAC,GAAK,KAAQ,CAAC,CAAC,CAAC,EAAK,IAAM,CAAC,IAAK,KAAQ,CAAC,CAAC,CAAC,EAAK,KAAM,CAAC,GAAK,IAAO,CAAC,CAAC,EAAK,IAAM,CAAC,IAAK,KAAQ,CAAC,CAAC,CAAC,EAAK,IAAM,CAAC,EAAK,OAAQ,CAAC,CAAC,CAAC,EAAK,IAAM,CAAC,GAAK,KAAQ,CAAC,CAAC,CAAC,GAAK,GAAM,CAAC,EAAK,MAAQ,CAAC,CAAC,CAAC,EAAK,KAAM,CAAC,EAAK,MAAQ,CAAC,CAAC,CAAC,GAAK,GAAM,CAAC,EAAK,KAAO,CAAC,CAAC,IAAK,GAAM,CAAC,EAAK,OAAQ,CAAC,CAAC,CAAC,IAAK,GAAM,CAAC,EAAK,MAAQ,CAAC,CAAC,CAAC,GAAK,GAAM,CAAC,IAAK,KAAQ,CAAC,CAAC,CAAC,EAAK,KAAM,CAAC,IAAK,KAAQ,CAAC,CAAC,CAAC,GAAK,GAAM,CAAC,EAAK,OAAQ,IAC9b,cACb,IAAI1vC,EAAK,EACLC,EAAK,EACL0vC,EAAY,GACZC,EAASC,EAEb,SAASC,EAAS/+D,GAChB,IAAIg/D,EAAKJ,EAAU5+D,GAEnB,GAAKK,MAAM8E,QAAQ65D,GAOjBA,EAAKA,EAAG5+D,QAAQub,KAAK,QAPC,CACtB,IAAIiuB,EAAS,GAAO5pC,GAChBkS,EAAQ03B,EAAO,GACfxC,EAAOwC,EAAO,GAClBo1B,EAAKh3B,GAAS91B,EAAOk1B,EAAM43B,GAC3BA,EAAK,GAAM10D,KAAK4Y,MAAMhR,EAAQ8sD,GAAMA,EAAI10D,KAAK4Y,MAAMkkB,EAAO43B,GAAMA,EAAIA,GAKtE,OAAOA,EAAG18D,KAAI,SAAUnF,GACtB,OAAO8hE,EAAQj/D,EAAQ7C,MAM3B,SAAS8hE,EAAQj/D,EAAQ7C,GACvB,IAAI83B,EAAW,GACXiqC,EAAQ,GAaZ,OASF,SAAkBl/D,EAAQ7C,EAAOgiE,GAC/B,IAEIx4D,EACA4pB,EACAxB,EACAC,EACAmT,EACAC,EAPAg9B,EAAkB,IAAI/+D,MACtBg/D,EAAgB,IAAIh/D,MAQxBsG,EAAI4pB,GAAK,EACTvB,EAAKhvB,EAAO,IAAM7C,EAClBwhE,GAAM3vC,GAAM,GAAG7oB,QAAQm5D,GAEvB,OAAS34D,EAAIsoB,EAAK,GAChBF,EAAKC,EAAIA,EAAKhvB,EAAO2G,EAAI,IAAMxJ,EAC/BwhE,GAAM5vC,EAAKC,GAAM,GAAG7oB,QAAQm5D,GAG9BX,GAAM3vC,GAAM,GAAG7oB,QAAQm5D,GAEvB,OAAS/uC,EAAIrB,EAAK,GAAG,CAMnB,IALAvoB,GAAK,EACLqoB,EAAKhvB,EAAOuwB,EAAItB,EAAKA,IAAO9xB,EAC5BglC,EAAKniC,EAAOuwB,EAAItB,IAAO9xB,EACvBwhE,GAAM3vC,GAAM,EAAImT,GAAM,GAAGh8B,QAAQm5D,KAExB34D,EAAIsoB,EAAK,GAChBF,EAAKC,EAAIA,EAAKhvB,EAAOuwB,EAAItB,EAAKA,EAAKtoB,EAAI,IAAMxJ,EAC7CilC,EAAKD,EAAIA,EAAKniC,EAAOuwB,EAAItB,EAAKtoB,EAAI,IAAMxJ,EACxCwhE,GAAM5vC,EAAKC,GAAM,EAAImT,GAAM,EAAIC,GAAM,GAAGj8B,QAAQm5D,GAGlDX,GAAM3vC,EAAKmT,GAAM,GAAGh8B,QAAQm5D,GAI9B34D,GAAK,EACLw7B,EAAKniC,EAAOuwB,EAAItB,IAAO9xB,EACvBwhE,GAAMx8B,GAAM,GAAGh8B,QAAQm5D,GAEvB,OAAS34D,EAAIsoB,EAAK,GAChBmT,EAAKD,EAAIA,EAAKniC,EAAOuwB,EAAItB,EAAKtoB,EAAI,IAAMxJ,EACxCwhE,GAAMx8B,GAAM,EAAIC,GAAM,GAAGj8B,QAAQm5D,GAKnC,SAASA,EAAO/L,GACd,IAII9sB,EACArF,EALAlvB,EAAQ,CAACqhD,EAAK,GAAG,GAAK5sD,EAAG4sD,EAAK,GAAG,GAAKhjC,GACtCpe,EAAM,CAACohD,EAAK,GAAG,GAAK5sD,EAAG4sD,EAAK,GAAG,GAAKhjC,GACpCgvC,EAAat/D,EAAMiS,GACnBstD,EAAWv/D,EAAMkS,IAIjBs0B,EAAI44B,EAAcE,KAChBn+B,EAAIg+B,EAAgBI,YACfH,EAAc54B,EAAEt0B,YAChBitD,EAAgBh+B,EAAElvB,OAErBu0B,IAAMrF,GACRqF,EAAEy3B,KAAK9/D,KAAK+T,GACZgtD,EAAS14B,EAAEy3B,OAEXkB,EAAgB34B,EAAEv0B,OAASmtD,EAAcj+B,EAAEjvB,KAAO,CAChDD,MAAOu0B,EAAEv0B,MACTC,IAAKivB,EAAEjvB,IACP+rD,KAAMz3B,EAAEy3B,KAAK73D,OAAO+6B,EAAE88B,gBAInBmB,EAAc54B,EAAEt0B,KACvBs0B,EAAEy3B,KAAK9/D,KAAK+T,GACZktD,EAAc54B,EAAEt0B,IAAMqtD,GAAY/4B,IAE3BA,EAAI24B,EAAgBI,KACzBp+B,EAAIi+B,EAAcE,YACbH,EAAgB34B,EAAEv0B,cAClBmtD,EAAcj+B,EAAEjvB,KAEnBs0B,IAAMrF,GACRqF,EAAEy3B,KAAK9/D,KAAK+T,GACZgtD,EAAS14B,EAAEy3B,OAEXkB,EAAgBh+B,EAAElvB,OAASmtD,EAAc54B,EAAEt0B,KAAO,CAChDD,MAAOkvB,EAAElvB,MACTC,IAAKs0B,EAAEt0B,IACP+rD,KAAM98B,EAAE88B,KAAK73D,OAAOogC,EAAEy3B,gBAInBkB,EAAgB34B,EAAEv0B,OACzBu0B,EAAEy3B,KAAK9rC,QAAQlgB,GACfktD,EAAgB34B,EAAEv0B,MAAQqtD,GAAc94B,GAG1C24B,EAAgBG,GAAcF,EAAcG,GAAY,CACtDttD,MAAOqtD,EACPptD,IAAKqtD,EACLtB,KAAM,CAAChsD,EAAOC,IAtDpBwsD,GAAMx8B,GAAM,GAAGh8B,QAAQm5D,GAnEvBG,CAASz/D,EAAQ7C,GAAO,SAAU+gE,GAChCW,EAAOX,EAAMl+D,EAAQ7C,GCvCZ,YAKb,IAJA,IAAIiK,EAAI,EACJiO,EAAI6oD,EAAKhgE,OACTu1D,EAAOyK,EAAK7oD,EAAI,GAAG,GAAK6oD,EAAK,GAAG,GAAKA,EAAK7oD,EAAI,GAAG,GAAK6oD,EAAK,GAAG,KAEzD92D,EAAIiO,GACXo+C,GAAQyK,EAAK92D,EAAI,GAAG,GAAK82D,EAAK92D,GAAG,GAAK82D,EAAK92D,EAAI,GAAG,GAAK82D,EAAK92D,GAAG,GAGjE,OAAOqsD,ED+BC,CAAKyK,GAAQ,EAAGjpC,EAAS72B,KAAK,CAAC8/D,IAAYgB,EAAM9gE,KAAK8/D,MAE5DgB,EAAM/4D,SAAQ,SAAU63D,GACtB,IAAK,IAAgC9oC,EAA5B9tB,EAAI,EAAGiO,EAAI4f,EAAS/2B,OAAiBkJ,EAAIiO,IAAKjO,EACrD,IAAoD,IAAhD+2D,IAAUjpC,EAAUD,EAAS7tB,IAAI,GAAI42D,GAEvC,YADA9oC,EAAQ92B,KAAK4/D,MAKZ,CACLx2D,KAAM,eACNrK,MAAOA,EACPuiE,YAAazqC,GAgHjB,SAASh1B,EAAMmzD,GACb,OAAkB,EAAXA,EAAM,GAASA,EAAM,IAAMnkC,EAAK,GAAK,EAG9C,SAAS6vC,EAAaZ,EAAMl+D,EAAQ7C,GAClC+gE,EAAK/3D,SAAQ,SAAUitD,GACrB,IAIIrlC,EAJApnB,EAAIysD,EAAM,GACV7iC,EAAI6iC,EAAM,GACVuM,EAAS,EAAJh5D,EACLi5D,EAAS,EAAJrvC,EAELvC,EAAKhuB,EAAO4/D,EAAK3wC,EAAK0wC,GAEtBh5D,EAAI,GAAKA,EAAIsoB,GAAM0wC,IAAOh5D,IAC5BonB,EAAK/tB,EAAO4/D,EAAK3wC,EAAK0wC,EAAK,GAC3BvM,EAAM,GAAKzsD,GAAKxJ,EAAQ4wB,IAAOC,EAAKD,GAAM,IAGxCwC,EAAI,GAAKA,EAAIrB,GAAM0wC,IAAOrvC,IAC5BxC,EAAK/tB,GAAQ4/D,EAAK,GAAK3wC,EAAK0wC,GAC5BvM,EAAM,GAAK7iC,GAAKpzB,EAAQ4wB,IAAOC,EAAKD,GAAM,OAyBhD,OApBAgxC,EAASE,QAAUA,EAEnBF,EAAS1gE,KAAO,SAAUoI,GACxB,IAAK9I,UAAUO,OAAQ,MAAO,CAAC+wB,EAAIC,GAEnC,IAAI2wC,EAAKv1D,KAAK0K,KAAKvO,EAAE,IACjBq5D,EAAKx1D,KAAK0K,KAAKvO,EAAE,IAErB,KAAMo5D,EAAK,GAAQC,EAAK,GAAI,MAAM,IAAIp2D,MAAM,gBAC5C,OAAOulB,EAAK4wC,EAAI3wC,EAAK4wC,EAAIf,GAG3BA,EAASgB,WAAa,SAAUt5D,GAC9B,OAAO9I,UAAUO,QAAU0gE,EAAyB,mBAANn4D,EAAmBA,EAAIpG,MAAM8E,QAAQsB,GAAK,GAAS,GAAM7I,KAAK6I,IAAM,GAASA,GAAIs4D,GAAYH,GAG7IG,EAASF,OAAS,SAAUp4D,GAC1B,OAAO9I,UAAUO,QAAU2gE,EAASp4D,EAAIq4D,EAAe,GAAMC,GAAYF,IAAWC,GAG/EC,G,UE/MF,SAASiB,GAAM7oD,EAAQ1T,EAAQmrB,GAKpC,IAJA,IAAIvZ,EAAI8B,EAAOw0B,MACX9X,EAAI1c,EAAOssC,OACXpQ,EAAe,GAAVzkB,GAAK,GAEL3O,EAAI,EAAGA,EAAI4T,IAAK5T,EACvB,IAAK,IAAI7Y,EAAI,EAAG64D,EAAK,EAAG74D,EAAIiO,EAAIuZ,IAAKxnB,EAC/BA,EAAIiO,IACN4qD,GAAM9oD,EAAOnZ,KAAKoJ,EAAI6Y,EAAI5K,IAGxBjO,GAAKwnB,IACHxnB,GAAKisC,IACP4sB,GAAM9oD,EAAOnZ,KAAKoJ,EAAIisC,EAAIpzB,EAAI5K,IAGhC5R,EAAOzF,KAAKoJ,EAAIwnB,EAAI3O,EAAI5K,GAAK4qD,EAAK31D,KAAKm3B,IAAIr6B,EAAI,EAAGiO,EAAI,EAAIg+B,EAAIjsC,EAAGisC,IAQlE,SAAS6sB,GAAM/oD,EAAQ1T,EAAQmrB,GAKpC,IAJA,IAAIvZ,EAAI8B,EAAOw0B,MACX9X,EAAI1c,EAAOssC,OACXpQ,EAAe,GAAVzkB,GAAK,GAELxnB,EAAI,EAAGA,EAAIiO,IAAKjO,EACvB,IAAK,IAAI6Y,EAAI,EAAGggD,EAAK,EAAGhgD,EAAI4T,EAAIjF,IAAK3O,EAC/BA,EAAI4T,IACNosC,GAAM9oD,EAAOnZ,KAAKoJ,EAAI6Y,EAAI5K,IAGxB4K,GAAK2O,IACH3O,GAAKozB,IACP4sB,GAAM9oD,EAAOnZ,KAAKoJ,GAAK6Y,EAAIozB,GAAKh+B,IAGlC5R,EAAOzF,KAAKoJ,GAAK6Y,EAAI2O,GAAKvZ,GAAK4qD,EAAK31D,KAAKm3B,IAAIxhB,EAAI,EAAG4T,EAAI,EAAIwf,EAAIpzB,EAAGozB,ICpC3E,SAAS8sB,GAAShyD,GAChB,OAAOA,EAAE,GAGX,SAASiyD,GAASjyD,GAChB,OAAOA,EAAE,GAGX,SAASkyD,KACP,OAAO,EAGM,ICnBA,eACb,OAAO15D,GCDT,SAAS25D,GAAeC,EAAUC,GAC5BD,GAAYE,GAAmBjjE,eAAe+iE,EAAS/4D,OACzDi5D,GAAmBF,EAAS/4D,MAAM+4D,EAAUC,GAIhD,IAAIE,GAAmB,CACrBC,QAAS,SAAiB9/D,EAAQ2/D,GAChCF,GAAez/D,EAAO0/D,SAAUC,IAElCI,kBAAmB,SAA2B//D,EAAQ2/D,GAKpD,IAJA,IAAIK,EAAWhgE,EAAOggE,SAClBz5D,GAAK,EACLiO,EAAIwrD,EAAS3iE,SAERkJ,EAAIiO,GACXirD,GAAeO,EAASz5D,GAAGm5D,SAAUC,KAIvCC,GAAqB,CACvBK,OAAQ,SAAgBjgE,EAAQ2/D,GAC9BA,EAAOO,UAETC,MAAO,SAAengE,EAAQ2/D,GAC5B3/D,EAASA,EAAO6+D,YAChBc,EAAOpN,MAAMvyD,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAE5CogE,WAAY,SAAoBpgE,EAAQ2/D,GAKtC,IAJA,IAAId,EAAc7+D,EAAO6+D,YACrBt4D,GAAK,EACLiO,EAAIqqD,EAAYxhE,SAEXkJ,EAAIiO,GACXxU,EAAS6+D,EAAYt4D,GAAIo5D,EAAOpN,MAAMvyD,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAGvEqgE,WAAY,SAAoBrgE,EAAQ2/D,GACtCW,GAAWtgE,EAAO6+D,YAAac,EAAQ,IAEzCY,gBAAiB,SAAyBvgE,EAAQ2/D,GAKhD,IAJA,IAAId,EAAc7+D,EAAO6+D,YACrBt4D,GAAK,EACLiO,EAAIqqD,EAAYxhE,SAEXkJ,EAAIiO,GACX8rD,GAAWzB,EAAYt4D,GAAIo5D,EAAQ,IAGvCa,QAAS,SAAiBxgE,EAAQ2/D,GAChCc,GAAczgE,EAAO6+D,YAAac,IAEpCe,aAAc,SAAsB1gE,EAAQ2/D,GAK1C,IAJA,IAAId,EAAc7+D,EAAO6+D,YACrBt4D,GAAK,EACLiO,EAAIqqD,EAAYxhE,SAEXkJ,EAAIiO,GACXisD,GAAc5B,EAAYt4D,GAAIo5D,IAGlCgB,mBAAoB,SAA4B3gE,EAAQ2/D,GAKtD,IAJA,IAAIiB,EAAa5gE,EAAO4gE,WACpBr6D,GAAK,EACLiO,EAAIosD,EAAWvjE,SAEVkJ,EAAIiO,GACXirD,GAAemB,EAAWr6D,GAAIo5D,KAKpC,SAASW,GAAWzB,EAAac,EAAQkB,GACvC,IAEI3a,EAFA3/C,GAAK,EACLiO,EAAIqqD,EAAYxhE,OAASwjE,EAI7B,IAFAlB,EAAOvN,cAEE7rD,EAAIiO,GACX0xC,EAAa2Y,EAAYt4D,GAAIo5D,EAAOpN,MAAMrM,EAAW,GAAIA,EAAW,GAAIA,EAAW,IAGrFyZ,EAAOrN,UAGT,SAASmO,GAAc5B,EAAac,GAClC,IAAIp5D,GAAK,EACLiO,EAAIqqD,EAAYxhE,OAGpB,IAFAsiE,EAAOmB,iBAEEv6D,EAAIiO,GACX8rD,GAAWzB,EAAYt4D,GAAIo5D,EAAQ,GAGrCA,EAAOoB,aAGM,qBACT/gE,GAAU6/D,GAAiBljE,eAAeqD,EAAO2G,MACnDk5D,GAAiB7/D,EAAO2G,MAAM3G,EAAQ2/D,GAEtCF,GAAez/D,EAAQ2/D,IC/FZ,cACb,OAAO,IAAIqB,IAGb,SAASA,KACPnlE,KAAKolE,QAGPD,GAAMtkE,UAAY,CAChBuI,YAAa+7D,GACbC,MAAO,WACLplE,KAAKsoB,EACLtoB,KAAKmmC,EAAI,GAEX3iC,IAAK,SAAaqwB,GAChBwxC,GAAKC,GAAMzxC,EAAG7zB,KAAKmmC,GAEnBk/B,GAAKrlE,KAAMslE,GAAKh9C,EAAGtoB,KAAKsoB,GAEpBtoB,KAAKsoB,EAAGtoB,KAAKmmC,GAAKm/B,GAAKn/B,EAAOnmC,KAAKsoB,EAAIg9C,GAAKn/B,GAElDthC,QAAS,WACP,OAAO7E,KAAKsoB,IAGhB,IAAIg9C,GAAO,IAAIH,GAEf,SAASE,GAAKE,EAAOlhE,EAAGC,GACtB,IAAI2F,EAAIs7D,EAAMj9C,EAAIjkB,EAAIC,EAClBkhE,EAAKv7D,EAAI5F,EACTohE,EAAKx7D,EAAIu7D,EACbD,EAAMp/B,EAAI9hC,EAAIohE,GAAMnhE,EAAIkhE,GCrCnB,IAEI,GAAK53D,KAAKmxC,GAGV,GAAW,EAAL,GAGN,GAAMnxC,KAAKkS,IAaX,IAZOlS,KAAK83D,KACJ93D,KAAK2lB,MACP3lB,KAAKgyC,IACJhyC,KAAK0K,KACN1K,KAAK0kC,IACH1kC,KAAK4Y,MACP5Y,KAAKu9B,IACLv9B,KAAKo4B,IACLp4B,KAAKkyC,IACJlyC,KAAKmhC,KAGLnhC,KAAKinB,MACNjnB,KAAKs1B,ICtBP,SAAS,MCGxB,IAEI,GACA,GACA,GACA,GALAyiC,GAAUJ,KACVK,GAAcL,KAKdM,GAAa,CACfnP,MAAO,GACPH,UAAW,GACXE,QAAS,GACTwO,aAAc,WACZY,GAAWtP,UAAYuP,GACvBD,GAAWpP,QAAUsP,IAEvBb,WAAY,WACVW,GAAWtP,UAAYsP,GAAWpP,QAAUoP,GAAWnP,MAAQ,GAC/DiP,GAAQniE,IAAI,GAAIoiE,KAChBA,GAAYR,SAEd39D,OAAQ,WACN,IAAIsvD,EAAO4O,GAAU,EAErB,OADAA,GAAQP,QACDrO,IAIX,SAAS+O,KACPD,GAAWnP,MAAQsP,GAGrB,SAASA,GAAe/7D,EAAG4pB,GACzBgyC,GAAWnP,MAAQuP,GACnB,GAAM,GAAKh8D,EAAG,GAAM,GAAK4pB,EAG3B,SAASoyC,GAAUh8D,EAAG4pB,GACpB+xC,GAAYpiE,IAAI,GAAKyG,EAAI,GAAK4pB,GAC9B,GAAK5pB,EAAG,GAAK4pB,EAGf,SAASkyC,KACPE,GAAU,GAAK,IAGF,UC9CX,GAAKxvC,IACL,GAAK,GACL,IAAM,GACN,GAAK,GAqBM,ICdX,GACA,GACA,GACA,GDWWyvC,GApBI,CACjBxP,MAYF,SAAqBzsD,EAAG4pB,GAClB5pB,EAAI,KAAI,GAAKA,GACbA,EAAI,KAAI,GAAKA,GACb4pB,EAAI,KAAI,GAAKA,GACbA,EAAI,KAAI,GAAKA,IAfjB0iC,UAAW,GACXE,QAAS,GACTwO,aAAc,GACdC,WAAY,GACZz9D,OAAQ,WACN,IAAIy+D,EAAS,CAAC,CAAC,GAAI,IAAK,CAAC,GAAI,KAE7B,OADA,GAAK,KAAO,GAAK,GAAKzvC,KACfyvC,ICZPC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,EAKLC,GAAiB,CACnBlQ,MAAOmQ,GACPtQ,UAAWuQ,GACXrQ,QAASsQ,GACT9B,aAAc,WACZ2B,GAAerQ,UAAYyQ,GAC3BJ,GAAenQ,QAAUwQ,IAE3B/B,WAAY,WACV0B,GAAelQ,MAAQmQ,GACvBD,GAAerQ,UAAYuQ,GAC3BF,GAAenQ,QAAUsQ,IAE3Bt/D,OAAQ,WACN,IAAImsD,EAAW+S,GAAK,CAACF,GAAKE,GAAID,GAAKC,IAAMH,GAAK,CAACF,GAAKE,GAAID,GAAKC,IAAMH,GAAK,CAACF,GAAKE,GAAID,GAAKC,IAAM,CAAC5hC,IAAKA,KAEnG,OADA0hC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAK,EACtC/S,IAIX,SAASiT,GAAc58D,EAAG4pB,GACxBsyC,IAAMl8D,EACNm8D,IAAMvyC,IACJwyC,GAGJ,SAASS,KACPF,GAAelQ,MAAQwQ,GAGzB,SAASA,GAAuBj9D,EAAG4pB,GACjC+yC,GAAelQ,MAAQyQ,GACvBN,GAAc,GAAK58D,EAAG,GAAK4pB,GAG7B,SAASszC,GAAkBl9D,EAAG4pB,GAC5B,IAAItB,EAAKtoB,EAAI,GACTuoB,EAAKqB,EAAI,GACT2lB,EAAI,GAAKjnB,EAAKA,EAAKC,EAAKA,GAC5B8zC,IAAM9sB,GAAK,GAAKvvC,GAAK,EACrBs8D,IAAM/sB,GAAK,GAAK3lB,GAAK,EACrB2yC,IAAMhtB,EACNqtB,GAAc,GAAK58D,EAAG,GAAK4pB,GAG7B,SAASkzC,KACPH,GAAelQ,MAAQmQ,GAGzB,SAASG,KACPJ,GAAelQ,MAAQ0Q,GAGzB,SAASH,KACPI,GAAkB,GAAK,IAGzB,SAASD,GAAuBn9D,EAAG4pB,GACjC+yC,GAAelQ,MAAQ2Q,GACvBR,GAAc,GAAM,GAAK58D,EAAG,GAAM,GAAK4pB,GAGzC,SAASwzC,GAAkBp9D,EAAG4pB,GAC5B,IAAItB,EAAKtoB,EAAI,GACTuoB,EAAKqB,EAAI,GACT2lB,EAAI,GAAKjnB,EAAKA,EAAKC,EAAKA,GAC5B8zC,IAAM9sB,GAAK,GAAKvvC,GAAK,EACrBs8D,IAAM/sB,GAAK,GAAK3lB,GAAK,EACrB2yC,IAAMhtB,EAENitB,KADAjtB,EAAI,GAAKvvC,EAAI,GAAK4pB,IACP,GAAK5pB,GAChBy8D,IAAMltB,GAAK,GAAK3lB,GAChB8yC,IAAU,EAAJntB,EACNqtB,GAAc,GAAK58D,EAAG,GAAK4pB,GAGd,IAAA+/B,GAAA,GCzFA,SAAS0T,GAAY1U,GAClC5yD,KAAKm2D,SAAWvD,EAElB0U,GAAYzmE,UAAY,CACtB0mE,QAAS,IACTC,YAAa,SAAqBz9D,GAChC,OAAO/J,KAAKunE,QAAUx9D,EAAG/J,MAE3BilE,aAAc,WACZjlE,KAAKq2D,MAAQ,GAEf6O,WAAY,WACVllE,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKw2D,OAAS,GAEhBC,QAAS,WACY,IAAfz2D,KAAKq2D,OAAar2D,KAAKm2D,SAASvH,YACpC5uD,KAAKw2D,OAAS/xB,KAEhBiyB,MAAO,SAAezsD,EAAG4pB,GACvB,OAAQ7zB,KAAKw2D,QACX,KAAK,EAEDx2D,KAAKm2D,SAASxH,OAAO1kD,EAAG4pB,GAExB7zB,KAAKw2D,OAAS,EACd,MAGJ,KAAK,EAEDx2D,KAAKm2D,SAAStH,OAAO5kD,EAAG4pB,GAExB,MAGJ,QAEI7zB,KAAKm2D,SAASxH,OAAO1kD,EAAIjK,KAAKunE,QAAS1zC,GAEvC7zB,KAAKm2D,SAASriC,IAAI7pB,EAAG4pB,EAAG7zB,KAAKunE,QAAS,EAAG,MAMjD9/D,OAAQ,IC/CV,IACIggE,GACA,GACA,GACA,GACA,GALAC,GAAYnC,KAMZoC,GAAe,CACjBjR,MAAO,GACPH,UAAW,WACToR,GAAajR,MAAQkR,IAEvBnR,QAAS,WACHgR,IAAYI,GAAY,GAAK,IACjCF,GAAajR,MAAQ,IAEvBuO,aAAc,WACZwC,IAAa,GAEfvC,WAAY,WACVuC,GAAa,MAEfhgE,OAAQ,WACN,IAAIjG,GAAUkmE,GAEd,OADAA,GAAUtC,QACH5jE,IAIX,SAASomE,GAAiB39D,EAAG4pB,GAC3B8zC,GAAajR,MAAQmR,GACrB,GAAM,GAAK59D,EAAG,GAAM,GAAK4pB,EAG3B,SAASg0C,GAAY59D,EAAG4pB,GACtB,IAAM5pB,EAAG,IAAM4pB,EACf6zC,GAAUlkE,IAAI,GAAK,GAAK,GAAK,GAAK,KAClC,GAAKyG,EAAG,GAAK4pB,EAGA,UC1CA,SAASi0C,KACtB9nE,KAAK+nE,QAAU,GA6DjB,SAAS,GAAO9uC,GACd,MAAO,MAAQA,EAAS,IAAMA,EAAS,IAAMA,EAAS,aAAe,EAAIA,EAAS,IAAMA,EAAS,IAAMA,EAAS,YAAc,EAAIA,EAAS,IA5D7I6uC,GAAWjnE,UAAY,CACrB0mE,QAAS,IACTS,QAAS,GAAO,KAChBR,YAAa,SAAqBz9D,GAEhC,OADKA,GAAKA,KAAO/J,KAAKunE,UAASvnE,KAAKunE,QAAUx9D,EAAG/J,KAAKgoE,QAAU,MACzDhoE,MAETilE,aAAc,WACZjlE,KAAKq2D,MAAQ,GAEf6O,WAAY,WACVllE,KAAKq2D,MAAQ5xB,KAEf8xB,UAAW,WACTv2D,KAAKw2D,OAAS,GAEhBC,QAAS,WACY,IAAfz2D,KAAKq2D,OAAar2D,KAAK+nE,QAAQrmE,KAAK,KACxC1B,KAAKw2D,OAAS/xB,KAEhBiyB,MAAO,SAAezsD,EAAG4pB,GACvB,OAAQ7zB,KAAKw2D,QACX,KAAK,EAEDx2D,KAAK+nE,QAAQrmE,KAAK,IAAKuI,EAAG,IAAK4pB,GAE/B7zB,KAAKw2D,OAAS,EACd,MAGJ,KAAK,EAEDx2D,KAAK+nE,QAAQrmE,KAAK,IAAKuI,EAAG,IAAK4pB,GAE/B,MAGJ,QAEwB,MAAhB7zB,KAAKgoE,UAAiBhoE,KAAKgoE,QAAU,GAAOhoE,KAAKunE,UAErDvnE,KAAK+nE,QAAQrmE,KAAK,IAAKuI,EAAG,IAAK4pB,EAAG7zB,KAAKgoE,WAM/CvgE,OAAQ,WACN,GAAIzH,KAAK+nE,QAAQvmE,OAAQ,CACvB,IAAIiG,EAASzH,KAAK+nE,QAAQ9sD,KAAK,IAG/B,OADAjb,KAAK+nE,QAAU,GACRtgE,EAEP,OAAO,OCjDE,ICNX,GAAW7G,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA4D5E,IAAI,GAAgB,SAAUkzD,GAG5B,SAAS6T,IAGP,OAFA,GAAgBjoE,KAAMioE,GAEf,GAA2BjoE,MAAOioE,EAAcl8D,WAAanL,OAAOkL,eAAem8D,IAAgB3gE,MAAMtH,KAAMiB,YA8DxH,OA7HF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA6C3G,CAAUygD,EAAe7T,GAQzB,GAAa6T,EAAe,CAAC,CAC3BloE,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBkX,EAAYz4B,EAAOy4B,UACnBl7C,EAAYyiB,EAAOziB,UACnBuiE,EAAa9/C,EAAO8/C,WACpB5mE,EAAO8mB,EAAO9mB,KACdwzD,EAAc1sC,EAAO0sC,YACrBD,EAAazsC,EAAOysC,WACpB1L,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MAEnB,IAAK3E,IAASuzD,IAAeC,EAC3B,OAAO,KAGT,GAAInrB,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcq+B,EAAe,GAAS,GAAIjoE,KAAK0F,MAAO,CAC9DikC,UAAW,SAIf,IAAI1/B,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9B2d,Eb9HK,WACb,IAAIl+D,EAAIw5D,GACJ5vC,EAAI6vC,GACJ0E,EAASzE,GACTpxC,EAAK,IACLC,EAAK,IACLN,EAAI,GAERxS,EAAI,EAEJ3b,EAAQ,EAAJmuB,EAEJvZ,EAAI4Z,EAAS,EAAJxuB,GAAS2b,EAElByX,EAAI3E,EAAS,EAAJzuB,GAAS2b,EAElBwiD,EAAY,GAAS,IAErB,SAASmG,EAAQ/mE,GACf,IAAIgnE,EAAU,IAAIn7D,aAAawL,EAAIwe,GAC/BoxC,EAAU,IAAIp7D,aAAawL,EAAIwe,GACnC71B,EAAKmI,SAAQ,SAAUgI,EAAG/G,EAAGpJ,GAC3B,IAAIogE,GAAMz3D,EAAEwH,EAAG/G,EAAGpJ,GAAQyC,GAAK2b,EAC3BiiD,GAAM9tC,EAAEpiB,EAAG/G,EAAGpJ,GAAQyC,GAAK2b,EAC3B8oD,GAAMJ,EAAO32D,EAAG/G,EAAGpJ,GAEnBogE,GAAM,GAAKA,EAAK/oD,GAAKgpD,GAAM,GAAKA,EAAKxqC,IACvCmxC,EAAQ5G,EAAKC,EAAKhpD,IAAM6vD,MAI5BlF,GAAM,CACJr0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACL,CACDr5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACLr2C,GAAKxS,GACR8jD,GAAM,CACJv0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACL,CACDt5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACLp2C,GAAKxS,GACR4jD,GAAM,CACJr0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACL,CACDr5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACLr2C,GAAKxS,GACR8jD,GAAM,CACJv0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACL,CACDt5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACLp2C,GAAKxS,GACR4jD,GAAM,CACJr0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACL,CACDr5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACLr2C,GAAKxS,GACR8jD,GAAM,CACJv0B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMinE,GACL,CACDt5B,MAAOt2B,EACPouC,OAAQ5vB,EACR71B,KAAMgnE,GACLp2C,GAAKxS,GACR,IAAI4iD,EAAKJ,EAAUoG,GAEnB,IAAK3kE,MAAM8E,QAAQ65D,GAAK,CACtB,IAAI53B,Ec3GK,cACb,IAEIjqC,EACA+X,EAHAG,EAAIrV,EAAO9B,OACXkJ,GAAK,EAIT,GAAe,MAAX+/B,GACF,OAAS//B,EAAIiO,GAEX,GAA2B,OAAtBlY,EAAQ6C,EAAOoH,KAAejK,GAASA,EAG1C,IAFA+X,EAAM/X,IAEGiK,EAAIiO,GAEgB,OAAtBlY,EAAQ6C,EAAOoH,KAAejK,EAAQ+X,IACzCA,EAAM/X,QAMd,OAASiK,EAAIiO,GAEX,GAA+C,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,KAAoB7C,GAASA,EAG9D,IAFA+X,EAAM/X,IAEGiK,EAAIiO,GAEoC,OAA1ClY,EAAQgqC,EAAQnnC,EAAOoH,GAAIA,EAAGpH,KAAoB7C,EAAQ+X,IAC7DA,EAAM/X,GAOhB,OAAO+X,EduEQ,CAAI8vD,GACfhG,EAAKh3B,GAAS,EAAGZ,EAAM43B,IACvBA,EAAK,GAAM,EAAG10D,KAAK4Y,MAAMkkB,EAAO43B,GAAMA,EAAIA,IACvCmG,QAGL,OAAO,KAAWpF,WAAWf,GAAI3gE,KAAK,CAACgX,EAAGwe,GAAnC,CAAuCmxC,GAAS1iE,IAAIib,GAG7D,SAASA,EAAUgjD,GAIjB,OAHAA,EAASpjE,OAASmN,KAAKo4B,IAAI,GAAI,EAAItmB,GAEnCmkD,EAASb,YAAYv5D,QAAQi/D,GACtB7E,EAGT,SAAS6E,EAAiB1F,GACxBA,EAAYv5D,QAAQk/D,GAGtB,SAASA,EAAc3F,GACrBA,EAAYv5D,QAAQm/D,GAItB,SAASA,EAAe5F,GACtBA,EAAY,GAAKA,EAAY,GAAKp1D,KAAKo4B,IAAI,EAAGtmB,GAAK3b,EACnDi/D,EAAY,GAAKA,EAAY,GAAKp1D,KAAKo4B,IAAI,EAAGtmB,GAAK3b,EAGrD,SAAS8kE,IAIP,OAFAlwD,EAAI4Z,EAAS,GADbxuB,EAAQ,EAAJmuB,IACcxS,EAClByX,EAAI3E,EAAS,EAAJzuB,GAAS2b,EACX2oD,EAyCT,OAtCAA,EAAQp+D,EAAI,SAAUF,GACpB,OAAO9I,UAAUO,QAAUyI,EAAiB,mBAANF,EAAmBA,EAAI,IAAUA,GAAIs+D,GAAWp+D,GAGxFo+D,EAAQx0C,EAAI,SAAU9pB,GACpB,OAAO9I,UAAUO,QAAUqyB,EAAiB,mBAAN9pB,EAAmBA,EAAI,IAAUA,GAAIs+D,GAAWx0C,GAGxFw0C,EAAQD,OAAS,SAAUr+D,GACzB,OAAO9I,UAAUO,QAAU4mE,EAAsB,mBAANr+D,EAAmBA,EAAI,IAAUA,GAAIs+D,GAAWD,GAG7FC,EAAQ1mE,KAAO,SAAUoI,GACvB,IAAK9I,UAAUO,OAAQ,MAAO,CAAC+wB,EAAIC,GAEnC,IAAI2wC,EAAKv1D,KAAK0K,KAAKvO,EAAE,IACjBq5D,EAAKx1D,KAAK0K,KAAKvO,EAAE,IAErB,KAAMo5D,GAAM,GAAQA,GAAM,GAAI,MAAM,IAAIn2D,MAAM,gBAC9C,OAAOulB,EAAK4wC,EAAI3wC,EAAK4wC,EAAIyF,KAG3BR,EAAQS,SAAW,SAAU/+D,GAC3B,IAAK9I,UAAUO,OAAQ,OAAO,GAAKke,EACnC,MAAO3V,GAAKA,IAAM,GAAI,MAAM,IAAIiD,MAAM,qBACtC,OAAO0S,EAAI9R,KAAK4Y,MAAM5Y,KAAKu9B,IAAIphC,GAAK6D,KAAK69B,KAAMo9B,KAGjDR,EAAQhF,WAAa,SAAUt5D,GAC7B,OAAO9I,UAAUO,QAAU0gE,EAAyB,mBAANn4D,EAAmBA,EAAIpG,MAAM8E,QAAQsB,GAAK,GAAS,GAAM7I,KAAK6I,IAAM,GAASA,GAAIs+D,GAAWnG,GAG5ImG,EAAQxnB,UAAY,SAAU92C,GAC5B,IAAK9I,UAAUO,OAAQ,OAAOoM,KAAKinB,KAAK3C,GAAKA,EAAI,IACjD,MAAOnoB,GAAKA,IAAM,GAAI,MAAM,IAAIiD,MAAM,qBACtC,OAAOklB,EAAItkB,KAAK6rB,OAAO7rB,KAAKinB,KAAK,EAAI9qB,EAAIA,EAAI,GAAK,GAAK,GAAI8+D,KAGtDR,EarCiB,GAAiBp+D,GAAE,SAAUwH,GAC/C,OAAOxH,EAAEwH,MACRoiB,GAAE,SAAUpiB,GACb,OAAOoiB,EAAEpiB,MACR9P,KAAK,CAACkzD,EAAYC,IAAcjU,UAAUA,EAJzB,CAIoCv/C,GACpDynE,ED9IK,cACb,IACIC,EACAC,EAFAzB,EAAc,IAIlB,SAASlnE,EAAK6D,GAMZ,OALIA,IACyB,mBAAhBqjE,GAA4ByB,EAAczB,aAAaA,EAAYlgE,MAAMtH,KAAMiB,YAC1F6iE,GAAO3/D,EAAQ6kE,EAAiBC,KAG3BA,EAAcxhE,SAwCvB,OArCAnH,EAAKy2D,KAAO,SAAU5yD,GAEpB,OADA2/D,GAAO3/D,EAAQ6kE,EAAiB,KACzB,GAASvhE,UAGlBnH,EAAK4oE,QAAU,SAAU/kE,GAEvB,OADA2/D,GAAO3/D,EAAQ6kE,EAAiB,KACzB,GAAYvhE,UAGrBnH,EAAK4lE,OAAS,SAAU/hE,GAEtB,OADA2/D,GAAO3/D,EAAQ6kE,EAAiB,KACzB,GAAWvhE,UAGpBnH,EAAKszD,SAAW,SAAUzvD,GAExB,OADA2/D,GAAO3/D,EAAQ6kE,EAAiB,KACzB,GAAavhE,UAGtBnH,EAAK6oE,WAAa,SAAUp/D,GAC1B,OAAO9I,UAAUO,QAAUwnE,EAAwB,MAALj/D,GAAao/D,EAAa,KAAM,KAAaA,EAAap/D,GAAG+5D,OAAQxjE,GAAQ6oE,GAG7H7oE,EAAKsyD,QAAU,SAAU7oD,GACvB,OAAK9I,UAAUO,QACfynE,EAAqB,MAALl/D,GAAa6oD,EAAU,KAAM,IAAIkV,IAAgB,IAAIR,GAAY1U,EAAU7oD,GAChE,mBAAhBy9D,GAA4ByB,EAAczB,YAAYA,GAC1DlnE,GAHuBsyD,GAMhCtyD,EAAKknE,YAAc,SAAUz9D,GAC3B,OAAK9I,UAAUO,QACfgmE,EAA2B,mBAANz9D,EAAmBA,GAAKk/D,EAAczB,aAAaz9D,IAAKA,GACtEzJ,GAFuBknE,GAKzBlnE,EAAK6oE,WAAWA,GAAYvW,QAAQA,GC2F7B,GAENwW,EA3DV,SAAmB9nE,GACjB,OAAOA,EAAK4mC,QAAO,SAAUye,EAAK3d,GAChC,MAAO,CACLjE,IAAKn3B,KAAKm3B,IAAI4hB,EAAI5hB,IAAKiE,EAAIvoC,OAC3B+X,IAAK5K,KAAK4K,IAAImuC,EAAInuC,IAAKwwB,EAAIvoC,UAE5B,CACDskC,IAAKtO,IACLje,KAAMie,MAmDa4yC,CAAUlB,GACvBpjC,EAAMqkC,EAAWrkC,IACjBvsB,EAAM4wD,EAAW5wD,IAEjB8wD,EAAa,KAAcp8B,OAAO,CAACnI,EAAKvsB,IAAMiB,MAAMyuD,GAAc7c,IACtE,OAAO,IAAMzhB,cAAc,IAAK,CAC9BjkC,UAAW,kDAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxDkf,EAAcviE,KAAI,SAAU4yB,EAASj1B,GACtC,OAAO,IAAMqmC,cAAc,OAAQ,CACjCjkC,UAAW,mCACX5F,IAAK,oCAAsCwD,EAC3CkO,EAAGs3D,EAAIvwC,GACPvyB,MAAO,GAAS,CACdqL,KAAMg4D,EAAW9wC,EAAQ/3B,QACxBwF,aAMJgiE,EApEW,CAqElB,IAEF,GAAc/c,aAAe,GAAS,GAAI,GAAeA,aAAc,CACrErK,UAAW,GACX56C,MAAO,KAEM,IEpLX,GAAWrF,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAgD5E,SAASqoE,GAAmBjmE,GAC1B,IAAI7C,EAAQ+oE,GAAsBlmE,GAElC,GAAI7C,EACF,MAAO,CACLgpE,MAAO,IACPhpE,MAAOw/C,GAAuBx/C,EAAMwJ,IAW1C,SAASy/D,GAAmBpmE,GAC1B,OAAOA,EAAOsC,KAAI,SAAU4Z,EAAG9U,GAC7B,GAAI8U,EACF,MAAO,CACL/e,MAAO+e,EAAEqU,EACT41C,MAAO/+D,MAYf,SAAS8+D,GAAsBlmE,GAC7B,OAAQA,GAAU,IAAI01B,MAAK,SAAUxZ,GACnC,OAAO/S,QAAQ+S,MAInB,IAAI,GAAY,SAAU4oB,GAGxB,SAASuhC,IAGP,OAFA,GAAgB3pE,KAAM2pE,GAEf,GAA2B3pE,MAAO2pE,EAAU59D,WAAanL,OAAOkL,eAAe69D,IAAYriE,MAAMtH,KAAMiB,YA8IhH,OAzOF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAyE3G,CAAUmiD,EAAWvhC,GAQrB,GAAauhC,EAAW,CAAC,CACvB5pE,IAAK,wBAOLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdpC,EAAS8kB,EAAO9kB,OAEhBsmE,GAAQC,EADMzhD,EAAOyhD,aACDvmE,GAExB,OAAKsmE,EAIEA,EAAM7wC,QAAO,SAAUruB,GAC5B,OAAOA,KACN9E,KAAI,SAAqB6kD,EAAM//C,GAChC,OAAO,IAAMk/B,cAAc,MAAO,CAChCjkC,UAAW,qBACX5F,IAAK,OAAS2K,GACb,IAAMk/B,cAAc,OAAQ,CAC7BjkC,UAAW,6BACV8kD,EAAKgf,OAAQ,KAAM,IAAM7/B,cAAc,OAAQ,CAChDjkC,UAAW,6BACV8kD,EAAKhqD,WAbD,OAsBV,CACDV,IAAK,wBACLU,MAAO,WACL,IAAIsoD,EAAU/oD,KAAK0F,MACfpC,EAASylD,EAAQzlD,OACjBwmE,EAAc/gB,EAAQ+gB,YACtB7jE,EAAQ8iD,EAAQ9iD,MAChB8jE,EAAYD,EAAYxmE,GAE5B,OAAKymE,EAIE,IAAMngC,cAAc,MAAO,CAChCjkC,UAAW,sBACX5F,IAAK,QACLkG,MAAOA,EAAMwjE,OACZ,IAAM7/B,cAAc,OAAQ,CAC7BjkC,UAAW,8BACVokE,EAAUN,OAAQ,KAAM,IAAM7/B,cAAc,OAAQ,CACrDjkC,UAAW,8BACVokE,EAAUtpE,QAXJ,OAaV,CACDV,IAAK,SACLU,MAAO,WACL,IAAIwpD,EAAUjqD,KAAK0F,MACfyU,EAAW8vC,EAAQ9vC,SACnBxU,EAAYskD,EAAQtkD,UACpBrC,EAAS2mD,EAAQ3mD,OACjB2lD,EAAYgB,EAAQhB,UACpBE,EAAac,EAAQd,WACrB0L,EAAa5K,EAAQ4K,WACrBC,EAAc7K,EAAQ6K,YACtB7uD,EAAQgkD,EAAQhkD,MAChBxF,EAAQ+oE,GAAsBlmE,GAElC,IAAK7C,EACH,OAAO,KAGT,IACIupE,EADI7kB,GAAoBnlD,KAAK0F,MAAO,IACxBuE,CAAExJ,GACdwpE,EAAqBjqE,KAAK0F,MAAMwkE,YAEhCh5C,EAAOi4B,EAAa6gB,EACpBjgB,EAAMd,EACNkhB,EAAiB,kDAHoB9gE,IAAvB4gE,EAAmCD,EAAYnV,EAAa,EAAI,OAAS,QAAUoV,GAIrG,OAAO,IAAMrgC,cAAc,MAAO,CAChCjkC,UAAW,gBAAkBA,EAC7BM,MAAO,CACLirB,KAAMA,EAAO,KACb64B,IAAKA,EAAM,OAEZ,IAAMngB,cAAc,MAAO,CAC5BjkC,UAAW,qBACXM,MAAO,GAAS,CACd8gD,OAAQ+N,EAAc,MACrB7uD,EAAM4wD,QACP,IAAMjtB,cAAc,MAAO,CAC7BjkC,UAAWwkE,GACVhwD,GAAsB,IAAMyvB,cAAc,MAAO,CAClDjkC,UAAW,+BACXM,MAAOA,EAAMmkE,KACZ,IAAMxgC,cAAc,MAAO,KAAM5pC,KAAKqqE,wBAAyBrqE,KAAKsqE,+BAEvE,CAAC,CACHvqE,IAAK,eACLyH,IAAK,WACH,MAAO,CACLsiE,YAAaP,GACbM,YAAaH,GACbzjE,MAAO,CACL4wD,KAAM,GACN4S,MAAO,GACPW,IAAK,OAIV,CACDrqE,IAAK,YACLyH,IAAK,WACH,MAAO,CACL7B,UAAW,IAAUgK,OACrBrM,OAAQ,IAAUukB,QAAQ,IAAUK,UAAU,CAAC,IAAUnY,OAAQ,IAAUJ,OAAQ,IAAUxL,UAC7F2nD,OAAQ,IAAU3nD,OAClB0wD,WAAY,IAAU9kD,OACtB+kD,YAAa,IAAU/kD,OACvBo5C,WAAY,IAAUp5C,OACtBk5C,UAAW,IAAUl5C,OACrBm6D,YAAa,IAAUzkB,MAAM,CAAC,OAAQ,UACtCokB,YAAa,IAAUrkE,KACvBskE,YAAa,IAAUtkE,KACvBS,MAAO,IAAU6hB,MAAM,CACrB+uC,KAAM,IAAU1yD,OAChBslE,MAAO,IAAUtlE,OACjBimE,IAAK,IAAUjmE,cAMhBwlE,EApJO,CAqJd,iBAEF,GAAU9/B,YAAc,YACT,UC3RX,GAAe,WACjB,SAASt/B,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBie,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAmB5E,SAAS,GAAmB2oB,GAC1B,GAAIlmB,MAAM8E,QAAQohB,GAAM,CACtB,IAAK,IAAInf,EAAI,EAAG21C,EAAO18C,MAAMkmB,EAAIroB,QAASkJ,EAAImf,EAAIroB,OAAQkJ,IACxD21C,EAAK31C,GAAKmf,EAAInf,GAGhB,OAAO21C,EAEP,OAAO18C,MAAM28C,KAAKz2B,GA2BtB,IACI0gD,GAAgB,CAClBh5D,OAAQ,OACRD,KAAM,QAGR,SAASk5D,GAAqB1/D,GAC5B,IAAInJ,EAAOV,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,GAAmBA,UAAU,GAAK,EAC3EgF,EAAQhF,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,GAAmBA,UAAU,GAAKspE,GAEhF,OAAQz/D,GACN,IAAK,UACH,OAAO,IAAM8+B,cAAc,UAAW,CACpC3jC,MAAOA,EACPwkE,OAAQ,OAAS9oE,EAAO,EAAI,IAAMA,EAAO,EAAI,MAAQA,EAAO,KAAOA,EAAO,EAAI,IAAMA,EAAO,EAAI,SAGnG,IAAK,OACH,IAAI+oE,EAAa,GAAG/gE,OAAO,GAAmB,IAAIhG,MAAM,KAAKiC,KAAI,SAAU+yB,EAAGp1B,GAC5E,IAAIgpD,EAAQhpD,EAAQ,EAAIqK,KAAKmxC,GAAK,EAC9B4rB,EAAape,EAAQ3+C,KAAKmxC,GAAK,GAC/B6rB,EAAare,EAAQ3+C,KAAKmxC,GAAK,GAE/B0R,EAAc9uD,EAAO,KACzB,MAAO,aAAeiM,KAAKgyC,IAAIgrB,GAAcjpE,EAAO,IAAMiM,KAAKkyC,IAAI8qB,GAAcjpE,EAAO,aAAeiM,KAAKgyC,IAAI+qB,GAAcla,EAAc,IAAM7iD,KAAKkyC,IAAI6qB,GAAcla,EAAc,cACtLx1C,KAAK,KACR,OAAO,IAAM2uB,cAAc,UAAW,CACpC6gC,OAAQC,EACRzgE,EAAG,IACH4pB,EAAG,IACHkzB,OAAQplD,EACRstC,MAAOttC,EACPsE,MAAOA,IAGX,IAAK,SACH,OAAO,IAAM2jC,cAAc,OAAQ,CACjC3/B,EAAG,IAAMtI,EAAO,EAChBkyB,EAAG,IAAMlyB,EAAO,EAChBolD,OAAQplD,EACRstC,MAAOttC,EACPsE,MAAOA,IAGX,QACA,IAAK,SACH,OAAO,IAAM2jC,cAAc,SAAU,CACnCpV,GAAI,IACJT,GAAI,IACJ7B,EAAGvwB,EAAO,EACVsE,MAAOA,KAmCf,IAAI,GAAkB,SAAUmuD,GAG9B,SAASyW,IAGP,OAFA,GAAgB7qE,KAAM6qE,GAEf,GAA2B7qE,MAAO6qE,EAAgB9+D,WAAanL,OAAOkL,eAAe++D,IAAkBvjE,MAAMtH,KAAMiB,YAuE5H,OArNF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA4H3G,CAAUqjD,EAAiBzW,GAQ3B,GAAayW,EAAiB,CAAC,CAC7B9qE,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBmlE,EAAkB1iD,EAAO0iD,gBACzBxpE,EAAO8mB,EAAO9mB,KACdwzD,EAAc1sC,EAAO0sC,YACrBD,EAAazsC,EAAOysC,WACpB1L,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MACftE,EAAOymB,EAAOzmB,KAElB,IAAKL,IAASuzD,IAAeC,EAC3B,OAAO,KAGT,GAAInrB,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcihC,EAAiB,GAAS,GAAI7qE,KAAK0F,MAAO,CAChEikC,WAAW,MAIf,IAAI1/B,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9BugB,EAAWzpE,EAAKsE,KAAI,SAAUolE,EAAiBznE,GACjD,IAAI0nE,EAAmB,CACrBhhE,EAAGA,EAAE+gE,GACLn3C,EAAGA,EAAEm3C,IAEHE,EA7EZ,SAA2BxiC,GACzB,IAAIoiC,EAAkBpiC,EAAKoiC,gBACvBK,EAAcziC,EAAKyiC,YACnBF,EAAmBviC,EAAKuiC,iBAExBhlE,GADoByiC,EAAK0iC,kBACjB1iC,EAAKziC,OACbolE,EAAY3iC,EAAK2iC,UACjB1pE,EAAOmpE,EAAgBnpE,KAEvB2pE,EAAW,GAAS,GAAIrlE,EAAO6kE,EAAgB7kE,OAAS,IAExDilE,EAAiBJ,EAAgBA,gBAErC,OAAKI,GAAyC,iBAAhBC,EAKzBD,EAIyB,iBAAnBA,EACFV,GAAqBU,GAAkBC,EAAaxpE,EAAM2pE,GAI5DJ,EAAeJ,EAAiBG,EAAkBK,GARhDH,EAAYL,EAAiBG,EAAkBK,GAL/Cd,GAAqBW,EAAaxpE,GAAQ0pE,EAAWC,GA+DnCC,CAAkB,CACrCT,gBAAiBE,EACjBC,iBAAkBA,EAClBE,YAAaL,EACbM,kBAAmB,CACjBnhE,EAAGA,EACH4pB,EAAGA,GAEL5tB,MAAOA,EACPolE,UAAW1pE,IAEb,OAAO,IAAMioC,cAAc,IAAK,CAC9BjkC,UAAW,iCACX5F,IAAK,kCAAoCwD,EACzCsd,UAAW,aAAeoqD,EAAiBhhE,EAAI,IAAMghE,EAAiBp3C,EAAI,IAC1E23C,aAAc,SAAsBpmE,GAClC,OAAO8vD,EAAO3M,uBAAuByiB,EAAiB5lE,IAExDqmE,aAAc,SAAsBrmE,GAClC,OAAO8vD,EAAO7M,sBAAsB2iB,EAAiB5lE,KAEtD8lE,MAEL,OAAO,IAAMthC,cAAc,IAAK,CAC9BjkC,UAAW,6DAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD8hB,OAIAF,EA7Ea,CA8EpB,IAEF,GAAgB3f,aAAe,GAAS,GAAI,GAAeA,aAAc,CACvEvhB,WAAW,EACXmhC,gBAAiB,SACjB7kE,MAAO,GACPtE,KAAM,IAEO,IC5QX,GAAWf,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAuCM,SAAS2kE,GAAmBhmE,GACzC,IAAIimE,EAAajmE,EAAMimE,WACnBC,EAAgBlmE,EAAMkmE,cACtBC,EAAYnmE,EAAMmmE,UAClBC,EAAUpmE,EAAMomE,QAChBC,EAAYrmE,EAAMqmE,UAClBC,EAAWtmE,EAAMsmE,SACjB/lE,EAAQP,EAAMO,MAQdwkE,E3BuCC,SAAwB/hC,GAC7B,IAAImjC,EAAYnjC,EAAKmjC,UACjBC,EAAUpjC,EAAKojC,QACfF,EAAgBljC,EAAKkjC,cACrBD,EAAajjC,EAAKijC,WAElBM,EAvCC,SAAqBJ,EAAWC,GAErC,GAAID,EAAU5hE,IAAM6hE,EAAQ7hE,EAC1B,MAAO,CACLinB,KAAM26C,EAAUh4C,EAChB1C,MAAO26C,EAAQj4C,EACfq4C,MAAO,EACPv6D,OAAQk6D,EAAU5hE,GAItB,IAAIiiE,GAASL,EAAUh4C,EAAIi4C,EAAQj4C,IAAMg4C,EAAU5hE,EAAI6hE,EAAQ7hE,GAC/D,MAAO,CACLinB,KAAM26C,EAAU5hE,EAChBknB,MAAO26C,EAAQ7hE,EAEfiiE,MAAOA,EACPv6D,OAAQk6D,EAAUh4C,EAAIq4C,EAAQL,EAAU5hE,GAsBvBkiE,CAAYN,EAAWC,GACtC56C,EAAO+6C,EAAa/6C,KACpBC,EAAQ86C,EAAa96C,MACrB+6C,EAAQD,EAAaC,MACrBv6D,EAASs6D,EAAat6D,OAGtBy6D,GAAcj7C,EAAQD,GAAQ06C,EAC9BS,EAAY,KAAcn/B,OAAO,CAAChc,EAAMC,IAAQ1X,MAAMkyD,GACtDW,EAAgBT,EAAU5hE,IAAM6hE,EAAQ7hE,EAC5C,MAAO,CACLiiE,MAAOI,EAAgB71C,IAAWy1C,EAClCzB,OAAQ,GAAMv5C,EAAMC,EAAQi7C,EAAYA,GAAYxmE,KAAI,SAAUgb,GAChE,OAAI0rD,EACK,CACLz4C,EAAGjT,EACH3W,EAAGiiE,EAAQtrD,EAAMjP,EACjBkuD,KAAMwM,EAAUzrD,IAIb,CACL3W,EAAG2W,EACHiT,EAAGq4C,EAAQtrD,EAAMjP,EACjBkuD,KAAMwM,EAAUzrD,OAEjBld,MAAM,EAAGkoE,EAAgB,I2B7ERW,CAAe,CACnCV,UAAWA,EACXC,QAASA,EACTF,cAAeA,EACfD,WAAYA,IAEelB,OAGzB+B,E3BgFC,SAAsBX,EAAWC,GACtC,OAAID,EAAU5hE,IAAM6hE,EAAQ7hE,EACnB6hE,EAAQj4C,EAAIg4C,EAAUh4C,EAAIjmB,KAAKmxC,GAAK,EAAI,EAAInxC,KAAKmxC,GAAK,EAGxDnxC,KAAK83D,MAAMoG,EAAQj4C,EAAIg4C,EAAUh4C,IAAMi4C,EAAQ7hE,EAAI4hE,EAAU5hE,I2BrFpDwiE,CAAaZ,EAAWC,GAAWl+D,KAAKmxC,GAAK,EAC7D,OAAO0rB,EAAO7kE,KAAI,SAAU8wD,EAAOnzD,GACjC,IAAImpE,EAAY,GAAS,CACvB16C,GAAI,EACJC,GAAI,EACJ+8B,GAAIgd,EAAWp+D,KAAKgyC,IAAI4sB,GACxBvd,GAAI+c,EAAWp+D,KAAKkyC,IAAI0sB,IACvBvmE,EAAM8kC,OAEL4hC,EAAY,GAAS,CACvB1iE,EAAG+hE,EAAWp+D,KAAKgyC,IAAI4sB,GACvB34C,EAAGm4C,EAAWp+D,KAAKkyC,IAAI0sB,GACvBI,WAAY,SACX3mE,EAAM45D,MAET,OAAO,IAAMj2B,cAAc,IAAK,CAC9B7pC,IAAKwD,EACLsd,UAAW,aAAe61C,EAAMzsD,EAAI,KAAOysD,EAAM7iC,EAAI,IACrDluB,UAAW,0BACV,IAAMikC,cAAc,OAAQ,GAAS,GAAI8iC,EAAW,CACrD/mE,UAAW,kCACR,IAAMikC,cAAc,OAAQ,GAAS,GAAI+iC,EAAW,CACvDhnE,UAAW,iCACTomE,EAAUrV,EAAMmJ,WC3FxB,IAAI,GAAWj/D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IACI,GAAgB,CAAC,SAAU,SAAU,UAAW,UAAW,QAAS,SAAU,aAAc,YAAa,cAAe,eAAgB,WAAY,YAAa,gBAAiB,iBAElL,GAAiB,SAAUkzD,GAG7B,SAASyY,IAGP,OAFA,GAAgB7sE,KAAM6sE,GAEf,GAA2B7sE,MAAO6sE,EAAe9gE,WAAanL,OAAOkL,eAAe+gE,IAAiBvlE,MAAMtH,KAAMiB,YAqE1H,OAtHF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA+B3G,CAAUqlD,EAAgBzY,GAQ1B,GAAayY,EAAgB,CAAC,CAC5B9sE,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBwjD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnB4iB,EAAYzjD,EAAOyjD,UACnBC,EAAU1jD,EAAO0jD,QACjBH,EAAavjD,EAAOujD,WACpBC,EAAgBxjD,EAAOwjD,cACvBG,EAAY3jD,EAAO2jD,UACnBC,EAAW5jD,EAAO4jD,SAClB/lE,EAAQmiB,EAAOniB,MAEnB,GAAI0jC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe,KACb,IAAM8B,cAAcijC,EAAgB,GAAS,GAAI7sE,KAAK0F,MAAO,CAC/DikC,UAAW,SAIf,IAAI1/B,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAElC,OAAO,IAAM5gB,cAAc,IAAK,CAC9BjkC,UAAW,2CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD,IAAMrf,cAAc,OAAQ,GAAS,GAAI,GAAS,CACnD5X,GAAI/nB,EAAE,CACJA,EAAG4hE,EAAU5hE,IAEf+kD,GAAI/kD,EAAE,CACJA,EAAG6hE,EAAQ7hE,IAEbgoB,GAAI4B,EAAE,CACJA,EAAGg4C,EAAUh4C,IAEfo7B,GAAIp7B,EAAE,CACJA,EAAGi4C,EAAQj4C,KAEZ5tB,EAAM4wD,MAAO,CACdlxD,UAAW,4BACR,IAAMikC,cAAc,IAAK,CAC5BjkC,UAAW,iCACV,GAAoB,CACrBgmE,WAAYA,EACZG,QAAS,CACP7hE,EAAGA,EAAE6hE,GACLj4C,EAAGA,EAAEi4C,IAEPD,UAAW,CACT5hE,EAAGA,EAAE4hE,GACLh4C,EAAGA,EAAEg4C,IAEPD,cAAeA,EACfG,UAAWA,EACXC,SAAUA,EACV/lE,MAAOA,UAKN4mE,EA3EY,CA4EnB,IAEEC,GAAiB,GAAO,OAC5B,GAAe5hB,aAAe,CAC5BvlD,UAAW,GACXimE,cAAe,GACfG,UAAW,SAAmBt6D,GAC5B,OAAOq7D,GAAer7D,IAExBu6D,SAAU,EACV/lE,MAAO,CACL4wD,KAAM,CACJkW,YAAa,GAEfhiC,MAAO,CACLgiC,YAAa,GAEflN,KAAM,KAGV,GAAeh2B,YAAc,iBACd,UCpKf,SAASmjC,GAAatnE,GACpB,IAAIC,EAAYD,EAAMC,UACtB,OAAO,IAAMikC,cAAc,OAAQ,CACjCjkC,UAAW,oBAA4BA,GACtCD,EAAMyU,UAGX6yD,GAAanjC,YAAc,eAC3BmjC,GAAavN,aAAc,EAC3BuN,GAAa9hB,aAAe,CAC1BvlD,UAAW,IAEE,IClCX,GAAW/E,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgBtgB,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAGT,SAAS,GAAgBkjB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAIs/D,GAAWE,GAAUF,SACrB,GAAe,CACjByM,UAAWzM,IAET,GAAgB,CAAC,SAAU,SAAU,UAAW,UAAW,QAAS,SAAU,aAAc,YAAa,cAAe,eAAgB,aAExI,GAAY,SAAUp4B,GAGxB,SAAS8kC,IAGP,OAFA,GAAgBltE,KAAMktE,GAEf,GAA2BltE,MAAOktE,EAAUnhE,WAAanL,OAAOkL,eAAeohE,IAAY5lE,MAAMtH,KAAMiB,YAqEhH,OAxHF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAiC3G,CAAU0lD,EAAW9kC,GAQrB,GAAa8kC,EAAW,CAAC,CACvBntE,IAAK,mBACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdmvD,EAAazsC,EAAOysC,WACpBC,EAAc1sC,EAAO0sC,YACrB7L,EAAY7gC,EAAO6gC,UAGvB,MAAO,CACL/3B,KAHe9I,EAAO+gC,WAItBY,IAAKd,EACLha,MAAO4lB,EACP9N,OAAQ+N,EACR+L,UAAWF,GANGv4C,EAAO6kD,YAM0BzM,GAAW3L,EAAaC,MAG1E,CACD/0D,IAAK,SACLU,MAAO,WACL,IAAIsoD,EAAU/oD,KAAK0F,MACfikC,EAAYof,EAAQpf,UACpBhkC,EAAYojD,EAAQpjD,UAExB,GAAIgkC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe,KACb,IAAM8B,cAAcsjC,EAAW,GAAS,GAAIltE,KAAK0F,MAAO,CAC1DikC,UAAW,SAIf,IAAIjkC,EAAQ,GAAS,GAAI1F,KAAKkhE,mBAAoBlhE,KAAK0F,OAEnDy8C,EAAOz8C,EAAMy8C,KACb8qB,EAAYvnE,EAAMunE,UAClBh+B,EAAQvpC,EAAMupC,MACd8X,EAASrhD,EAAMqhD,OACf9gD,EAAQP,EAAMO,MACd46D,EAAYn7D,EAAMm7D,UAClBC,EAAap7D,EAAMo7D,WACnB/W,EAAMrkD,EAAMqkD,IACZ74B,EAAOxrB,EAAMwrB,KACbi8C,EAAaF,IAAczM,GAC3B4M,EAAYD,EAAa,IAAM,IAC/BE,EAAYF,EAAa,IAAM,IAC/B3rE,EAAS2rE,EAAapmB,EAAS9X,EAC/B7B,EAAQ6X,GAAkBv/C,EAAOy8C,GACjC7+C,EAASs9D,GAAcxzB,EAAOyzB,EAAWC,GAC7C,OAAO,IAAMl3B,cAAc,IAAK,CAC9B/oB,UAAW,aAAeqQ,EAAO,IAAM64B,EAAM,IAC7CpkD,UAAW,0BAA4BA,GACtCrC,EAAOsC,KAAI,SAAU4Z,EAAG9U,GACzB,IAAI4iE,EAEAC,EAAMngC,EAAM5tB,GACZguD,GAA8B,GAAjBF,EAAa,GAAgCD,EAAY,IAAKE,GAAM,GAAgBD,EAAYD,EAAY,IAAKE,GAAM,GAAgBD,EAAYF,EAAY,IAAK,GAAI,GAAgBE,EAAYF,EAAY,IAAK5rE,GAAS8rE,GAC/O,OAAO,IAAM1jC,cAAc,OAAQ,GAAS,GAAI4jC,EAAW,CACzDztE,IAAK2K,EACL/E,UAAW,+BACXM,MAAOA,aAMRinE,EA3EO,CA4Ed,iBAEF,GAAUrjC,YAAc,YACxB,GAAUqhB,aAAe,GACzB,GAAUuU,aAAc,EACT,UC3LX,GAAW7+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAEI,GAAgB,SAAUkzD,GAG5B,SAASqZ,IAGP,OAFA,GAAgBztE,KAAMytE,GAEf,GAA2BztE,MAAOytE,EAAc1hE,WAAanL,OAAOkL,eAAe2hE,IAAgBnmE,MAAMtH,KAAMiB,YA0FxH,OAzIF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA6B3G,CAAUimD,EAAerZ,GAQzB,GAAaqZ,EAAe,CAAC,CAC3B1tE,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACd6nD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MAEnB,IAAK3E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAc6jC,EAAe,GAAS,GAAIztE,KAAK0F,MAAO,CAC9DikC,UAAW,SAIf,IAGI+jC,EAHmB,GAAS,CAC9BA,UAAW,IACVznE,GAC8BynE,UAE7BzjE,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9B5lB,EAAU5kC,KAAKwqD,qBAAqB,WAEpCl5C,EAAOtR,KAAKwqD,qBAAqB,SAAWxqD,KAAKwqD,qBAAqB,SAEtEj5C,EAASvR,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SAE1EmjB,EAAY3tE,KAAK4tE,kBAAkB,KAEnCC,EAAY7tE,KAAK4tE,kBAAkB,KAEvC,OAAO,IAAMhkC,cAAc,IAAK,CAC9BjkC,UAAW,kDAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD3nD,EAAKsE,KAAI,SAAU6L,EAAG/G,GACvB,IAAIojE,EAAQ,GAAS,CACnB7nE,MAAO,GAAS,CACdsL,OAAQA,GAAUA,EAAOE,GACzBH,KAAMA,GAAQA,EAAKG,GACnBmzB,QAASA,GAAWA,EAAQnzB,IAC3BxL,IACFynE,EAAW,CACZzjE,EAAGA,EAAEwH,GAAKk8D,EAAY,EACtB95C,EAAGA,EAAEpiB,GAAKo8D,EAAY,EACtB5+B,MAAO0+B,EACP5mB,OAAQ8mB,EACR9tE,IAAK2K,EACLirD,QAAS,SAAiBvwD,GACxB,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,IAEtCwwD,cAAe,SAAuBxwD,GACpC,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,IAE3CqwD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,IAE1CswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,MAI3C,OAAO,IAAMwkC,cAAc,OAAQkkC,UAGrC,CAAC,CACH/tE,IAAK,kBACLU,MAAO,SAAyB0hD,GAE9B,MAAO,CACL4rB,yBAFsC,MAAT5rB,GAAyB,MAATA,OAO5CsrB,EAhGW,CAiGlB,IAEF,GAAc5jC,YAAc,gBACb,IC3LXmkC,GAAUpgE,KAAKmxC,GAAK,EACpBkvB,GAAS,CAAC,EAAGD,GAAS,EAAIA,GAAS,EAAIA,GAAS,EAAIA,GAAS,EAAIA,IAErE,SAASE,GAAOz8D,GACd,OAAOA,EAAE,GAGX,SAAS08D,GAAO18D,GACd,OAAOA,EAAE,GAGI,ICXX,GAAW7Q,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAmB5E,SAAS,GAAmB2oB,GAC1B,GAAIlmB,MAAM8E,QAAQohB,GAAM,CACtB,IAAK,IAAInf,EAAI,EAAG21C,EAAO18C,MAAMkmB,EAAIroB,QAASkJ,EAAImf,EAAIroB,OAAQkJ,IACxD21C,EAAK31C,GAAKmf,EAAInf,GAGhB,OAAO21C,EAEP,OAAO18C,MAAM28C,KAAKz2B,GA4CtB,IAAI,GAAe,SAAUuqC,GAG3B,SAASga,IAGP,OAFA,GAAgBpuE,KAAMouE,GAEf,GAA2BpuE,MAAOouE,EAAariE,WAAanL,OAAOkL,eAAesiE,IAAe9mE,MAAMtH,KAAMiB,YA6EtH,OAvJF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAwD3G,CAAU4mD,EAAcha,GAQxB,GAAaga,EAAc,CAAC,CAC1BruE,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBuiE,EAAa9/C,EAAO8/C,WACpB5mE,EAAO8mB,EAAO9mB,KACdwzD,EAAc1sC,EAAO0sC,YACrBD,EAAazsC,EAAOysC,WACpB1L,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhwB,EAAS7Q,EAAO6Q,OAChBo1C,EAAwBjmD,EAAOimD,sBAC/BpoE,EAAQmiB,EAAOniB,MACfqoE,EAAUlmD,EAAOkmD,QACjBC,EAAUnmD,EAAOmmD,QAErB,IAAKjtE,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcwkC,EAAc,GAAS,GAAIpuE,KAAK0F,MAAO,CAC7DikC,UAAW,SAIf,IAAI1/B,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9B3kB,EDpJK,WACb,IAMI3T,EACAK,EACAC,EARAV,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLhoB,EAAIikE,GACJr6C,EAAIs6C,GAKR,SAASK,EAAO/D,GACd,IAEI//D,EAFA+jE,EAAW,GACXC,EAAO,GAEP/1D,EAAI8xD,EAAOjpE,OAEf,IAAKkJ,EAAI,EAAGA,EAAIiO,IAAKjO,EACnB,IAAIgD,MAAMsvD,GAAM/yD,EAAE/I,KAAK,KAAMw1D,EAAQ+T,EAAO//D,GAAIA,EAAG+/D,MAAY/8D,MAAMuvD,GAAMppC,EAAE3yB,KAAK,KAAMw1D,EAAOhsD,EAAG+/D,IAAlG,CACA,IAAI/T,EACAsG,EACAC,EACA2E,EAAKh0D,KAAK6rB,MAAMwjC,GAAUzqC,GAC1B27B,EAAKvgD,KAAK6rB,MAAMujC,EAAKA,EAAKzqC,GAAW,EAALqvC,GAAU,GAC1C+M,EAAM1R,EAAK2E,EAEf,GAAoB,EAAhBh0D,KAAKkS,IAAI6uD,GAAW,EAAG,CACzB,IAAIC,EAAM5R,EAAK7O,EACX0gB,EAAM1gB,GAAM6O,EAAK7O,GAAM,EAAI,GAAK,EAChC2gB,EAAMlN,GAAM3E,EAAK2E,GAAM,EAAI,GAC3BmN,EAAM/R,EAAK6R,EACXG,EAAM/R,EAAK6R,EACXF,EAAMA,EAAMD,EAAMA,EAAMI,EAAMA,EAAMC,EAAMA,IAAK7gB,EAAK0gB,GAAY,EAALjN,EAAS,GAAK,GAAK,EAAGA,EAAKkN,GAG5F,IAAIG,EAAK9gB,EAAK,IAAMyT,EAChBsN,EAAMT,EAASQ,GACfC,EAAKA,EAAIxtE,KAAKg1D,IAChBgY,EAAKhtE,KAAKwtE,EAAMT,EAASQ,GAAM,CAACvY,IAChCwY,EAAIjlE,GAAKkkD,GAAW,EAALyT,GAAU,GAAKrvC,EAC9B28C,EAAIr7C,EAAI+tC,EAAKpvC,GAIjB,OAAOk8C,EAGT,SAASS,EAAQl2C,GACf,IAAInH,EAAK,EACLC,EAAK,EACT,OAAOk8C,GAAOroE,KAAI,SAAU2mD,GAC1B,IAAIv6B,EAAKpkB,KAAKkyC,IAAIyM,GAAStzB,EACvBhH,GAAMrkB,KAAKgyC,IAAI2M,GAAStzB,EACxB1G,EAAKP,EAAKF,EACVU,EAAKP,EAAKF,EAEd,OADAD,EAAKE,EAAID,EAAKE,EACP,CAACM,EAAIC,MAiDhB,OA7CAg8C,EAAOW,QAAU,SAAUl2C,GACzB,MAAO,IAAMk2C,EAAkB,MAAVl2C,EAAiB/G,GAAK+G,GAAQhe,KAAK,KAAO,KAGjEuzD,EAAOY,QAAU,WAKf,IAJA,IAAIA,EAAU,GACV7rD,EAAI3V,KAAK6rB,MAAM1H,EAAKS,GACpB9nB,EAAIkD,KAAK6rB,MAAM3H,EAAKS,GAEfsB,EAAItQ,EAAIiP,EAAIqB,EAAI5B,EAAKC,EAAG2B,GAAKrB,IAAMjP,EAC1C,IAAK,IAAItZ,EAAIS,EAAI6nB,GAAU,EAAJhP,GAASgP,EAAK,EAAGtoB,EAAI+nB,EAAKO,EAAK,EAAGtoB,GAAKsoB,EAC5D68C,EAAQ1tE,KAAK,CAACuI,EAAG4pB,IAIrB,OAAOu7C,GAGTZ,EAAOa,KAAO,WACZ,IAAIC,EAAWH,EAAQj9C,GAAGxuB,MAAM,EAAG,GAAGuX,KAAK,KAC3C,OAAOuzD,EAAOY,UAAUxpE,KAAI,SAAU0qB,GACpC,MAAO,IAAMA,EAAI,IAAMg/C,KACtBr0D,KAAK,KAGVuzD,EAAOvkE,EAAI,SAAUF,GACnB,OAAO9I,UAAUO,QAAUyI,EAAIF,EAAGykE,GAAUvkE,GAG9CukE,EAAO36C,EAAI,SAAU9pB,GACnB,OAAO9I,UAAUO,QAAUqyB,EAAI9pB,EAAGykE,GAAU36C,GAG9C26C,EAAOv1C,OAAS,SAAUlvB,GACxB,OAAO9I,UAAUO,QAAkB+wB,EAAS,GAAjBL,GAAKnoB,GAAgB6D,KAAKkyC,IAAIkuB,IAAUx7C,EAAS,IAAJN,EAASs8C,GAAUt8C,GAG7Fs8C,EAAO7sE,KAAO,SAAUoI,GACtB,OAAO9I,UAAUO,QAAUswB,EAAKC,EAAK,EAAGC,GAAMjoB,EAAE,GAAIkoB,GAAMloB,EAAE,GAAIykE,GAAU,CAACx8C,EAAKF,EAAIG,EAAKF,IAG3Fy8C,EAAOt3C,OAAS,SAAUntB,GACxB,OAAO9I,UAAUO,QAAUswB,GAAM/nB,EAAE,GAAG,GAAIgoB,GAAMhoB,EAAE,GAAG,GAAIioB,GAAMjoB,EAAE,GAAG,GAAIkoB,GAAMloB,EAAE,GAAG,GAAIykE,GAAU,CAAC,CAAC18C,EAAIC,GAAK,CAACC,EAAIC,KAG5Gu8C,EAAOv1C,OAAO,GC2CPu1C,GAASvkE,GAAE,SAAUwH,GAC7B,OAAOxH,EAAEwH,GAAK68D,KACbz6C,GAAE,SAAUpiB,GACb,OAAOoiB,EAAEpiB,GAAK88D,KACbt1C,OAAOA,GAAQt3B,KAAK,CAACkzD,EAAYC,IAChCya,EAAc1pC,EAAIspC,UAClBK,EAAQ3pC,EAAIvkC,GACZmuE,EAhEV,SAAwB/mC,EAAM8mC,GAC5B,IAAIC,EAAc/mC,EAAK+mC,YAEvB,OAAIA,GAIG,CAAC,EAAG7hE,KAAK4K,IAAIlR,MAAMsG,KAAM,GAAmB4hE,EAAM5pE,KAAI,SAAUojC,GACrE,OAAOA,EAAIxnC,aAwDSkuE,CAAe1vE,KAAK0F,MAAO8pE,GACzCtpE,EAAQ,KAAcgnC,OAAOuiC,GAAah2D,MAAMyuD,GAChDvmE,EAAO,KAAcurC,OAAOuiC,GAAah2D,MAAM,CAAC,EAAGwf,IACvD,OAAO,IAAM2Q,cAAc,IAAK,CAC9BjkC,UAAW,iDAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxDumB,EAAM5pE,KAAI,SAAU6L,EAAG/G,GACxB,IAAIojE,EAAQ,CACV7nE,MAAOA,EACPwL,EAAG48D,EAAwBxoC,EAAIspC,QAAQxtE,EAAK8P,EAAEjQ,SAAW+tE,EACzDj+D,KAAMpL,EAAMuL,EAAEjQ,QACdqf,UAAW,aAAepP,EAAExH,EAAI,KAAOwH,EAAEoiB,EAAI,IAC7C9zB,IAAK2K,EACLirD,QAAS,SAAiBvwD,GACxB,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,IAEtCwwD,cAAe,SAAuBxwD,GACpC,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,IAE3CqwD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,IAE1CswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,KAG3C,OAAO,IAAMwkC,cAAc,OAAQkkC,WAKlCM,EAnFU,CAoFjB,IAEF,GAAaljB,aAAe,CAC1BjyB,OAAQ,GACRivC,WAAY7c,GACZijB,QAAS,EACTC,QAAS,GAEX,GAAa1kC,YAAc,eACZ,IC/MX,GAAe,WACjB,SAASt/B,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAuB5E,SAASyuE,GAAQvmB,GAGf,MAAO,CACLwmB,KAHsB,eAAbxmB,EAAIt+C,KAAwBs+C,EAAIQ,MAAQR,EAAIymB,QAIrDC,KAHsB,eAAb1mB,EAAIt+C,KAAwBs+C,EAAIS,MAAQT,EAAI2mB,SAOzD,IAAI,GAAY,SAAU3b,GAGxB,SAAS4b,IACP,IAAItnC,EAEAif,EAAO5iC,EAEX,GAAgB/kB,KAAMgwE,GAEtB,IAAK,IAAIpoB,EAAO3mD,UAAUO,OAAQ0C,EAAOP,MAAMikD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E3jD,EAAK2jD,GAAQ5mD,UAAU4mD,GAGzB,OAAeF,EAAS5iC,EAAQ,GAA2B/kB,MAAO0oC,EAAOsnC,EAAUjkE,WAAanL,OAAOkL,eAAekkE,IAAY9uE,KAAKoG,MAAMohC,EAAM,CAAC1oC,MAAM2J,OAAOzF,KAAiB6gB,EAAMS,MAAQ,CAC9LyqD,UAAU,EACVC,UAAW,CACTnmB,IAAK,EACL54B,MAAO,EACPutC,OAAQ,EACRxtC,KAAM,GAERi/C,UAAU,EACVC,UAAW,EACXC,UAAW,EACXC,SAAU,MACD,GAA2BvrD,EAAnC4iC,GA0VL,OAjZF,SAAmBpgC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAiB3G,CAAUwoD,EAAW5b,GA4BrB,GAAa4b,EAAW,CAAC,CACvBjwE,IAAK,eACLU,MAAO,SAAsBmvE,EAAME,GACjC,IAAInhD,EAAS3uB,KAAKwlB,MACd4qD,EAAYzhD,EAAOyhD,UACnBC,EAAY1hD,EAAO0hD,UACnBjoD,EAASpoB,KAAK0F,MACd6qE,EAAUnoD,EAAOmoD,QACjBC,EAAUpoD,EAAOooD,QACjBC,EAAiBroD,EAAOqoD,eACxBC,EAAkBtoD,EAAOsoD,gBACzB7b,EAAazsC,EAAOysC,WACpBC,EAAc1sC,EAAO0sC,YACrB3L,EAAa/gC,EAAO+gC,WACpBoW,EAAcn3C,EAAOm3C,YACrBD,EAAel3C,EAAOk3C,aACtBrW,EAAY7gC,EAAO6gC,UAGnB0nB,EAAaF,GADD5b,EAAa1L,EAAaoW,EAEtCqR,EAAcF,GAHD5b,EAAc7L,EAAYqW,EAI3C,MAAO,CACLZ,OAAQ8R,EAAU5iE,KAAK4K,IAAI63D,EAAWP,GAAQc,EAC9Cz/C,MAAOo/C,EAAU3iE,KAAK4K,IAAI43D,EAAWR,GAAQe,EAC7Cz/C,KAAMq/C,EAAU3iE,KAAKm3B,IAAI6qC,EAAMQ,GAAa,EAC5CrmB,IAAKymB,EAAU5iE,KAAKm3B,IAAI+qC,EAAMO,GAAa,KAG9C,CACDtwE,IAAK,eACLU,MAAO,SAAsBmvE,EAAME,GACjC,IAAI/mB,EAAU/oD,KAAK0F,MACf6qE,EAAUxnB,EAAQwnB,QAClBC,EAAUznB,EAAQynB,QAClBK,EAAU7wE,KAAKwlB,MACf4qD,EAAYS,EAAQT,UACpBC,EAAYQ,EAAQR,UACpBC,EAAWO,EAAQP,SACvB,MAAO,CACL5R,OAAQ4R,EAAS5R,QAAU8R,EAAUV,EAAOO,EAAY,GACxDn/C,KAAMo/C,EAASp/C,MAAQq/C,EAAUX,EAAOQ,EAAY,GACpDj/C,MAAOm/C,EAASn/C,OAASo/C,EAAUX,EAAOQ,EAAY,GACtDrmB,IAAKumB,EAASvmB,KAAOymB,EAAUV,EAAOO,EAAY,MAGrD,CACDtwE,IAAK,sBACLU,MAAO,SAA6BmvE,EAAME,GACxC,IAAI7lB,EAAUjqD,KAAK0F,MACf6qE,EAAUtmB,EAAQsmB,QAClBC,EAAUvmB,EAAQumB,QAClBM,EAAU9wE,KAAKwlB,MACf8qD,EAAWQ,EAAQR,SACnBS,EAAoBD,EAAQZ,UAC5Bh/C,EAAO6/C,EAAkB7/C,KACzBC,EAAQ4/C,EAAkB5/C,MAC1B44B,EAAMgnB,EAAkBhnB,IACxB2U,EAASqS,EAAkBrS,OAC3BsS,EAAsBV,IAAaV,EAAO1+C,GAAQ0+C,EAAOz+C,GACzD8/C,EAAsBX,IAAaR,EAAO/lB,GAAO+lB,EAAOpR,GAE5D,OAAI6R,GAAWC,EACNQ,GAAuBC,EAG5BV,EACKS,GAGLR,GACKS,IAKV,CACDlxE,IAAK,4BACLU,MAAO,SAAmCyvE,GAExC,IAAIrlB,EAAU7qD,KAAK0F,MACf6qE,EAAU1lB,EAAQ0lB,QAClBC,EAAU3lB,EAAQ2lB,QAClBrnB,EAAa0B,EAAQ1B,WACrBF,EAAY4B,EAAQ5B,UACpBmY,EAASnc,GAAkBjlD,KAAK0F,MAAO,KACvC27D,EAASpc,GAAkBjlD,KAAK0F,MAAO,KAI3C,OAAI6qE,GAAWC,EACN,CACL9R,OAAQ2C,EAAO9yB,OAAO2hC,EAAUxR,QAChCxtC,KAAMkwC,EAAO7yB,OAAO2hC,EAAUh/C,KAAOi4B,GACrCh4B,MAAOiwC,EAAO7yB,OAAO2hC,EAAU/+C,MAAQg4B,GACvCY,IAAKsX,EAAO9yB,OAAO2hC,EAAUnmB,MAI7BymB,EACK,CACL9R,OAAQ2C,EAAO9yB,OAAO2hC,EAAUxR,OAASzV,GACzCc,IAAKsX,EAAO9yB,OAAO2hC,EAAUnmB,IAAMd,IAInCsnB,EACK,CACLr/C,KAAMkwC,EAAO7yB,OAAO2hC,EAAUh/C,KAAOi4B,GACrCh4B,MAAOiwC,EAAO7yB,OAAO2hC,EAAU/+C,MAAQg4B,IAIpC,KAER,CACDppD,IAAK,gBACLU,MAAO,SAAuB2E,GAC5B,IAAI8vD,EAASl1D,KAETkxE,EAAUlxE,KAAK0F,MACfyrE,EAAeD,EAAQC,aACvBC,EAAcF,EAAQE,YACtBC,EAAOH,EAAQG,KACff,EAAWtwE,KAAKwlB,MAAM8qD,SAEtBgB,EAAW3B,GAAQvqE,EAAEikD,aACrBumB,EAAO0B,EAAS1B,KAChBE,EAAOwB,EAASxB,KAEhByB,EAAY,SAAmBtB,EAAUuB,GAC3C,IAAIC,EAAa,CACf/S,OAAQoR,EACR5+C,KAAM0+C,EACNz+C,MAAOy+C,EACP7lB,IAAK+lB,GAGP5a,EAAOnvC,SAAS,CACdkqD,SAAUA,EACVC,UAAWI,IAAakB,EAAYlB,EAAWmB,EAC/CtB,UAAWF,EACXG,UAAWR,EACXS,UAAWP,KAIX4B,EAAqB1xE,KAAK2xE,oBAAoB/B,EAAME,GAExD,GAAIuB,IAASf,IAAae,GAAQK,EAOhC,OANAH,GAAU,EAAOG,QAEbP,GACFA,EAAa/rE,IAMbisE,GAAQf,IACViB,GAAU,EAAMG,GAEZN,GACFA,EAAYhsE,MAIjB,CACDrF,IAAK,eACLU,MAAO,SAAsB2E,GAC3B,IAAIwsE,EAAU5xE,KAAKwlB,MACf2qD,EAAWyB,EAAQzB,SACnBF,EAAW2B,EAAQ3B,SACnBC,EAAY0B,EAAQ1B,UAExB,GAAKC,GAAaF,EAAlB,CAIA,IAAI4B,EAAU7xE,KAAK0F,MACfosE,EAAaD,EAAQC,WACrBC,EAAYF,EAAQE,UACpBV,EAAOQ,EAAQR,KACfW,EAAepkE,KAAKkS,IAAIowD,EAAU/+C,MAAQ++C,EAAUh/C,MAAQ,EAG5D+gD,EAFarkE,KAAKkS,IAAIowD,EAAUnmB,IAAMmmB,EAAUxR,QAAU,GAEjCsT,EAE7BhyE,KAAK+lB,SAAS,CACZoqD,UAAU,EACVF,UAAU,EACVC,UAAWmB,EAAOnB,EAAY,CAC5BnmB,IAAK,EACL54B,MAAO,EACPutC,OAAQ,EACRxtC,KAAM,GAERk/C,UAAW,EACXC,UAAW,EACXC,SAAUe,IAASY,GAAY/B,IAG7BC,GAAY2B,GACdA,EAAYG,EAAuD,KAA5CjyE,KAAKkyE,0BAA0BhC,IAGpDmB,GAAQU,GACVA,EAAWE,EAAuD,KAA5CjyE,KAAKkyE,0BAA0BhC,OAGxD,CACDnwE,IAAK,UACLU,MAAO,SAAiB2E,GACtB,IAAI+sE,EAAUnyE,KAAK0F,MACf0sE,EAAUD,EAAQC,QAClBC,EAASF,EAAQE,OACjBhB,EAAOc,EAAQd,KACfiB,EAAUtyE,KAAKwlB,MACf2qD,EAAWmC,EAAQnC,SACnBF,EAAWqC,EAAQrC,SAEnBsC,EAAY5C,GAAQvqE,EAAEikD,aACtBumB,EAAO2C,EAAU3C,KACjBE,EAAOyC,EAAUzC,KAErB,GAAIK,EAAU,CACZ,IAAID,EAAYlwE,KAAKwyE,aAAa5C,EAAME,GAExC9vE,KAAK+lB,SAAS,CACZmqD,UAAWA,IAGTkC,GACFA,EAAQpyE,KAAKkyE,0BAA0BhC,IAI3C,GAAImB,GAAQpB,EAAU,CACpB,IAAIwC,EAAazyE,KAAK0yE,aAAa9C,EAAME,GAEzC9vE,KAAK+lB,SAAS,CACZmqD,UAAWuC,IAGTJ,GACFA,EAAOryE,KAAKkyE,0BAA0BO,OAI3C,CACD1yE,IAAK,SACLU,MAAO,WACL,IAAIkyE,EAAS3yE,KAET4yE,EAAU5yE,KAAK0F,MACfQ,EAAQ0sE,EAAQ1sE,MAChBP,EAAYitE,EAAQjtE,UACpB+qE,EAAkBkC,EAAQlC,gBAC1BD,EAAiBmC,EAAQnC,eACzBoC,EAAaD,EAAQC,WACrBC,EAAaF,EAAQE,WACrBje,EAAa+d,EAAQ/d,WACrBC,EAAc8d,EAAQ9d,YACtB3L,EAAaypB,EAAQzpB,WACrBoW,EAAcqT,EAAQrT,YACtBtW,EAAY2pB,EAAQ3pB,UACpBqW,EAAesT,EAAQtT,aACvB16B,EAAUguC,EAAQhuC,QAClBmuC,EAAmB/yE,KAAKwlB,MAAM0qD,UAC9Bh/C,EAAO6hD,EAAiB7hD,KACxBC,EAAQ4hD,EAAiB5hD,MACzB44B,EAAMgpB,EAAiBhpB,IACvB2U,EAASqU,EAAiBrU,OAC1BsU,EAAU,EAEVH,IAEFG,EADa/tB,GAAkBjlD,KAAK0F,MAAO,IACjC07D,CAAOyR,IAGnB,IAAII,EAAS,EAETH,IAEFG,EADahuB,GAAkBjlD,KAAK0F,MAAO,IAClC27D,CAAOyR,IAGlB,IAEInC,EAAaF,GAFDtnB,EAAaoW,EAAc1K,EAGvC+b,EAAcF,GAFDznB,EAAYqW,EAAexK,EAG5C,OAAO,IAAMlrB,cAAc,IAAK,CAC9B/oB,UAAW,aAAemyD,EAAU,KAAOC,EAAS,IACpDttE,UAAWA,EAAY,2BACtB,IAAMikC,cAAc,OAAQ,CAC7BjkC,UAAW,kBACX2L,KAAM,QACNszB,QAAS,IACT36B,EAAG,IACH4pB,EAAG,IACHob,MAAOrhC,KAAK4K,IAAIm4D,EAAY,GAC5B5pB,OAAQn5C,KAAK4K,IAAIo4D,EAAa,GAC9BsC,YAAa,SAAqB9tE,GAChC,OAAOutE,EAAOQ,cAAc/tE,IAE9BguE,YAAa,SAAqBhuE,GAChC,OAAOutE,EAAOP,QAAQhtE,IAExBiuE,UAAW,SAAmBjuE,GAC5B,OAAOutE,EAAOW,aAAaluE,IAE7BqmE,aAAc,SAAsBrmE,GAClC,OAAOutE,EAAOW,aAAaluE,IAG7BmuE,WAAY,SAAoBnuE,GAC9BA,EAAEyjD,iBAEF8pB,EAAOW,aAAaluE,IAEtBouE,cAAe,SAAuBpuE,GACpCA,EAAEyjD,iBAEF8pB,EAAOW,aAAaluE,IAEtBwwD,cAAe,SAAuBxwD,GACpC,OAAOA,EAAEyjD,kBAEX4qB,qBAAsB,SAA8BruE,GAClD,OAAOA,EAAEyjD,oBAET,IAAMjf,cAAc,OAAQ,CAC9BjkC,UAAW,eACXkwD,cAAe,OACfjxB,QAASA,EACTtzB,KAAMpL,EACN+D,EAAGinB,EACH2C,EAAGk2B,EACH9a,MAAOrhC,KAAKm3B,IAAIn3B,KAAK4K,IAAI,EAAG2Y,EAAQD,GAAOy/C,GAC3C5pB,OAAQn5C,KAAKm3B,IAAIn3B,KAAK4K,IAAI,EAAGkmD,EAAS3U,GAAM6mB,UAK3CZ,EApXO,CAqXd,IAEF,GAAUnmC,YAAc,mBACxB,GAAUqhB,aAAe,CACvBhlD,MAAO,oBACPP,UAAW,GACX4qE,SAAS,EACTC,SAAS,EACT5rC,QAAS,IAEI,UC5bX,GAAWhkC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA4D5E,IAAIwyE,GAAQ,CACVC,KAAM,OACNtT,KAAM,OACNC,MAAO,QACPsT,UAAW,WACXC,WAAY,YACZtT,OAAQ,SACRH,IAAK,MACL0T,YAAa,aACbC,SAAU,WAMR,GAAc,CAChBC,YAAa,aACbC,aAAc,cACdC,SAAU,UACVC,UAAW,YAQb,SAASC,GAAc3zE,GACrB,OAAOG,OAAOiD,KAAKpD,GAAOmF,KAAI,SAAiB7F,GAC7C,MAAO,CACL0pE,MAAO1pE,EACPU,MAAOw/C,GAAuBx/C,EAAMV,QAK1C,IAAI,GAAO,SAAUqoC,GAGnB,SAASisC,IAGP,OAFA,GAAgBr0E,KAAMq0E,GAEf,GAA2Br0E,MAAOq0E,EAAKtoE,WAAanL,OAAOkL,eAAeuoE,IAAO/sE,MAAMtH,KAAMiB,YAgVtG,OAnbF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAiF3G,CAAU6sD,EAAMjsC,GAQhB,GAAaisC,EAAM,CAAC,CAClBt0E,IAAK,YAWLU,MAAO,SAAmBwJ,EAAG4pB,GAC3B,IAAIzL,EAASpoB,KAAK0F,MACdmvD,EAAazsC,EAAOysC,WACpBC,EAAc1sC,EAAO0sC,YACrBoV,EAAc9hD,EAAO8hD,YACrBoK,EAAelsD,EAAO0mB,MACtBylC,EAAaD,EAAaC,WAC1BC,EAAWF,EAAaE,SACxB1lC,EAAQo7B,EAAclqE,KAAKy0E,uBAAuBvK,GAAe,CACnEqK,WAAYA,EACZC,SAAUA,GAWZ,OARID,IAAeb,GAAMC,OACvB7kC,EAAMylC,WAAatqE,EAAI4qD,EAAa,EAAI6e,GAAMrT,KAAOqT,GAAMpT,OAGzDkU,IAAad,GAAMC,OACrB7kC,EAAM0lC,SAAW3gD,EAAIihC,EAAc,EAAI4e,GAAMtT,IAAMsT,GAAMnT,QAGpDzxB,IASR,CACD/uC,IAAK,sBACLU,MAAO,SAA6BquC,GAClC,IAAIo7B,EAAclqE,KAAK0F,MAAMwkE,YAE7B,OADuBA,EAAc,wBAA0BA,EAAc,IACnD,6BAA+Bp7B,EAAMylC,WAAa,iCAAmCzlC,EAAM0lC,WAYtH,CACDz0E,IAAK,iBACLU,MAAO,SAAwBquC,EAAO7kC,EAAG4pB,GACvC,OAAO,GAAS,GAAI7zB,KAAK00E,SAAS5lC,EAAMylC,WAAYtqE,GAAIjK,KAAK20E,SAAS7lC,EAAM0lC,SAAU3gD,MAUvF,CACD9zB,IAAK,gBACLU,MAAO,SAAuBozB,GAC5B,GAAIA,QACF,MAAO,CACL6qC,OAAQ,GAIZ,IAAI3V,EAAU/oD,KAAK0F,MACfovD,EAAc/L,EAAQ+L,YAE1B,MAAO,CACL4J,OAFiB3V,EAAQuW,aAEFxK,EAAcjhC,KAWxC,CACD9zB,IAAK,cACLU,MAAO,SAAqBwJ,GAC1B,OAAIA,QACK,CACLinB,KAAM,GAKH,CACLA,KAFelxB,KAAK0F,MAAMyjD,WAEPl/C,KAWtB,CACDlK,IAAK,eACLU,MAAO,SAAsBwJ,GAC3B,GAAIA,QACF,MAAO,CACLknB,MAAO,GAIX,IAAI84B,EAAUjqD,KAAK0F,MACfmvD,EAAa5K,EAAQ4K,WAEzB,MAAO,CACL1jC,MAFgB84B,EAAQsV,YAEH1K,EAAa5qD,KAWrC,CACDlK,IAAK,aACLU,MAAO,SAAoBozB,GACzB,OAAIA,QACK,CACLk2B,IAAK,GAKF,CACLA,IAFc/pD,KAAK0F,MAAMujD,UAERp1B,KAUpB,CACD9zB,IAAK,mBACLU,MAAO,WACL,IAAIoqD,EAAU7qD,KAAK0F,MACfjF,EAAQoqD,EAAQpqD,MAChBm0E,EAAgB/pB,EAAQ+pB,cACxB3qE,EAAIk7C,GAAoBnlD,KAAK0F,MAAO,IAAhCy/C,CAAqC1kD,GACzCozB,EAAIsxB,GAAoBnlD,KAAK0F,MAAO,IAAhCy/C,CAAqC1kD,GAEzCquC,EAAQ9uC,KAAK60E,UAAU5qE,EAAG4pB,GAE9B,MAAO,CACLjtB,SAAUguE,EAAgBA,EAAc9lC,EAAO7kC,EAAG4pB,GAAK7zB,KAAK80E,eAAehmC,EAAO7kC,EAAG4pB,GACrFkhD,kBAAmB/0E,KAAKg1E,oBAAoBlmC,MAG/C,CACD/uC,IAAK,WACLU,MAAO,SAAkB8zE,EAAYtqE,GAEnC,OAAQsqE,GACN,KAAKb,GAAME,UAET,OAAO5zE,KAAKi1E,YAAY,MAE1B,KAAKvB,GAAMG,WAET,OAAO7zE,KAAKk1E,aAAa,MAE3B,KAAKxB,GAAMrT,KAET,OAAOrgE,KAAKk1E,aAAajrE,GAE3B,KAAKypE,GAAMpT,MACX,QAGE,OAAOtgE,KAAKi1E,YAAYhrE,MAG7B,CACDlK,IAAK,WACLU,MAAO,SAAkB00E,EAAethD,GAEtC,OAAQshD,GACN,KAAKzB,GAAMK,SAET,OAAO/zE,KAAKo1E,WAAW,MAEzB,KAAK1B,GAAMI,YAET,OAAO9zE,KAAKq1E,cAAc,MAE5B,KAAK3B,GAAMnT,OAET,OAAOvgE,KAAKo1E,WAAWvhD,GAEzB,KAAK6/C,GAAMtT,IACX,QAGE,OAAOpgE,KAAKq1E,cAAcxhD,MAG/B,CACD9zB,IAAK,yBACLU,MAAO,SAAgCypE,GAGrC,OAAQA,GACN,KAAK,GAAY8J,YACf,MAAO,CACLO,WAAYb,GAAMrT,KAClBmU,SAAUd,GAAMnT,QAGpB,KAAK,GAAY0T,aACf,MAAO,CACLM,WAAYb,GAAMpT,MAClBkU,SAAUd,GAAMnT,QAGpB,KAAK,GAAY2T,SACf,MAAO,CACLK,WAAYb,GAAMrT,KAClBmU,SAAUd,GAAMtT,KAGpB,KAAK,GAAY+T,UACf,MAAO,CACLI,WAAYb,GAAMpT,MAClBkU,SAAUd,GAAMtT,QASvB,CACDrgE,IAAK,SACLU,MAAO,WACL,IAAIywE,EAAUlxE,KAAK0F,MACfjF,EAAQywE,EAAQzwE,MAChByjC,EAASgtC,EAAQhtC,OACjB/pB,EAAW+2D,EAAQ/2D,SACnBlU,EAAQirE,EAAQjrE,MAChBN,EAAYurE,EAAQvrE,UAEpB2vE,EAAoBt1E,KAAKu1E,mBACzB3uE,EAAW0uE,EAAkB1uE,SAC7BmuE,EAAoBO,EAAkBP,kBAE1C,OAAO,IAAMnrC,cAAc,MAAO,CAChCjkC,UAAW,WAAaovE,EAAoB,IAAMpvE,EAClDM,MAAO,GAAS,GAAIA,EAAOW,EAAU,CACnCA,SAAU,cAEXuT,GAAsB,IAAMyvB,cAAc,MAAO,CAClDjkC,UAAW,mBACXM,MAAOA,EAAMuvE,SACZtxC,EAAOzjC,GAAOmF,KAAI,SAAU6vE,EAAe/qE,GAC5C,OAAO,IAAMk/B,cAAc,MAAO,CAChC7pC,IAAK,UAAY2K,EACjBzE,MAAOA,EAAM+iC,KACZ,IAAMY,cAAc,OAAQ,CAC7BjkC,UAAW,iBACXM,MAAOA,EAAMwjE,OACZgM,EAAchM,OAAQ,KAAM,IAAM7/B,cAAc,OAAQ,CACzDjkC,UAAW,iBACXM,MAAOA,EAAMxF,OACZg1E,EAAch1E,gBAGnB,CAAC,CACHV,IAAK,eACLyH,IAAK,WACH,MAAO,CACL08B,OAAQkwC,GACRtlC,MAAO,CACLylC,WAAYb,GAAMC,KAClBa,SAAUd,GAAMC,MAElB1tE,MAAO,MAGV,CACDlG,IAAK,YACLyH,IAAK,WACH,MAAO,CACLyhD,UAAW,IAAUl5C,OACrBo5C,WAAY,IAAUp5C,OACtB8kD,WAAY,IAAU9kD,OACtB+kD,YAAa,IAAU/kD,OACvB2lE,OAAQ,IAAUvxE,OAClB1D,MAAO,IAAU0D,OACjB+/B,OAAQ,IAAU1+B,KAClBS,MAAO,IAAU9B,OACjBwB,UAAW,IAAUgK,OACrBm/B,MAAO,IAAUhnB,MAAM,CACrBysD,WAAY,IAAU9uB,MAAM,CAACiuB,GAAMC,KAAMD,GAAMrT,KAAMqT,GAAMpT,MAAOoT,GAAME,UAAWF,GAAMG,aACzFW,SAAU,IAAU/uB,MAAM,CAACiuB,GAAMC,KAAMD,GAAMnT,OAAQmT,GAAMtT,IAAKsT,GAAMI,YAAaJ,GAAMK,aAE3Fa,cAAe,IAAUpvE,KACzB0kE,YAAa,IAAUzkB,MAAM,CAAC,GAAYuuB,YAAa,GAAYC,aAAc,GAAYC,SAAU,GAAYC,iBAKlHE,EAtVE,CAuVT,iBAEF,GAAKxqC,YAAc,OACnB,GAAKs2B,YAAc,GACnB,GAAKuT,MAAQA,GACE,ICveX,GAAW9yE,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgBtgB,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAGT,SAAS,GAAgBkjB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAEI,GAAY,SAAUkzD,GAGxB,SAASuhB,IAGP,OAFA,GAAgB31E,KAAM21E,GAEf,GAA2B31E,MAAO21E,EAAU5pE,WAAanL,OAAOkL,eAAe6pE,IAAYruE,MAAMtH,KAAMiB,YA6GhH,OA7JF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA8B3G,CAAUmuD,EAAWvhB,GAQrB,GAAauhB,EAAW,CAAC,CACvB51E,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACds0E,EAAcxtD,EAAOwtD,YACrBC,EAAeztD,EAAOytD,aACtB1sB,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MACf+nD,EAAe5lC,EAAO4lC,aACtB8nB,EAAgB1tD,EAAO0tD,cACvBC,EAAW3tD,EAAO2tD,SAEtB,IAAKz0E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAc+rC,EAAW,GAAS,GAAI31E,KAAK0F,MAAO,CAC1DikC,UAAW,SAIf,IAAIqsC,EAAkBloB,GAAe9tD,KAAK0F,OACtC0nD,EAAgB4oB,EAAgB5oB,cAChCC,EAAgB2oB,EAAgB3oB,cAEhCjL,EAAWpiD,KAAK4tE,kBAAkBgI,GAElCK,EAAcj2E,KAAKwqD,qBAAqBorB,GAExCM,EAAel2E,KAAKwqD,qBAAqBwD,GAEzCmoB,EAAgBn2E,KAAKg/D,iBAAiBhR,GAEtCooB,EAAcp2E,KAAKwqD,qBAAqB,SAAWxqD,KAAKwqD,qBAAqB,SAE7E6rB,EAAgBr2E,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SAEjF8rB,EAAiBt2E,KAAKwqD,qBAAqB,WAE3C+rB,EAAYn0B,EAAW,EAAI2zB,EAC/B,OAAO,IAAMnsC,cAAc,IAAK,CAC9BjkC,UAAW,8CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD3nD,EAAKsE,KAAI,SAAU6L,EAAG/G,GACvB,IAAI8rE,EAIAC,EAAkC,EAAZF,EACtBG,EAAmBT,EAAYxkE,GAM/BklE,EAAcF,EAAsBrpB,GAFLA,EAAgB,GAAKA,EAIpDwpB,EAN0BF,EAAmBH,EAMAI,EAActpB,EAAgBA,EAC3EygB,GAMD,GANU0I,EAAS,CACpBvwE,MAAO,GAAS,CACd2+B,QAAS0xC,GAAkBA,EAAe7kE,GAC1CF,OAAQ8kE,GAAiBA,EAAc5kE,GACvCH,KAAM8kE,GAAeA,EAAY3kE,IAChCxL,IACsB2vE,EAAagB,GAAmB,GAAgBJ,EAAQX,EAAcc,GAAc,GAAgBH,EAAQxoB,EAAcpgD,KAAKm3B,IAAIoxC,EAAc1kE,GAAIykE,EAAazkE,KAAM,GAAgB+kE,EAAQV,EAAeloE,KAAKkS,KAAKq2D,EAAc1kE,GAAKykE,EAAazkE,KAAM,GAAgB+kE,EAAQ,WAAW,SAAiBpxE,GAC5U,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,MAClC,GAAgBoxE,EAAQ,iBAAiB,SAAuBpxE,GAClE,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,MACvC,GAAgBoxE,EAAQ,eAAe,SAAqBpxE,GAC9D,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,MACtC,GAAgBoxE,EAAQ,cAAc,SAAoBpxE,GAC5D,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,MACrC,GAAgBoxE,EAAQ,MAAO9rE,GAAI8rE,GACvC,OAAO,IAAM5sC,cAAc,OAAQkkC,UAGrC,CAAC,CACH/tE,IAAK,YACLyH,IAAK,WACH,OAAO,GAAS,GAAI,GAAes/C,UAAW,CAC5C8uB,YAAa,IAAUjmE,OACvBq+C,aAAc,IAAUr+C,OACxBkmE,aAAc,IAAUlmE,OACxBmmE,cAAe,IAAUnmE,OACzB08C,QAAS,IAAU18C,OACnBomE,SAAU,IAAUhmE,WAGvB,CACDhQ,IAAK,eACLyH,IAAK,WACH,MAAO,CACLuuE,SAAU,SAKTJ,EAnHO,CAoHd,IAEF,GAAU9rC,YAAc,YACT,UC9NX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAsB,SAAUkzD,GAGlC,SAASyiB,IAGP,OAFA,GAAgB72E,KAAM62E,GAEf,GAA2B72E,MAAO62E,EAAoB9qE,WAAanL,OAAOkL,eAAe+qE,IAAsBvvE,MAAMtH,KAAMiB,YAyBpI,OAtEF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2B3G,CAAUqvD,EAAqBziB,GAQ/B,GAAayiB,EAAqB,CAAC,CACjC92E,IAAK,SACLU,MAAO,WACL,OAAO,IAAMmpC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,SACdC,cAAe,cAGjB,CAAC,CACH/1E,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,yBAHsC,MAAT5rB,EAI7B20B,cAH2B,MAAT30B,OAQjB00B,EA/BiB,CAgCxB,IAEF,GAAoBhtC,YAAc,sBACnB,UCxHX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAkD5E,IAAI,GAAkB,SAAUkzD,GAG9B,SAAS2iB,IAGP,OAFA,GAAgB/2E,KAAM+2E,GAEf,GAA2B/2E,MAAO+2E,EAAgBhrE,WAAanL,OAAOkL,eAAeirE,IAAkBzvE,MAAMtH,KAAMiB,YA6E5H,OAlIF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAmC3G,CAAUuvD,EAAiB3iB,GAQ3B,GAAa2iB,EAAiB,CAAC,CAC7Bh3E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,IAAI11E,EAAOoE,EAAMpE,KACbs0E,EAAclwE,EAAMkwE,YACpBC,EAAenwE,EAAMmwE,aACrB7nB,EAAetoD,EAAMsoD,aACrB/E,EAAYvjD,EAAMujD,UAClBqW,EAAe55D,EAAM45D,aAEzB,GAAKh+D,GAAwB,IAAhBA,EAAKE,OAAlB,CAIA,IAAI4gD,EAjCV,SAA0B18C,EAAOy8C,GAC/B,IAAId,EAAckC,GAAwB79C,EAAOy8C,GACjD,OAAOd,EAAcA,EAAYe,SAAW,EA+BzB60B,CAAiBvxE,EAAOkwE,GACnC/e,EAAO1R,GAAoBz/C,EAAOkwE,GAClCn1E,EAAQ0kD,GAAoBz/C,EAAOsoD,GACnChM,EAASoD,GAAgB1/C,EAAOsoD,GAChC18C,EAAO6zC,GAAoBz/C,EAAO,SAAWy/C,GAAoBz/C,EAAO,SACxE6L,EAAS4zC,GAAoBz/C,EAAO,WAAay/C,GAAoBz/C,EAAO,SAC5Ek/B,EAAUugB,GAAoBz/C,EAAO,WACrC6wE,EAAYn0B,EAAW,EAAI,IAG3Bq0B,EAAkC,EAAZF,EAEtBP,EAAkBloB,GAAepoD,GACjC0nD,EAAgB4oB,EAAgB5oB,cAChCC,EAAgB2oB,EAAgB3oB,cAEpC/rD,EAAKmI,SAAQ,SAAUu/B,GACrB,IAEIkuC,EAFmBrgB,EAAK7tB,GAEqButC,EAI7CY,EAAWV,EAAsBrpB,GAFFA,EAAgB,GAAKA,EAGpDgqB,EAAY,GAAI9lE,EAAK03B,IACrBquC,EAAc,GAAI9lE,EAAOy3B,IACzBsuC,EAAa1yC,EAAQoE,IhG1HJ,EgG4HjBuuC,EAAUL,EAA0BC,EAAW9pB,EAAgBA,EAC/DmqB,EAAW5pE,KAAKm3B,IAAIid,EAAOhZ,GAAMvoC,EAAMuoC,IACvC/+B,EAAqB,MAAjB+jD,EAAuBwpB,EAAWD,EACtC1jD,EAAqB,MAAjBm6B,EAAuBwpB,EAAWD,EACtCE,EAAY7pE,KAAKkS,KAAKkiC,EAAOhZ,GAAOvoC,EAAMuoC,IAC1C+d,EAA0B,WAAjB8uB,EAA4BsB,EAAWM,EAChDxoC,EAAyB,UAAjB4mC,EAA2BsB,EAAWM,EAClDT,EAAIU,YACJV,EAAIztB,KAAKt/C,EAAIq1D,EAAczrC,EAAIo1B,EAAWha,EAAO8X,GACjDiwB,EAAIW,UAAY,QAAUP,EAAUllD,EAAI,KAAOklD,EAAU1yC,EAAI,KAAO0yC,EAAU9yE,EAAI,KAAOgzE,EAAa,IACtGN,EAAI1lE,OACJ0lE,EAAIY,YAAc,QAAUP,EAAYnlD,EAAI,KAAOmlD,EAAY3yC,EAAI,KAAO2yC,EAAY/yE,EAAI,KAAOgzE,EAAa,IAC9GN,EAAIzlE,eAGP,CACDxR,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJuvE,EAnFa,CAoFpB,IAEF,GAAgBltC,YAAc,kBAC9B,GAAgBqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CACvE0qB,YAAa,IAAUjmE,OAAOoY,WAC9BimC,aAAc,IAAUr+C,OAAOoY,WAC/B8tD,aAAc,IAAUlmE,OAAOoY,WAC/B+tD,cAAe,IAAUnmE,OAAOoY,aAElC,GAAgB++B,UAAY,GAAS,GAAI,GAAeA,WACzC,UC3LX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAyC5E,IAAI,GAA4B,SAAUkzD,GAGxC,SAASyjB,IAGP,OAFA,GAAgB73E,KAAM63E,GAEf,GAA2B73E,MAAO63E,EAA0B9rE,WAAanL,OAAOkL,eAAe+rE,IAA4BvwE,MAAMtH,KAAMiB,YAwChJ,OApFF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA0B3G,CAAUqwD,EAA2BzjB,GAQrC,GAAayjB,EAA2B,CAAC,CACvC93E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,yBAHsC,MAAT5rB,EAI7B20B,cAH2B,MAAT30B,KAMrB,CACDpiD,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,GAAUc,YAAY,GAAS,GAAIpyE,EAAO,CACxCkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,SACdC,cAAe,UACbkB,KAEL,CACDj3E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJqwE,EA9CuB,CA+C9B,IAEF,GAA0BhuC,YAAc,4BACxC,GAA0Bid,UAAY,GAAS,GAAI,GAAeA,WACnD,IChHX,GAAe,CACjBmmB,UAFevM,GAAUD,WAGzBte,KAAM,KAGR,SAAS41B,GAAoBryE,GAC3B,OAAO,IAAMkkC,cAAc,GAAWlkC,GAGxCqyE,GAAoBluC,YAAc,sBAClCkuC,GAAoB7sB,aAAe,GACnC6sB,GAAoBtY,aAAc,EACnB,UCnCX,GAAW7+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgBtgB,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAGT,SAAS,GAAgBkjB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAEI,GAAa,SAAUkzD,GAGzB,SAAS4jB,IAGP,OAFA,GAAgBh4E,KAAMg4E,GAEf,GAA2Bh4E,MAAOg4E,EAAWjsE,WAAanL,OAAOkL,eAAeksE,IAAa1wE,MAAMtH,KAAMiB,YAkFlH,OAlIF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA8B3G,CAAUwwD,EAAY5jB,GAQtB,GAAa4jB,EAAY,CAAC,CACxBj4E,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACds0E,EAAcxtD,EAAOwtD,YACrBC,EAAeztD,EAAOytD,aACtB1sB,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MACf+nD,EAAe5lC,EAAO4lC,aACtB8nB,EAAgB1tD,EAAO0tD,cAE3B,IAAKx0E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcouC,EAAY,GAAS,GAAIh4E,KAAK0F,MAAO,CAC3DikC,UAAW,SAIf,IAAIssC,EAAcj2E,KAAKwqD,qBAAqBorB,GAExCqC,EAAej4E,KAAKg/D,iBAAiB4W,GAErCM,EAAel2E,KAAKwqD,qBAAqBwD,GAEzCmoB,EAAgBn2E,KAAKg/D,iBAAiBhR,GAEtCooB,EAAcp2E,KAAKwqD,qBAAqB,SAAWxqD,KAAKwqD,qBAAqB,SAE7E6rB,EAAgBr2E,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SAEjF8rB,EAAiBt2E,KAAKwqD,qBAAqB,WAE/C,OAAO,IAAM5gB,cAAc,IAAK,CAC9BjkC,UAAW,+CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD3nD,EAAKsE,KAAI,SAAU6L,EAAG/G,GACvB,IAAI8rE,EAEA1I,GAMD,GANU0I,EAAS,CACpBvwE,MAAO,GAAS,CACd2+B,QAAS0xC,GAAkBA,EAAe7kE,GAC1CF,OAAQ8kE,GAAiBA,EAAc5kE,GACvCH,KAAM8kE,GAAeA,EAAY3kE,IAChCxL,IACsB2vE,EAAaqC,EAAaxmE,IAAK,GAAgB+kE,EAAQX,EAAcjoE,KAAKkS,IAAIm2D,EAAYxkE,GAAKwmE,EAAaxmE,KAAM,GAAgB+kE,EAAQxoB,EAAcpgD,KAAKm3B,IAAIoxC,EAAc1kE,GAAIykE,EAAazkE,KAAM,GAAgB+kE,EAAQV,EAAeloE,KAAKkS,KAAKq2D,EAAc1kE,GAAKykE,EAAazkE,KAAM,GAAgB+kE,EAAQ,WAAW,SAAiBpxE,GAC1W,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,MAClC,GAAgBoxE,EAAQ,iBAAiB,SAAuBpxE,GAClE,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,MACvC,GAAgBoxE,EAAQ,eAAe,SAAqBpxE,GAC9D,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,MACtC,GAAgBoxE,EAAQ,cAAc,SAAoBpxE,GAC5D,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,MACrC,GAAgBoxE,EAAQ,MAAO9rE,GAAI8rE,GACvC,OAAO,IAAM5sC,cAAc,OAAQkkC,UAGrC,CAAC,CACH/tE,IAAK,YACLyH,IAAK,WACH,OAAO,GAAS,GAAI,GAAes/C,UAAW,CAC5C8uB,YAAa,IAAUjmE,OACvBq+C,aAAc,IAAUr+C,OACxBkmE,aAAc,IAAUlmE,OACxBmmE,cAAe,IAAUnmE,aAKxBqoE,EAxFQ,CAyFf,IAEF,GAAWnuC,YAAc,aACV,UCnMX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAuB,SAAUkzD,GAGnC,SAAS8jB,IAGP,OAFA,GAAgBl4E,KAAMk4E,GAEf,GAA2Bl4E,MAAOk4E,EAAqBnsE,WAAanL,OAAOkL,eAAeosE,IAAuB5wE,MAAMtH,KAAMiB,YAyBtI,OAtEF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2B3G,CAAU0wD,EAAsB9jB,GAQhC,GAAa8jB,EAAsB,CAAC,CAClCn4E,IAAK,SACLU,MAAO,WACL,OAAO,IAAMmpC,cAAc,GAAY,GAAS,GAAI5pC,KAAK0F,MAAO,CAC9DkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,SACdC,cAAe,cAGjB,CAAC,CACH/1E,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,0BAH6B,EAI7B+I,cAH2B,MAAT30B,OAQjB+1B,EA/BkB,CAgCzB,IAEF,GAAqBruC,YAAc,uBACpB,ICxHX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA4C5E,IAAI,GAAmB,SAAUkzD,GAG/B,SAAS+jB,IAGP,OAFA,GAAgBn4E,KAAMm4E,GAEf,GAA2Bn4E,MAAOm4E,EAAiBpsE,WAAanL,OAAOkL,eAAeqsE,IAAmB7wE,MAAMtH,KAAMiB,YA6D9H,OA5GF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA6B3G,CAAU2wD,EAAkB/jB,GAQ5B,GAAa+jB,EAAkB,CAAC,CAC9Bp4E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,IAAI11E,EAAOoE,EAAMpE,KACbs0E,EAAclwE,EAAMkwE,YACpBC,EAAenwE,EAAMmwE,aACrB1sB,EAAazjD,EAAMyjD,WACnBF,EAAYvjD,EAAMujD,UAClB+E,EAAetoD,EAAMsoD,aAEzB,GAAK1sD,GAAwB,IAAhBA,EAAKE,OAAlB,CAIA,IAAIq1D,EAAO1R,GAAoBz/C,EAAOkwE,GAClCwC,EAAQhzB,GAAgB1/C,EAAOkwE,GAC/Bn1E,EAAQ0kD,GAAoBz/C,EAAOsoD,GACnChM,EAASoD,GAAgB1/C,EAAOsoD,GAChC18C,EAAO6zC,GAAoBz/C,EAAO,SAAWy/C,GAAoBz/C,EAAO,SACxE6L,EAAS4zC,GAAoBz/C,EAAO,WAAay/C,GAAoBz/C,EAAO,SAC5Ek/B,EAAUugB,GAAoBz/C,EAAO,WACzCpE,EAAKmI,SAAQ,SAAUu/B,GACrB,IAAIouC,EAAY,GAAI9lE,EAAK03B,IACrBquC,EAAc,GAAI9lE,EAAOy3B,IACzBsuC,EAAa1yC,EAAQoE,IrGpGJ,EqGqGjBuuC,EAAUa,EAAMpvC,GAChBwuC,EAAW5pE,KAAKm3B,IAAIid,EAAOhZ,GAAMvoC,EAAMuoC,IACvC/+B,EAAqB,MAAjB+jD,EAAuBwpB,EAAWD,EACtC1jD,EAAqB,MAAjBm6B,EAAuBwpB,EAAWD,EACtCJ,EAAWvpE,KAAKkS,IAAI+2C,EAAK7tB,GAAOovC,EAAMpvC,IACtCyuC,EAAY7pE,KAAKkS,KAAKkiC,EAAOhZ,GAAOvoC,EAAMuoC,IAC1C+d,EAA0B,WAAjB8uB,EAA4BsB,EAAWM,EAChDxoC,EAAyB,UAAjB4mC,EAA2BsB,EAAWM,EAClDT,EAAIU,YACJV,EAAIztB,KAAKt/C,EAAIk/C,EAAYt1B,EAAIo1B,EAAWha,EAAO8X,GAC/CiwB,EAAIW,UAAY,QAAUP,EAAUllD,EAAI,KAAOklD,EAAU1yC,EAAI,KAAO0yC,EAAU9yE,EAAI,KAAOgzE,EAAa,IACtGN,EAAI1lE,OACJ0lE,EAAIY,YAAc,QAAUP,EAAYnlD,EAAI,KAAOmlD,EAAY3yC,EAAI,KAAO2yC,EAAY/yE,EAAI,KAAOgzE,EAAa,IAC9GN,EAAIzlE,eAGP,CACDxR,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJ2wE,EAnEc,CAoErB,IAEF,GAAiBtuC,YAAc,mBAC/B,GAAiBqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CACxE0qB,YAAa,IAAUjmE,OAAOoY,WAC9BimC,aAAc,IAAUr+C,OAAOoY,WAC/B8tD,aAAc,IAAUlmE,OAAOoY,WAC/B+tD,cAAe,IAAUnmE,OAAOoY,aAElC,GAAiB++B,UAAY,GAAS,GAAI,GAAeA,WAC1C,UCrKX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAyC5E,IAAI,GAA6B,SAAUkzD,GAGzC,SAASikB,IAGP,OAFA,GAAgBr4E,KAAMq4E,GAEf,GAA2Br4E,MAAOq4E,EAA2BtsE,WAAanL,OAAOkL,eAAeusE,IAA6B/wE,MAAMtH,KAAMiB,YAwClJ,OApFF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA0B3G,CAAU6wD,EAA4BjkB,GAQtC,GAAaikB,EAA4B,CAAC,CACxCt4E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,0BAH6B,EAI7B+I,cAH2B,MAAT30B,KAMrB,CACDpiD,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,GAAWc,YAAY,GAAS,GAAIpyE,EAAO,CACzCkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,SACdC,cAAe,UACbkB,KAEL,CACDj3E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJ6wE,EA9CwB,CA+C/B,IAEF,GAA2BxuC,YAAc,6BACzC,GAA2Bid,UAAY,GAAS,GAAI,GAAeA,WACpD,ICrIX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAEIo3E,GAAgB,SAAuBC,EAAcC,GACvD,OAAOD,IAA8BC,EAAe,QAAU,QAG5DC,GAAsB,SAA6BC,EAAcC,GACnE,OAAOD,IAA8BC,EAAc,mBAAqB,oBAGtE,GAAc,SAAUvkB,GAG1B,SAASwkB,IAGP,OAFA,GAAgB54E,KAAM44E,GAEf,GAA2B54E,MAAO44E,EAAY7sE,WAAanL,OAAOkL,eAAe8sE,IAActxE,MAAMtH,KAAMiB,YA2FpH,OAlJF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAqC3G,CAAUoxD,EAAaxkB,GAQvB,GAAawkB,EAAa,CAAC,CACzB74E,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBkvC,EAA0BzwD,EAAOywD,wBACjClzE,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACdynC,EAAQ3gB,EAAO2gB,MACf+vC,EAAW1wD,EAAO0wD,SAClB3vB,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnB8vB,EAAW3wD,EAAO2wD,SAClB9yE,EAAQmiB,EAAOniB,MACf+yE,EAAS5wD,EAAO4wD,OAChBC,EAAS7wD,EAAO6wD,OAChBV,EAAenwD,EAAOmwD,aACtBG,EAAetwD,EAAOswD,aAE1B,IAAKp3E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcgvC,EAAa,GAAS,GAAI54E,KAAK0F,MAAO,CAC5DikC,UAAW,KACXZ,MAAOznC,MAIX,IAAI43E,EAAWl5E,KAAKwqD,qBAAqB,KAErC2uB,EAAWn5E,KAAKwqD,qBAAqB,KAEzC,OAAO,IAAM5gB,cAAc,IAAK,CAC9BjkC,UAAW,gDAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,IACzDhjD,MAAOA,GACN3E,EAAK4mC,QAAO,SAAU0lB,EAAKn8C,EAAG/G,GAC/B,IAAI0uE,EAAY3nE,EAAExL,MACdqoE,EAAU78D,EAAE68D,QACZC,EAAU98D,EAAE88D,QAEhB,IAAKuK,EAASrnE,GACZ,OAAOm8C,EAGT,IAAIyrB,EAAOH,EAASznE,GAChB6nE,EAAOH,EAAS1nE,GAChB+mE,EAAea,GAAQL,EAAO,GAAKA,EAAO,IAAM,EAChDL,EAAcW,EAAO1rE,KAAKkS,IAAIm5D,EAAO,GAAKA,EAAO,IAAM,EACvDhvE,EAAIovE,GAAQR,GAA2BL,GAAgB,EAAI,IAAMlK,GAAW,GAC5Ez6C,EAAIylD,GAAQT,GAA2BF,GAAe,EAAI,IAAMpK,GAAW,GAE3EgL,EADqC,IAAf9nE,EAAEsnE,UAAkBtnE,EAAEsnE,SACNtnE,EAAEsnE,SAAWA,EAEnDjL,EAAQ,GAAS,CACnB0L,iBAAkBf,GAAoBC,EAAcC,GACpDhzE,UAAW,iCACX5F,IAAK2K,EACLirD,QAAS,SAAiBvwD,GACxB,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,IAEtCwwD,cAAe,SAAuBxwD,GACpC,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,IAE3CqwD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,IAE1CswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,IAEzCwnE,WAAY0L,GAAcC,EAAcC,GACxCvuE,EAAGA,EACH4pB,EAAGA,EACHhT,UAAW,UAAY04D,EAAgB,IAAMtvE,EAAI,IAAM4pB,EAAI,KAC1DulD,GAECK,EAAcX,EAAS/vC,EAAQA,EAAMr+B,GAAK+G,GAC9C,OAAOm8C,EAAIjkD,OAAO,CAAC,IAAMigC,cAAc,OAAQkkC,EAAO2L,OACrD,SAIAb,EAjGS,CAkGhB,IAEF,GAAY1tB,aAAe,GAAS,GAAI,GAAeA,aAAc,CACnEvhB,WAAW,EACXovC,SAAU,EACVD,SAAU,SAAkBrnE,GAC1B,OAAOA,EAAEioE,SAGb,GAAY7vC,YAAc,cACX,UC7MX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA6C5E,IACIy4E,GAAgB,CAClBC,OAAQ,OACRC,MAAO,MAGL,GAAa,SAAUzlB,GAGzB,SAAS0lB,IAGP,OAFA,GAAgB95E,KAAM85E,GAEf,GAA2B95E,MAAO85E,EAAW/tE,WAAanL,OAAOkL,eAAeguE,IAAaxyE,MAAMtH,KAAMiB,YAoFlH,OA1IF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAoC3G,CAAUsyD,EAAY1lB,GAQtB,GAAa0lB,EAAY,CAAC,CACxB/5E,IAAK,cACLU,MAAO,SAAqBa,EAAM2I,EAAG4pB,EAAG+iC,EAAOkI,GAC7C,IAAIjI,EAAO,KAYX,OAVc,OAAVD,IACmB,iBAAVA,GAAsB,EAAQA,GACvCC,EAAOA,EAAKD,MAAM,EAAQA,IACA,mBAAVA,IAChBC,EAAOA,EAAKD,MAAMA,MAKtBC,GADAA,EAAOA,EAAKF,QAAQmI,IACR70D,EAAEA,GAAG4pB,EAAEA,IACPvyB,KAEb,CACDvB,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KAMlB,GAJItB,KAAK0F,MAAMq5D,cACb,aAAQ,4CAA4C,IAGjDz9D,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAckwC,EAAY,GAAS,GAAI95E,KAAK0F,MAAO,CAC3DikC,UAAW,SAIf,IAAIof,EAAU/oD,KAAK0F,MACfkxD,EAAQ7N,EAAQ6N,MAChBzN,EAAaJ,EAAQI,WACrBF,EAAYF,EAAQE,UACpB8wB,EAAkBhxB,EAAQgxB,gBAC1BnC,EAAc7uB,EAAQ6uB,YACtB7K,EAAchkB,EAAQgkB,YACtB9mE,EAAQ8iD,EAAQ9iD,MAEhBgE,EAAIjK,KAAKwqD,qBAAqB,KAE9B32B,EAAI7zB,KAAKwqD,qBAAqB,KAE9Bj5C,EAASvR,KAAKi/D,mBAAmB,WAAaj/D,KAAKi/D,mBAAmB,SAEtEC,EAAal/D,KAAKi/D,mBAAmB,WAErCr6B,EAAU/2B,OAAOJ,SAASyxD,GAAcA,ExGxIrB,EwGyInBJ,EAAU9+D,KAAK0F,MAAMq5D,cAAgB/+D,KAAK0F,MAAMo5D,QAEhDrtD,EAAIzR,KAAKg6E,YAAY14E,EAAM2I,EAAG4pB,EAAG+iC,EAAOkI,GAE5C,OAAO,IAAMl1B,cAAc,OAAQ,CACjCn4B,EAAGA,EACH9L,UAAW,+CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,IACzDwM,YAAaz1D,KAAKioD,wBAClByN,WAAY11D,KAAKgoD,uBACjB2N,QAAS31D,KAAK8nD,oBACd8N,cAAe51D,KAAKkoD,yBACpBjiD,MAAO,GAAS,CACd2+B,QAASA,EACTm1C,gBAAiBJ,GAAc/B,IAAgBmC,EAC/ChN,YAAaA,EACbx7D,OAAQA,GACPtL,SAKF6zE,EA1FQ,CA2Ff,IAEF,GAAWjwC,YAAc,aACzB,GAAWqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CAClE0sB,YAAa,QACb3xE,MAAO,GACP2+B,QAAS,EACTgyB,MAAO,KACPjxD,UAAW,GACXm5D,QAAS,WACP,OAAO,KAGI,UCtMX,GAAWl+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA4C5E,IAGI,GAAa,SAAUkzD,GAGzB,SAAS6lB,IAGP,OAFA,GAAgBj6E,KAAMi6E,GAEf,GAA2Bj6E,MAAOi6E,EAAWluE,WAAanL,OAAOkL,eAAemuE,IAAa3yE,MAAMtH,KAAMiB,YAyFlH,OA3IF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAgC3G,CAAUyyD,EAAY7lB,GAQtB,GAAa6lB,EAAY,CAAC,CACxBl6E,IAAK,gBACLU,MAAO,SAAuBgR,EAAG/G,EAAGqiE,EAAa9mE,EAAOi0E,GACtD,IAAIhlB,EAASl1D,KAETsR,EAAO4oE,EAAiB5oE,KACxBszB,EAAUs1C,EAAiBt1C,QAC3BjjC,EAAOu4E,EAAiBv4E,KACxB4P,EAAS2oE,EAAiB3oE,OAC1BtH,EAAIiwE,EAAiBjwE,EACrB4pB,EAAIqmD,EAAiBrmD,EACrBi6C,EAAQ,CACV57C,EAAGvwB,EAAOA,EAAK8P,GzGrFG,EyGsFlB+iB,GAAIvqB,EAAEwH,GACNsiB,GAAIF,EAAEpiB,GACNxL,MAAO,GAAS,CACd2+B,QAASA,EAAUA,EAAQnzB,GzG1FR,EyG2FnBF,OAAQA,GAAUA,EAAOE,GACzBH,KAAMA,GAAQA,EAAKG,GACnBs7D,YAAaA,GA9BI,GA+BhB9mE,GACHlG,IAAK2K,EACLirD,QAAS,SAAiBvwD,GACxB,OAAO8vD,EAAO/M,mBAAmB12C,EAAGrM,IAEtCwwD,cAAe,SAAuBxwD,GACpC,OAAO8vD,EAAOzM,wBAAwBh3C,EAAGrM,IAE3CqwD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAO3M,uBAAuB92C,EAAGrM,IAE1CswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAO7M,sBAAsB52C,EAAGrM,KAG3C,OAAO,IAAMwkC,cAAc,SAAUkkC,KAEtC,CACD/tE,IAAK,SACLU,MAAO,WACL,IAAIkyE,EAAS3yE,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACd6nD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnB8jB,EAAc3kD,EAAO2kD,YACrB9mE,EAAQmiB,EAAOniB,MAEfjG,KAAK0F,MAAMq5D,cACb,aAAQ,4CAA4C,GAGtD,IAAID,EAAU9+D,KAAK0F,MAAMq5D,cAAgB/+D,KAAK0F,MAAMo5D,QAEpD,IAAKx9D,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcqwC,EAAY,GAAS,GAAIj6E,KAAK0F,MAAO,CAC3DikC,UAAW,SAIf,IAAIuwC,EAAmB,CACrB5oE,KAAMtR,KAAKwqD,qBAAqB,SAAWxqD,KAAKwqD,qBAAqB,SACrE5lB,QAAS5kC,KAAKwqD,qBAAqB,WACnC7oD,KAAM3B,KAAKwqD,qBAAqB,QAChCj5C,OAAQvR,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SACzEvgD,EAAGjK,KAAKwqD,qBAAqB,KAC7B32B,EAAG7zB,KAAKwqD,qBAAqB,MAE/B,OAAO,IAAM5gB,cAAc,IAAK,CAC9BjkC,UAAW,+CAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD3nD,EAAKsE,KAAI,SAAU6L,EAAG/G,GACvB,OAAOo0D,EAAQrtD,IAAMkhE,EAAOwH,cAAc1oE,EAAG/G,EAAGqiE,EAAa9mE,EAAOi0E,WAKnED,EA/FQ,CAgGf,IAEF,GAAWpwC,YAAc,aACzB,GAAWqhB,aAAe,CACxB4T,QAAS,WACP,OAAO,IAGI,UClMX,GAAe,WACjB,SAASv0D,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBie,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAAI,GAAiB,SAAUkzD,GAG7B,SAASgmB,IAGP,OAFA,GAAgBp6E,KAAMo6E,GAEf,GAA2Bp6E,MAAOo6E,EAAeruE,WAAanL,OAAOkL,eAAesuE,IAAiB9yE,MAAMtH,KAAMiB,YA4B1H,OA1EF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA4B3G,CAAU4yD,EAAgBhmB,GAQ1B,GAAagmB,EAAgB,CAAC,CAC5Br6E,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACd20E,EAAYjyD,EAAOiyD,UACnBjB,EAAYhxD,EAAOgxD,UACnBnzE,EAAQmiB,EAAOniB,MACnB,OAAO,IAAM2jC,cAAc,IAAK,CAC9BjkC,UAAW,mDACV,IAAMikC,cAAc,GAAY,GAAS,GAAI5pC,KAAK0F,MAAO,CAC1DO,MAAO,GAAS,GAAIA,EAAOo0E,MACxB,IAAMzwC,cAAc,GAAY,GAAS,GAAI5pC,KAAK0F,MAAO,CAC5DO,MAAO,GAAS,GAAIA,EAAOmzE,UAG7B,CAAC,CACHr5E,IAAK,eACLyH,IAAK,WACH,OAAO,GAAS,GAAI,GAAW0jD,aAAc,CAC3CmvB,UAAW,GACXjB,UAAW,SAKVgB,EAlCY,CAmCnB,IAEF,GAAevwC,YAAc,iBACd,UC5HX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAAI,GAAmB,SAAUkzD,GAG/B,SAASkmB,IAGP,OAFA,GAAgBt6E,KAAMs6E,GAEf,GAA2Bt6E,MAAOs6E,EAAiBvuE,WAAanL,OAAOkL,eAAewuE,IAAmBhzE,MAAMtH,KAAMiB,YAgD9H,OA9FF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA4B3G,CAAU8yD,EAAkBlmB,GAQ5B,GAAakmB,EAAkB,CAAC,CAC9Bv6E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,IAAI11E,EAAOoE,EAAMpE,KACb6nD,EAAazjD,EAAMyjD,WACnBF,EAAYvjD,EAAMujD,UAClBh/C,EAAIk7C,GAAoBz/C,EAAO,KAC/BmuB,EAAIsxB,GAAoBz/C,EAAO,KAE/B/D,EAAOwjD,GAAoBz/C,EAAO,SAAW,SAAU4qB,GACzD,O3GpFkB,G2GuFhBhf,EAAO6zC,GAAoBz/C,EAAO,SAAWy/C,GAAoBz/C,EAAO,SACxE6L,EAAS4zC,GAAoBz/C,EAAO,WAAay/C,GAAoBz/C,EAAO,SAC5Ek/B,EAAUugB,GAAoBz/C,EAAO,WACzCpE,EAAKmI,SAAQ,SAAUu/B,GACrB,IAAIouC,EAAY,GAAI9lE,EAAK03B,IACrBquC,EAAc,GAAI9lE,EAAOy3B,IACzBsuC,EAAa1yC,EAAQoE,I3G9FJ,E2G+FrBguC,EAAIU,YACJV,EAAIljD,IAAI7pB,EAAE++B,GAAOmgB,EAAYt1B,EAAEmV,GAAOigB,EAAWtnD,EAAKqnC,GAAM,EAAG,EAAIp7B,KAAKmxC,IACxEi4B,EAAIW,UAAY,QAAUP,EAAUllD,EAAI,KAAOklD,EAAU1yC,EAAI,KAAO0yC,EAAU9yE,EAAI,KAAOgzE,EAAa,IACtGN,EAAI1lE,OACJ0lE,EAAIY,YAAc,QAAUP,EAAYnlD,EAAI,KAAOmlD,EAAY3yC,EAAI,KAAO2yC,EAAY/yE,EAAI,KAAOgzE,EAAa,IAC9GN,EAAIzlE,cAGP,CACDxR,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJ8yE,EAtDc,CAuDrB,IAEF,GAAiBzwC,YAAc,mBAC/B,GAAiBid,UAAY,GAAS,GAAI,GAAeA,WAC1C,UCjJX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA6C5E,IAAI,GAAmB,SAAUkzD,GAG/B,SAASmmB,IAGP,OAFA,GAAgBv6E,KAAMu6E,GAEf,GAA2Bv6E,MAAOu6E,EAAiBxuE,WAAanL,OAAOkL,eAAeyuE,IAAmBjzE,MAAMtH,KAAMiB,YAmE9H,OAnHF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA8B3G,CAAU+yD,EAAkBnmB,GAQ5B,GAAammB,EAAkB,CAAC,CAC9Bx6E,IAAK,SACLU,MAAO,WACL,OAAO,IAAMmpC,cAAc,MAAO,SAElC,CAAC,CACH7pC,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,IAAIpgB,EAAQlxD,EAAMkxD,MACdt1D,EAAOoE,EAAMpE,KACb6nD,EAAazjD,EAAMyjD,WACnBF,EAAYvjD,EAAMujD,UAClB8jB,EAAcrnE,EAAMqnE,YACpBgN,EAAkBr0E,EAAMq0E,gBAE5B,GAAKz4E,GAAwB,IAAhBA,EAAKE,OAAlB,CAIA,IAAIyI,EAAIk7C,GAAoBz/C,EAAO,KAC/BmuB,EAAIsxB,GAAoBz/C,EAAO,KAE/B2xE,EAAc,GADL/xB,GAAkB5/C,EAAO,WAAa4/C,GAAkB5/C,EAAO,UAExEw5D,EAAa5Z,GAAkB5/C,EAAO,WACtCk/B,EAAU/2B,OAAOJ,SAASyxD,GAAcA,E5GhGrB,E4GiGnBrI,EAAO,KAAe5sD,GAAE,SAAU++B,GACpC,OAAO/+B,EAAE++B,GAAOmgB,KACft1B,GAAE,SAAUmV,GACb,OAAOnV,EAAEmV,GAAOigB,KAGG,iBAAV2N,GAAsB,EAAQA,GACvCC,EAAOA,EAAKD,MAAM,EAAQA,IACA,mBAAVA,IAChBC,EAAOA,EAAKD,MAAMA,IAGpBogB,EAAIU,YACJV,EAAIY,YAAc,QAAUP,EAAYnlD,EAAI,KAAOmlD,EAAY3yC,EAAI,KAAO2yC,EAAY/yE,EAAI,KAAOsgC,EAAU,IAC3GoyC,EAAIwD,UAAYzN,EAEZgN,GACF/C,EAAIyD,YAAYV,GAGlBljB,EAAKjE,QAAQokB,EAAbngB,CAAkBv1D,GAClB01E,EAAIzlE,SACJylE,EAAIpoB,YAEJooB,EAAIwD,UAAY,EAChBxD,EAAIyD,YAAY,OAEjB,CACD16E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJ+yE,EAzEc,CA0ErB,IAEF,GAAiB1wC,YAAc,mBAC/B,GAAiBqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CACxE6hB,YAAa,IAEA,UCxKX,GAAWnsE,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAuB,SAAUkzD,GAGnC,SAASsmB,IAGP,OAFA,GAAgB16E,KAAM06E,GAEf,GAA2B16E,MAAO06E,EAAqB3uE,WAAanL,OAAOkL,eAAe4uE,IAAuBpzE,MAAMtH,KAAMiB,YA0BtI,OAvEF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2B3G,CAAUkzD,EAAsBtmB,GAQhC,GAAasmB,EAAsB,CAAC,CAClC36E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,GAAiBc,YAAYpyE,EAAOsxE,GACpC,GAAiBc,YAAYpyE,EAAOsxE,KAErC,CACDj3E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJkzE,EAhCkB,CAiCzB,IAEF,GAAqB7wC,YAAc,uBACnC,GAAqBid,UAAY,GAAS,GAAI,GAAeA,WAC9C,ICxHX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAGIy5E,GAAe,SAAsBr5E,EAAM43E,EAAUC,GACvD,OAAO73E,EAAK4mC,QAAO,SAAU0lB,EAAK5kB,EAAKt+B,GACrC,OAAOkjD,EAAM,KAAOljD,EAAI,IAAM,KAAOwuE,EAASlwC,GAAO,IAAMmwC,EAASnwC,KACnE,IAAM,MAGP,GAAgB,SAAUorB,GAG5B,SAASwmB,IAGP,OAFA,GAAgB56E,KAAM46E,GAEf,GAA2B56E,MAAO46E,EAAc7uE,WAAanL,OAAOkL,eAAe8uE,IAAgBtzE,MAAMtH,KAAMiB,YAwDxH,OA9GF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAoC3G,CAAUozD,EAAexmB,GAQzB,GAAawmB,EAAe,CAAC,CAC3B76E,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBzjC,EAAQkiB,EAAOliB,MACfP,EAAYyiB,EAAOziB,UACnBrE,EAAO8mB,EAAO9mB,KACd6nD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnBhjD,EAAQmiB,EAAOniB,MAEnB,IAAK3E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcgxC,EAAe,GAAS,GAAI56E,KAAK0F,MAAO,CAC9DikC,UAAW,SAIf,IAAIuvC,EAAWl5E,KAAKwqD,qBAAqB,KAErC2uB,EAAWn5E,KAAKwqD,qBAAqB,KAEzC,OAAO,IAAM5gB,cAAc,OAAQ,CACjCjkC,UAAW,kDAA4BA,EACvC8vD,YAAa,SAAqBrwD,GAChC,OAAO8vD,EAAOjN,wBAAwB3mD,EAAM8D,IAE9CswD,WAAY,SAAoBtwD,GAC9B,OAAO8vD,EAAOlN,uBAAuB1mD,EAAM8D,IAE7CuwD,QAAS31D,KAAK8nD,oBACd8N,cAAe51D,KAAKkoD,yBACpB52C,KAAMpL,GAzDM,UA0DZD,MAAOA,EACPwL,EAAGkpE,GAAar5E,EAAM43E,EAAUC,GAChCt4D,UAAW,aAAesoC,EAAa,IAAMF,EAAY,SAG3D,CAAC,CACHlpD,IAAK,YACLyH,IAAK,WACH,OAAO,GAAS,GAAI,GAAes/C,eAIhC8zB,EA9DW,CA+DlB,IAEF,GAAc/wC,YAAc,gBACb,UClKX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAoB,SAAUkzD,GAGhC,SAASymB,IAGP,OAFA,GAAgB76E,KAAM66E,GAEf,GAA2B76E,MAAO66E,EAAkB9uE,WAAanL,OAAOkL,eAAe+uE,IAAoBvzE,MAAMtH,KAAMiB,YAyBhI,OAtEF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2B3G,CAAUqzD,EAAmBzmB,GAQ7B,GAAaymB,EAAmB,CAAC,CAC/B96E,IAAK,SACLU,MAAO,WACL,OAAO,IAAMmpC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,QACdC,cAAe,eAGjB,CAAC,CACH/1E,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,yBAHsC,MAAT5rB,EAI7B20B,cAH2B,MAAT30B,OAQjB04B,EA/Be,CAgCtB,IAEF,GAAkBhxC,YAAc,oBACjB,UCxHX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAyC5E,IAAI,GAA4B,SAAUkzD,GAGxC,SAASyjB,IAGP,OAFA,GAAgB73E,KAAM63E,GAEf,GAA2B73E,MAAO63E,EAA0B9rE,WAAanL,OAAOkL,eAAe+rE,IAA4BvwE,MAAMtH,KAAMiB,YAwChJ,OApFF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA0B3G,CAAUqwD,EAA2BzjB,GAQrC,GAAayjB,EAA2B,CAAC,CACvC93E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,yBAHsC,MAAT5rB,EAI7B20B,cAH2B,MAAT30B,KAMrB,CACDpiD,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,GAAUc,YAAY,GAAS,GAAIpyE,EAAO,CACxCkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,QACdC,cAAe,WACbkB,KAEL,CACDj3E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJqwE,EA9CuB,CA+C9B,IAEF,GAA0BhuC,YAAc,4BACxC,GAA0Bid,UAAY,GAAS,GAAI,GAAeA,WACnD,IChHX,GAAe,CACjBmmB,UAFavM,GAAUF,SAGvBre,KAAM,KAGR,SAAS24B,GAAkBp1E,GACzB,OAAO,IAAMkkC,cAAc,GAAWlkC,GAGxCo1E,GAAkBjxC,YAAc,oBAChCixC,GAAkB5vB,aAAe,GACjC4vB,GAAkBrb,aAAc,EACjB,UCnCX,GAAW7+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA0C5E,IAAI,GAAqB,SAAUkzD,GAGjC,SAAS2mB,IAGP,OAFA,GAAgB/6E,KAAM+6E,GAEf,GAA2B/6E,MAAO+6E,EAAmBhvE,WAAanL,OAAOkL,eAAeivE,IAAqBzzE,MAAMtH,KAAMiB,YAyBlI,OAtEF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2B3G,CAAUuzD,EAAoB3mB,GAQ9B,GAAa2mB,EAAoB,CAAC,CAChCh7E,IAAK,SACLU,MAAO,WACL,OAAO,IAAMmpC,cAAc,GAAY,GAAS,GAAI5pC,KAAK0F,MAAO,CAC9DkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,QACdC,cAAe,eAGjB,CAAC,CACH/1E,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,0BAH6B,EAI7B+I,cAH2B,MAAT30B,OAQjB44B,EA/BgB,CAgCvB,IAEF,GAAmBlxC,YAAc,qBAClB,UCxHX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAyC5E,IAAI,GAA6B,SAAUkzD,GAGzC,SAASikB,IAGP,OAFA,GAAgBr4E,KAAMq4E,GAEf,GAA2Br4E,MAAOq4E,EAA2BtsE,WAAanL,OAAOkL,eAAeusE,IAA6B/wE,MAAMtH,KAAMiB,YAwClJ,OApFF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA0B3G,CAAU6wD,EAA4BjkB,GAQtC,GAAaikB,EAA4B,CAAC,CACxCt4E,IAAK,SACLU,MAAO,WACL,OAAO,QAEP,CAAC,CACHV,IAAK,kBACLU,MAAO,SAAyB0hD,GAG9B,MAAO,CACL4rB,0BAH6B,EAI7B+I,cAH2B,MAAT30B,KAMrB,CACDpiD,IAAK,cACLU,MAAO,SAAqBiF,EAAOsxE,GACjC,GAAWc,YAAY,GAAS,GAAIpyE,EAAO,CACzCkwE,YAAa,IACb5nB,aAAc,IACd6nB,aAAc,QACdC,cAAe,WACbkB,KAEL,CACDj3E,IAAK,cACLyH,IAAK,WACH,OAAO,IAER,CACDzH,IAAK,WACLyH,IAAK,WACH,OAAO,MAIJ6wE,EA9CwB,CA+C/B,IAEF,GAA2BxuC,YAAc,6BACzC,GAA2Bid,UAAY,GAAS,GAAI,GAAeA,WACpD,ICvIX,GAAWlmD,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAOLi0E,GAAO,SAAcjxC,GACvB,OAAOA,GA0BT,SAASkxC,GAAQv1E,GACf,IATiBgjC,EACbmsB,EACAC,EACA3L,EACAF,EAKAtjD,EAAYD,EAAMC,UAClBuxB,EAASxxB,EAAMwxB,OACfgkD,EAAQx1E,EAAMw1E,MACdC,EAASz1E,EAAMy1E,OACfC,EAAW11E,EAAMiwD,QACjB0lB,EAAa31E,EAAM2tE,UACnBiI,EAAe51E,EAAMwtE,YACrBqI,EAAU71E,EAAM61E,QAChBC,EAAe91E,EAAM81E,aACrBv1E,EAAQP,EAAMO,MACdgE,EAAIvE,EAAMuE,EACV4pB,EAAInuB,EAAMmuB,EAIV0E,EAFkB,KAAUtuB,EAAEA,GAAKk7C,GAAoBz/C,EAAO,MAAMmuB,EAAEA,GAAKsxB,GAAoBz/C,EAAO,MAAMwxB,OAAOA,IArBnH29B,GADansB,EAsB0HhjC,GArBrHmvD,WAClBC,EAAcpsB,EAAKosB,YACnB3L,EAAazgB,EAAKygB,WAClBF,EAAYvgB,EAAKugB,UACd,CAAC,CAACE,EAAYF,GAAY,CAAC4L,EAAa1L,EAAY2L,EAAc7L,MAmB1C1wB,SAAS2iD,GAEpCO,EAAmB,SAA0BC,GAC/C,OAAO,SAAUtyB,GACfA,EAAIP,iBACJ,IAAItlD,EA3CV,SAAsB6lD,GACpB,IAAIuyB,EAAmBvyB,EAAIC,YACvBO,EAAQ+xB,EAAiB/xB,MACzBC,EAAQ8xB,EAAiB9xB,MACzB9iD,EAASlB,SAAS+1E,iBAAiBhyB,EAAOC,GAE9C,IAAK9iD,EACH,OAAQ,EAGV,IAAI80E,EAAa90E,EAAO80E,WACxB,OAAOl4E,MAAM9C,UAAUmnC,QAAQ9mC,KAAK26E,EAAWC,WAAY/0E,GAgC3Cg1E,CAAa3yB,GAEzB,GAAI7lD,GAAS,GAAKA,EAAQg1B,EAAS/2B,OAAQ,CACzC,IAAIiQ,EAAI8mB,EAASh1B,GACjBm4E,EAAQjqE,EAAEnQ,SAKhB,OAAO,IAAMsoC,cAAc,IAAK,CAC9BjkC,UAAWA,EAAY,cACvBM,MAAOA,EAGPstE,WAAYkI,EAAiBJ,GAC7BW,aAAcP,EAAiBH,GAC/BW,YAAaR,EAAiBF,GAC9B/H,cAAeiI,EAAiBN,IAC/B5iD,EAAS3yB,KAAI,SAAU6L,EAAG/G,GAC3B,OAAO,IAAMk/B,cAAc,OAAQ,CACjCjkC,UAAW,qBAAuB8L,EAAEnQ,MAAQmQ,EAAEnQ,KAAKqE,WAAa,IAChE8L,EAAG,IAAMA,EAAEwJ,KAAK,KAAO,IACvB06C,QAAS,WACP,OAAOylB,EAAS3pE,EAAEnQ,OAEpB+xE,UAAW,WACT,OAAOgI,EAAW5pE,EAAEnQ,OAEtB4xE,YAAa,WACX,OAAOoI,EAAa7pE,EAAEnQ,OAExBm0D,YAAa,WACX,OAAO8lB,EAAQ9pE,EAAEnQ,OAEnBo0D,WAAY,WACV,OAAOylB,EAAO1pE,EAAEnQ,OAElBgQ,KAAM,OACNrL,MAAO,GAAS,CACd4vD,cAAe,OACd2lB,EAAc/pE,EAAEnQ,MAAQmQ,EAAEnQ,KAAK2E,OAClClG,IAAK2K,QAKXuwE,GAAQxb,aAAc,EACtBwb,GAAQpxC,YAAc,UACtBoxC,GAAQ/vB,aAAe,CACrBvlD,UAAW,GACXw1E,OAAQH,GACRrlB,QAASqlB,GACTO,QAASP,GACT9H,YAAa8H,GACb3H,UAAW2H,IAEE,UC1HX,GAAe,WACjB,SAASzwE,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBie,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAyII,GAAgB,SAAUkzD,GAG5B,SAAS8nB,IAGP,OAFA,GAAgBl8E,KAAMk8E,GAEf,GAA2Bl8E,MAAOk8E,EAAcnwE,WAAanL,OAAOkL,eAAeowE,IAAgB50E,MAAMtH,KAAMiB,YAiDxH,OAxOF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAqK3G,CAAU00D,EAAe9nB,GAQzB,GAAa8nB,EAAe,CAAC,CAC3Bn8E,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBhkC,EAAYyiB,EAAOziB,UACnBw2E,EAAgB/zD,EAAO+zD,cACvB76E,EAAO8mB,EAAO9mB,KACd6nD,EAAa/gC,EAAO+gC,WACpBF,EAAY7gC,EAAO6gC,UACnB8jB,EAAc3kD,EAAO2kD,YACrB9mE,EAAQmiB,EAAOniB,MAEnB,IAAK3E,EACH,OAAO,KAGT,GAAIqoC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAe+lB,KACb,IAAMjkB,cAAcsyC,EAAe,GAAS,GAAIl8E,KAAK0F,MAAO,CAC9DikC,UAAW,SAIf,IAAIyyC,EAAmB,CACrBD,cAAeA,EACf7F,eAAgBt2E,KAAKwqD,qBAAqB,WAC1C6xB,YAAar8E,KAAKwqD,qBAAqB,QACvC6rB,cAAer2E,KAAKwqD,qBAAqB,WAAaxqD,KAAKwqD,qBAAqB,SAChFuiB,YAAaA,EACb9mE,MAAOA,EACPizE,SAAUl5E,KAAKwqD,qBAAqB,KACpC2uB,SAAUn5E,KAAKwqD,qBAAqB,KACpC8xB,kBAAmBt8E,KAAKmoD,mBACxBo0B,uBAAwBv8E,KAAKyoD,wBAC7B+zB,sBAAuBx8E,KAAKuoD,uBAC5Bk0B,qBAAsBz8E,KAAKqoD,uBAE7B,OAAO,IAAMze,cAAc,IAAK,CAC9BjkC,UAAW,kDAA4BA,EACvCkb,UAAW,aAAesoC,EAAa,IAAMF,EAAY,KACxD3nD,EAAKsE,IAnLU,SAA2Bw2E,GACjD,OAAO,SAAU3qE,EAAG/G,GAClB,IAAIyxE,EAAgBC,EAAiBD,cACjC7F,EAAiB8F,EAAiB9F,eAClC+F,EAAcD,EAAiBC,YAC/BhG,EAAgB+F,EAAiB/F,cACjCtJ,EAAcqP,EAAiBrP,YAC/B9mE,EAAQm2E,EAAiBn2E,MACzBq2E,EAAoBF,EAAiBE,kBACrCG,EAAuBL,EAAiBK,qBACxCD,EAAwBJ,EAAiBI,sBACzCD,EAAyBH,EAAiBG,uBAC1CrD,EAAWkD,EAAiBlD,SAC5BC,EAAWiD,EAAiBjD,SAC5BjnD,EAAImqD,EAAcA,EAAY5qE,GAAK,EACnC+iB,EAAK0kD,EAASznE,GACdsiB,EAAKolD,EAAS1nE,GACdirE,EAAoBxD,EAAS,CAC/BjvE,EAAGwH,EAAExH,EAAIwH,EAAEkrE,UAAY,IAErBC,EAAoB1D,EAAS,CAC/BjvE,EAAGwH,EAAExH,EAAIwH,EAAEkrE,UAAY,IAErBE,EAAoB1D,EAAS,CAC/BtlD,EAAGpiB,EAAEoiB,EAAIpiB,EAAEqrE,UAAY,IAErBC,EAAoB5D,EAAS,CAC/BtlD,EAAGpiB,EAAEoiB,EAAIpiB,EAAEqrE,UAAY,IAQrBE,EAAeN,GAAqBloD,EAAKtC,EAAIwqD,EAC7CO,EAAeJ,GAAqB9oD,EAAK7B,EAAI2qD,EAEjD,IAAKG,IAAiBC,EACpB,OAAO,KAGT,IAAIC,EAAY,GAAS,CACvBt4C,QAAS0xC,EAAiBA,EAAe7kE,GrHjHlB,EqHkHvBF,OAAQ8kE,GAAiBA,EAAc5kE,GACvCs7D,YAAaA,GArDQ,GAsDpB9mE,GAECk3E,EAAoBhB,EAAgB,EACpCiB,EAAiB,CACnBprD,GAAIwC,EAAKtC,EACTD,GAAI8B,EACJi7B,GAAI0tB,EACJztB,GAAIl7B,EACJ9tB,MAAOi3E,GAELG,EAAgB,CAClBrrD,GAAIwC,EAAKtC,EACTD,GAAI8B,EACJi7B,GAAI4tB,EACJ3tB,GAAIl7B,EACJ9tB,MAAOi3E,GAELI,EAAqB,CACvBtrD,GAAI0qD,EACJzqD,GAAI8B,EAAKopD,EACTnuB,GAAI0tB,EACJztB,GAAIl7B,EAAKopD,EACTl3E,MAAOi3E,GAELK,EAAoB,CACtBvrD,GAAI4qD,EACJ3qD,GAAI8B,EAAKopD,EACTnuB,GAAI4tB,EACJ3tB,GAAIl7B,EAAKopD,EACTl3E,MAAOi3E,GAELM,EAAiB,CACnBxrD,GAAIwC,EACJvC,GAAI8B,EAAK7B,EACT88B,GAAIx6B,EACJy6B,GAAI4tB,EACJ52E,MAAOi3E,GAELO,EAAiB,CACnBzrD,GAAIwC,EACJvC,GAAI8B,EAAK7B,EACT88B,GAAIx6B,EACJy6B,GAAI8tB,EACJ92E,MAAOi3E,GAELQ,EAAqB,CACvB1rD,GAAIwC,EAAK2oD,EACTlrD,GAAI4qD,EACJ7tB,GAAIx6B,EAAK2oD,EACTluB,GAAI4tB,EACJ52E,MAAOi3E,GAELS,EAAqB,CACvB3rD,GAAIwC,EAAK2oD,EACTlrD,GAAI8qD,EACJ/tB,GAAIx6B,EAAK2oD,EACTluB,GAAI8tB,EACJ92E,MAAOi3E,GAET,OAAO,IAAMtzC,cAAc,IAAK,CAC9BjkC,UAAW,gBACX5F,IAAK2K,EACLirD,QAAS,SAAiBvwD,GACxB,OAAOk3E,EAAkB7qE,EAAGrM,IAE9BwwD,cAAe,SAAuBxwD,GACpC,OAAOm3E,EAAuB9qE,EAAGrM,IAEnCqwD,YAAa,SAAqBrwD,GAChC,OAAOo3E,EAAsB/qE,EAAGrM,IAElCswD,WAAY,SAAoBtwD,GAC9B,OAAOq3E,EAAqBhrE,EAAGrM,KAEhC43E,EAAe,IAAMpzC,cAAc,IAAK,CACzCjkC,UAAW,cACV,IAAMikC,cAAc,OAAQwzC,GAAiB,IAAMxzC,cAAc,OAAQyzC,GAAgB,IAAMzzC,cAAc,OAAQ0zC,GAAqB,IAAM1zC,cAAc,OAAQ2zC,IAAsB,KAAMN,EAAe,IAAMrzC,cAAc,IAAK,CAC3OjkC,UAAW,cACV,IAAMikC,cAAc,OAAQ4zC,GAAiB,IAAM5zC,cAAc,OAAQ6zC,GAAiB,IAAM7zC,cAAc,OAAQ8zC,GAAqB,IAAM9zC,cAAc,OAAQ+zC,IAAuB,OAuDnL,CAAkBvB,SAI3BF,EAvDW,CAwDlB,IAEF,GAAcryC,YAAc,gBAC5B,GAAcqhB,aAAe,GAAS,GAAI,GAAeA,aAAc,CACrEixB,cAnM4B,EAoM5Bx6E,KAAM,EACNorE,YAtMyB,IAwMZ,I,wBC/RX,GAAWnsE,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GA8BF,SAAS62E,GAAmBl4E,EAAOm4E,GACxC,IAAIC,EAASp4E,EAAMo4E,OACf7uC,EAAQvpC,EAAMupC,MACd8X,EAASrhD,EAAMqhD,OAEfg3B,EAAc,GAAS,GAAIF,EAAkC,iBAAXC,EAAsB,CAC1E5sD,KAAM4sD,EACN3sD,MAAO2sD,EACP/zB,IAAK+zB,EACLpf,OAAQof,GACNA,GAEAE,EAAoBD,EAAY7sD,KAChCi4B,OAAmC9/C,IAAtB20E,EAAkC,EAAIA,EACnDC,EAAmBF,EAAYh0B,IAC/Bd,OAAiC5/C,IAArB40E,EAAiC,EAAIA,EACjDC,EAAqBH,EAAY5sD,MACjCouC,OAAqCl2D,IAAvB60E,EAAmC,EAAIA,EACrDC,EAAsBJ,EAAYrf,OAClCY,OAAuCj2D,IAAxB80E,EAAoC,EAAIA,EAC3D,MAAO,CACLh1B,WAAYA,EACZF,UAAWA,EACXsW,YAAaA,EACbD,aAAcA,EACdxK,YAAa/N,EAASuY,EAAerW,EACrC4L,WAAY5lB,EAAQka,EAAaoW,GAY9B,SAAS6e,GAAsBnvC,EAAO8X,EAAQ9tB,GACnD,IAAIolD,EAAUpvC,EAAQ,EAAIhW,EACtBqlD,EAAUv3B,EAAS,EAAI9tB,EAC3B,MAAO,CACLylC,OAAQ4f,EACRptD,KAAMmtD,EACNltD,MAAOktD,EACPt0B,IAAKu0B,GAGF,IAAIC,GAAiB,IAAUr2D,UAAU,CAAC,IAAUJ,MAAM,CAC/DoJ,KAAM,IAAUnhB,OAChBg6C,IAAK,IAAUh6C,OACfohB,MAAO,IAAUphB,OACjB2uD,OAAQ,IAAU3uD,SAChB,IAAUA,SACHyuE,GAAkB,CAC3BttD,KAAM,GACNC,MAAO,GACP44B,IAAK,GACL2U,OAAQ,ICnGN,GAAe,WACjB,SAASn0D,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBie,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA+E5E,SAASu9E,GAAWzH,EAAKjwB,EAAQ9X,EAAOyvC,EAAQC,GAC9C3H,EAAI4H,UAAU,EAAG,EAAG3vC,EAAO8X,GAC3B23B,EAAOj1E,SAAQ,SAAUo1E,GACvB,IAAIl2C,EAAek2C,EAAMl2C,aACrBa,EAAWq1C,EAAMr1C,SAGjBV,EAFY+1C,EAAMl1C,UAEchB,EAAeA,EAAag2C,EA5CpD,IA4CiFh2C,EAAe,WAC1G,MAAO,IAETk2C,EAAM/G,YAAY,GAAS,GAAItuC,EAAUV,GAAoBkuC,MAgCjE,IAAI,GAAgB,SAAU8H,GAG5B,SAASC,IAGP,OAFA,GAAgB/+E,KAAM++E,GAEf,GAA2B/+E,MAAO++E,EAAchzE,WAAanL,OAAOkL,eAAeizE,IAAgBz3E,MAAMtH,KAAMiB,YA0GxH,OAtOF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA0G3G,CAAUu3D,EAAeD,GAQzB,GAAaC,EAAe,CAAC,CAC3Bh/E,IAAK,oBACLU,MAAO,WACL,IAAIu2E,EAAMh3E,KAAKg/E,OAAOC,WAAW,MAEjC,GAAKjI,EAAL,CAIA,IAAIkI,EAAal/E,KAAK0F,MAAMw5E,WAEvBlI,IAILA,EAAI5pC,MAAM8xC,EAAYA,GACtBl/E,KAAKm/E,aAAa,KAAMn/E,KAAK0F,MAAOsxE,OAErC,CACDj3E,IAAK,qBACLU,MAAO,SAA4B8oC,GACjCvpC,KAAKm/E,aAAa51C,EAAUvpC,KAAK0F,MAAO1F,KAAKg/E,OAAOC,WAAW,SAUhE,CACDl/E,IAAK,eACLU,MAAO,SAAsB8oC,EAAUC,EAAUwtC,GAC/C,IAAI78D,EAAWqvB,EAASrvB,SACpB26C,EAActrB,EAASsrB,YACvBD,EAAarrB,EAASqrB,WACtByK,EAAe91B,EAAS81B,aACxBnW,EAAa3f,EAAS2f,WACtBoW,EAAc/1B,EAAS+1B,YACvBtW,EAAYzf,EAASyf,UAEzB,GAAK+tB,EAAL,CAIA,IA3EeoI,EAAaC,EA2ExBC,EAAwBnlE,EAAS6e,MAAK,SAAU6P,GAClD,OAAOA,EAAMnjC,MAAMikC,aAEjBod,EAAS+N,EAAc7L,EAAYqW,EACnCrwB,EAAQ4lB,EAAa1L,EAAaoW,EAClCmf,GAhFWU,EAgFU51C,EAASrvB,SAhFNklE,EAgFgB91C,EAAWA,EAASpvB,SAAW,GA/ExEilE,EAAYx5E,KAAI,SAAUijC,EAAOtlC,GACtC,IAAIgmC,EAAW81C,EAAY97E,GAAS87E,EAAY97E,GAAOmC,MAAQ,GAC3D8jC,EAAWX,EAAMnjC,MACjB65E,EAAmB13C,GAA0B,GAAS,GAAI0B,EAAU,CACtEzB,cAAe+lB,MAEb2xB,EAAmBh2C,EAAW3B,GAA0B,GAAS,GAAI2B,EAAU,CACjF1B,cAAe+lB,MACX,KACFllB,EAAe,GAAY42C,EAAkBC,GACjD,MAAO,CACL1H,YAAajvC,EAAM/9B,KAAKgtE,YACxBtuC,SAAUX,EAAMnjC,MAChBikC,UAAWd,EAAMnjC,MAAMikC,UACvBhB,aAAcA,OAmET22C,EApIX,SAAwBtI,EAAKjwB,EAAQ9X,EAAOyvC,GAC1C,IAAIC,EAAgB,EAEhBc,EAAYC,aAAY,WACrB1I,GAKLyH,GAAWzH,EAAKjwB,EAAQ9X,EAAOyvC,EAAQC,GAEnCA,EApBQ,IAqBVgB,cAAcF,GAGhBd,GAAiB,GAVfgB,cAAcF,KAWf,GAyHCG,CAAe5I,EAAKjwB,EAAQ9X,EAAOyvC,GAJjCD,GAAWzH,EAAKjwB,EAAQ9X,EAAOyvC,MAMlC,CACD3+E,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETooB,EAASpoB,KAAK0F,MACdovD,EAAc1sC,EAAO0sC,YACrBD,EAAazsC,EAAOysC,WACpByK,EAAel3C,EAAOk3C,aACtBnW,EAAa/gC,EAAO+gC,WACpBoW,EAAcn3C,EAAOm3C,YACrBtW,EAAY7gC,EAAO6gC,UACnBi2B,EAAa92D,EAAO82D,WACpBn4B,EAAS+N,EAAc7L,EAAYqW,EACnCrwB,EAAQ4lB,EAAa1L,EAAaoW,EACtC,OAAO,IAAM31B,cAAc,MAAO,CAChC3jC,MAAO,CACLirB,KAAM,EACN64B,IAAK,GAEPpkD,UAAW,gBACV,IAAMikC,cAAc,SAAU,CAC/BjkC,UAAW,uBACXohD,OAAQA,EAASm4B,EACjBjwC,MAAOA,EAAQiwC,EACfj5E,MAAO,CACL8gD,OAAQA,EAAS,KACjB9X,MAAOA,EAAQ,MAEjBnkB,IAAK,SAAa4d,GAChB,OAAOwsB,EAAO8pB,OAASt2C,KAEvB1oC,KAAK0F,MAAMyU,aAEf,CAAC,CACHpa,IAAK,eACLyH,IAAK,WACH,MAAO,CACL03E,WAAY7xD,QAAUA,OAAOwyD,kBAAoB,OAKhDd,EAhHW,CAiHlB,aAEF,GAAcl1C,YAAc,gBACb,UCtRX,GAAe,WACjB,SAASt/B,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAwFT,IAAI,GAAa,CAAC,IAAK,IAAK,SAAU,QAAS,QAAS,OAAQ,SAAU,UAAW,QAQrF,SAAS+4E,GAAYx+E,GACnB,OAAOA,EAAKsE,KAAI,SAAUkmD,GACxB,OAAKnoD,MAAM8E,QAAQqjD,GAIZA,EAAOlmD,KAAI,SAAUojC,GAC1B,OAAO,GAAS,GAAIA,EAAK,CACvBxY,OAAQ,UALHs7B,KAgCb,IAAI,GAAS,SAAUhnC,GAsCrB,SAASi7D,EAAOr6E,IA3IlB,SAAyBsf,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCA0IpB,CAAgBpH,KAAM+/E,GAEtB,IAAIh7D,EAxIR,SAAoChP,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAmI5D,CAA2BlB,MAAO+/E,EAAOh0E,WAAanL,OAAOkL,eAAei0E,IAAS7+E,KAAKlB,KAAM0F,IAE5G,GAAiBxE,KAAK6jB,GAEtB,IAAIi7D,EAAUt6E,EAAMs6E,QAEhB1+E,EAAOqqD,GADIF,GAAkB/lD,EAAMyU,UACH6lE,GAKpC,OAJAj7D,EAAMS,MAAQ,CACZy6D,YAAal7D,EAAMm7D,gBAAgB5+E,EAAMoE,GACzCpE,KAAMA,GAEDyjB,EAwTT,OAncF,SAAmBwC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA2E3G,CAAUu4D,EAAQj7D,GAElB,GAAai7D,EAAQ,KAAM,CAAC,CAC1BhgF,IAAK,eACLyH,IAAK,WACH,MAAO,CACL7B,UAAW,MAGd,CACD5F,IAAK,YACLyH,IAAK,WACH,MAAO,CACLmiC,UAAWG,GACXnkC,UAAW,IAAUgK,OACrBwwE,iBAAkB,IAAUv4C,KAC5Bmf,OAAQ,IAAUh3C,OAAOgY,WACzB+1D,OAAQS,GACR5oB,QAAS,IAAUnwD,KACnB46E,cAAe,IAAU56E,KACzB0tE,YAAa,IAAU1tE,KACvB6tE,UAAW,IAAU7tE,KACrBgmE,aAAc,IAAUhmE,KACxBimE,aAAc,IAAUjmE,KACxB4tE,YAAa,IAAU5tE,KACvBw2E,aAAc,IAAUx2E,KACxBy2E,YAAa,IAAUz2E,KACvB+tE,WAAY,IAAU/tE,KACtBguE,cAAe,IAAUhuE,KACzB66E,QAAS,IAAU76E,KACnBw6E,QAAS,IAAUv6B,MAAM,IACzBx/C,MAAO,IAAU9B,OACjB8qC,MAAO,IAAUl/B,OAAOgY,gBAsB9B,GAAag4D,EAAQ,CAAC,CACpBhgF,IAAK,4BACLU,MAAO,SAAmC+zD,GACxC,IACI8rB,EAAW30B,GADAF,GAAkB+I,EAAUr6C,UACHq6C,EAAUwrB,SAC9CC,EAAcjgF,KAAKwlB,MAAMy6D,YAEzBM,EAAkBvgF,KAAKkgF,gBAAgBI,EAAU9rB,IA3E3D,SAA+B+rB,EAAiBN,EAAaO,GAC3D,IAAIC,EAAY,GAAS,GAAIF,EAAiB,CAC5C/7B,SAAUg8B,EAAmBV,GAAYS,EAAgB/7B,UAAY+7B,EAAgB/7B,WAGnFk8B,EAAY,GAAS,GAAIT,EAAa,CACxCz7B,SAAUg8B,EAAmBV,GAAYG,EAAYz7B,UAAYy7B,EAAYz7B,WAI/E,OAAO,KAAMi8B,EAAWC,IAmEfC,CAAsBJ,EAAiBN,EAAazrB,EAAUgsB,mBACjExgF,KAAK+lB,SAAS,CACZk6D,YAAaM,EACbj/E,KAAMg/E,MAgBX,CACDvgF,IAAK,4BAOLU,MAAO,WACL,IAAIy0D,EAASl1D,KAET0F,EAAQ1F,KAAK0F,MACbikC,EAAY3pC,KAAK0F,MAAMikC,UACvBhb,EAAS3uB,KAAKwlB,MACdy6D,EAActxD,EAAOsxD,YACrB3+E,EAAOqtB,EAAOrtB,KACds/E,EAAahD,GAAmB59E,KAAK0F,MAAO84E,IAC5CrkE,EAAW,IAAM4O,SAAS2iC,QAAQ1rD,KAAK0F,MAAMyU,UAC7C0mE,EAAc3zB,GAA2B/yC,GACzC2mE,EAAex6B,GAAgB5gD,EAAOyU,GAC1C,OAAOA,EAASvU,KAAI,SAAUijC,EAAOtlC,GACnC,IAAIw9E,EAAY,KAEhB,GAAIF,EAAYt9E,GAAQ,CAGtB,IAAI0oD,EAAc40B,EAAYt9E,GAAO0oD,YACrC80B,EAAY,CACVz/E,KAAMA,EAAK2qD,IAIf,OAAO,IAAM/iB,aAAaL,EAAO,GAAS,GAAI+3C,EAAY,CACxDj3C,UAAWA,GACVo3C,GAAal4C,EAAM/9B,KAAKjK,WAAagoC,EAAM/9B,KAAKjK,UAAU+nB,OAAS,CACpEkC,IAAK,SAAa4d,GAChB,OAAOwsB,EAAO,SAAW2rB,EAAYt9E,GAAO0oD,aAAevjB,IAE3D,GAAIm4C,EAAYt9E,GAAQ08E,EAAap3C,EAAMnjC,MAAOo7E,EAAav9E,GAAQw9E,SAU9E,CACDhhF,IAAK,wBACLU,MAAO,SAA+BiF,GACpC,IAAIs7E,EAAsBpD,GAAmBl4E,EAAO84E,IAChD3pB,EAAamsB,EAAoBnsB,WACjCC,EAAcksB,EAAoBlsB,YAElCmsB,EAAc,CAAC,QAAS,OAAQ,UAAU/4C,QAAO,SAAUye,EAAKxE,GAClE,IA/PiBrgD,EAAK/B,EAAKU,EA+PvBgZ,EAAiC,aAAzB/T,EAAMy8C,EAAO,QAAyBiJ,GAAgCC,GAClF,OAAO,GAAS,GAAI1E,GAhQOlmD,EAgQkCgZ,GAhQvC1Z,EAgQuBoiD,EAAO,WAhQnCrgD,EAgQwB,IA9P7ClB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,MAqPA,IACH,OAAO,GAAS,CACdk3E,OAAQ,CAAC,EAAGnkB,GACZokB,OAAQ,CAACnkB,EAAa,IACrBmsB,EAAa,CACdC,YxH5RkB,UwH6RlBC,UAAW71B,OAYd,CACDvrD,IAAK,kBACLU,MAAO,SAAyBa,EAAMoE,GACpC,IAAI8/C,EAEA47B,EAAe9/E,EAAKy3B,QAAO,SAAUtnB,GACvC,OAAOA,KAGLowC,GAAW2D,EAAQ,IAAI77C,OAAOrC,MAAMk+C,EAxS9C,SAA4B37B,GAC1B,GAAIlmB,MAAM8E,QAAQohB,GAAM,CACtB,IAAK,IAAInf,EAAI,EAAG21C,EAAO18C,MAAMkmB,EAAIroB,QAASkJ,EAAImf,EAAIroB,OAAQkJ,IACxD21C,EAAK31C,GAAKmf,EAAInf,GAGhB,OAAO21C,EAEP,OAAO18C,MAAM28C,KAAKz2B,GAgS+B,CAAmBu3D,IAE9D3sB,EAAoBz0D,KAAK00D,sBAAsBhvD,GAE/C27E,EAAqB36B,GAAsBhhD,GAC3CivD,EAAiBjP,GAA2BhgD,EAAO,IACnDkvD,EAAoB7O,GAAqB,GAAS,GAAI0O,EAAmB4sB,EAAoB1sB,GAAiB9S,EAAS,IACvH1nC,EAAWsxC,GAAkB/lD,EAAMyU,UACnCmnE,EAAgB,GAChBp9B,EAAW,IAAI51C,IACfo2C,EAAa,IAAIp2C,IAsBrB,OArBA6L,EAAS1Q,SAAQ,SAAUo/B,EAAOtlC,GAC3BslC,GAAUvnC,EAAKiC,IAIpB,GAAWkG,SAAQ,SAAU04C,GAC3B,IAAIo/B,EAAwB14C,EAAM/9B,KAAK02E,gBAAgBr/B,EAAMtZ,EAAMnjC,OAC/DqoE,EAA2BwT,EAAsBxT,yBACjD+I,EAAgByK,EAAsBzK,cAO1C,GALI/I,IACF7pB,EAAS1gD,IAAI2+C,GACbuC,EAAWlhD,IAAID,IAGbuzE,EAAe,CACjB,IAAI2K,EAAkB/7E,EAAMy8C,EAAO,UACnCm/B,EAAcn/B,EAAO,aAAes/B,EAAkBA,EAAgB,GAAK,SAI1E,GAAS,GAAIhtB,EAAmB6sB,EAAe3sB,EAAgBC,EAAmB,CACvFpQ,SAAUljD,EACV2iD,UAAWtgD,MAAM28C,KAAK4D,GACtBE,YAAazgD,MAAM28C,KAAKoE,GACxBqJ,SAAUroD,EAAMs6E,YAUnB,CACDjgF,IAAK,eACLU,MAAO,WACL,IAAIa,EAAOtB,KAAKwlB,MAAMlkB,KACtB,OAAQA,IAASA,EAAKE,SAAWF,EAAKuqD,MAAK,SAAUC,GACnD,OAAOA,GAAUA,EAAOD,MAAK,SAAUp6C,GACrC,OAAOA,UAgEZ,CACD1R,IAAK,yBACLU,MAAO,SAAgCihF,EAAYh8E,GACjD,IAAIi8E,EAAqBD,EAAW3oD,QAAO,SAAUJ,GACnD,OAAOA,IAAMA,EAAE7tB,KAAK20D,aAAe9mC,EAAE7tB,KAAK82E,YAG5C,GAAkC,IAA9BD,EAAmBngF,OACrB,OAAO,KAGT,IAAIqgF,EAAuBF,EAAmB,GAAGj8E,MAC7CyjD,EAAa04B,EAAqB14B,WAClCF,EAAY44B,EAAqB54B,UACjCqW,EAAeuiB,EAAqBviB,aACpCC,EAAcsiB,EAAqBtiB,YACnCzK,EAAc+sB,EAAqB/sB,YACnCD,EAAagtB,EAAqBhtB,WACtC,OAAO,IAAMjrB,cAAc,GAAe,CACxCkrB,YAAaA,EACbD,WAAYA,EACZ1L,WAAYA,EACZF,UAAWA,EACXqW,aAAcA,EACdC,YAAaA,GACZoiB,KAEJ,CACD5hF,IAAK,SACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdC,EAAYyiB,EAAOziB,UACnBw6E,EAAmB/3D,EAAO+3D,iBAC1Bl6E,EAAQmiB,EAAOniB,MACfgpC,EAAQ7mB,EAAO6mB,MACf8X,EAAS3+B,EAAO2+B,OAEpB,IAAKo5B,GAAoBngF,KAAK8hF,eAC5B,OAAO,IAAMl4C,cAAc,MAAO,CAChCjkC,UAAW,cAAgBA,EAC3BM,MAAO,GAAS,CACdgpC,MAAOA,EAAQ,KACf8X,OAAQA,EAAS,MAChB/mD,KAAK0F,MAAMO,SAIlB,IAAIy7E,EAAa1hF,KAAK+hF,4BAEtB,OAAO,IAAMn4C,cAAc,MAAO,CAChC3jC,MAAO,CACLgpC,MAAOA,EAAQ,KACf8X,OAAQA,EAAS,MAEnBphD,UAAW,cAAgBA,GAC1B,IAAMikC,cAAc,MAAO,CAC5BjkC,UAAW,oBACXspC,MAAOA,EACP8X,OAAQA,EACR9gD,MAAOA,EACP0vD,QAAS31D,KAAKgiF,cACd5B,cAAepgF,KAAKiiF,oBACpB/O,YAAalzE,KAAKkiF,kBAClB7O,UAAWrzE,KAAKmiF,gBAChB/O,YAAapzE,KAAKoiF,kBAClB3W,aAAczrE,KAAKqiF,mBACnB7W,aAAcxrE,KAAKsiF,mBACnBtG,aAAch8E,KAAKkiF,kBACnBjG,YAAaj8E,KAAKuiF,kBAClBhP,WAAYvzE,KAAKwiF,iBACjBhP,cAAexzE,KAAKyiF,oBACpBpC,QAASrgF,KAAK0iF,eACbhB,EAAW3oD,QAAO,SAAUJ,GAC7B,OAAOA,GAAKA,EAAE7tB,KAAK20D,gBAChBz/D,KAAK2iF,uBAAuBjB,EAAY1hF,KAAK0F,OAAQg8E,EAAW3oD,QAAO,SAAUJ,GACpF,OAAOA,IAAMA,EAAE7tB,KAAK20D,cAAgB9mC,EAAE7tB,KAAK82E,iBAK1C7B,EA5WI,CA6WX,IAAM92D,WAEJ,GAAmB,WACrB,IAAI0pD,EAAS3yE,KAEbA,KAAKgiF,cAAgB,SAAUj6B,GAC7B,IAAI4N,EAAUgd,EAAOjtE,MAAMiwD,QAEvBA,GACFA,EAAQ5N,IAIZ/nD,KAAKiiF,oBAAsB,SAAUl6B,GACnC,IAAIq4B,EAAgBzN,EAAOjtE,MAAM06E,cAE7BA,GACFA,EAAcr4B,IAIlB/nD,KAAKkiF,kBAAoB,SAAUn6B,GACjC,IAAIgB,EAAU4pB,EAAOjtE,MACjBwtE,EAAcnqB,EAAQmqB,YACtB/4D,EAAW4uC,EAAQ5uC,SAEnB+4D,GACFA,EAAYnrB,GAGO0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUC,mBACzBD,EAAUC,kBAAkB96B,OAKlC/nD,KAAKsiF,mBAAqB,SAAUv6B,GAClC,IAAIkC,EAAU0oB,EAAOjtE,MACjB8lE,EAAevhB,EAAQuhB,aACvBrxD,EAAW8vC,EAAQ9vC,SAEnBqxD,GACFA,EAAazjB,GAGM0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUE,oBACzBF,EAAUE,mBAAmB/6B,OAKnC/nD,KAAKqiF,mBAAqB,SAAUt6B,GAClC,IAAI8C,EAAU8nB,EAAOjtE,MACjB+lE,EAAe5gB,EAAQ4gB,aACvBtxD,EAAW0wC,EAAQ1wC,SAEnBsxD,GACFA,EAAa1jB,GAGM0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUG,oBACzBH,EAAUG,mBAAmBh7B,OAKnC/nD,KAAKoiF,kBAAoB,SAAUr6B,GACjC,IAAImpB,EAAUyB,EAAOjtE,MACjB0tE,EAAclC,EAAQkC,YACtBj5D,EAAW+2D,EAAQ/2D,SAEnBi5D,GACFA,EAAYrrB,GAGO0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAU95B,mBACzB85B,EAAU95B,kBAAkBf,OAKlC/nD,KAAKmiF,gBAAkB,SAAUp6B,GAC/B,IAAI8pB,EAAUc,EAAOjtE,MACjB2tE,EAAYxB,EAAQwB,UACpBl5D,EAAW03D,EAAQ13D,SAEnBk5D,GACFA,EAAUtrB,GAGS0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUI,iBACzBJ,EAAUI,gBAAgBj7B,OAKhC/nD,KAAKyiF,oBAAsB,SAAU16B,GACnC,IAAIyrB,EAAgBb,EAAOjtE,MAAM8tE,cAE7BA,GACFA,EAAczrB,IAIlB/nD,KAAKwiF,iBAAmB,SAAUz6B,GAChC,IAAIwrB,EAAaZ,EAAOjtE,MAAM6tE,WAE1BA,GACFA,EAAWxrB,IAIf/nD,KAAKuiF,kBAAoB,SAAUx6B,GACjC,IAAIoqB,EAAUQ,EAAOjtE,MACjBu2E,EAAc9J,EAAQ8J,YACtB9hE,EAAWg4D,EAAQh4D,SAEnB8hE,GACFA,EAAYl0B,GAGO0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUK,mBACzBL,EAAUK,kBAAkBl7B,OAKlC/nD,KAAKkjF,mBAAqB,SAAUn7B,GAClC,IAAI6qB,EAAUD,EAAOjtE,MACjBs2E,EAAepJ,EAAQoJ,aACvB7hE,EAAWy4D,EAAQz4D,SAEnB6hE,GACFA,EAAaj0B,GAGM0D,GAAkBtxC,GACxB1Q,SAAQ,SAAUo/B,EAAOtlC,GACtC,IAAIq/E,EAAYjQ,EAAO,SAAWpvE,GAE9Bq/E,GAAaA,EAAUO,oBACzBP,EAAUO,mBAAmBp7B,OAKnC/nD,KAAK0iF,cAAgB,SAAU36B,GAC7B,IAAIs4B,EAAU1N,EAAOjtE,MAAM26E,QAEvBA,GACFA,EAAQt4B,KAKd,GAAOle,YAAc,SACN,UCnsBX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAwBLs5D,GAAOF,GAAYE,KACnBC,GAAQH,GAAYG,MACpBF,GAAMD,GAAYC,IAKtB,SAASgjB,GAAS16C,GAChB,IAAIwhC,EAAcxhC,EAAKwhC,YACnBj7B,EAAQvG,EAAKuG,MACb8X,EAASre,EAAKqe,OACd9gD,EAAQyiC,EAAKziC,MACbo9E,OAAY,EAgChB,OA7BEA,EADEnZ,IAAgB7J,GACN,CACVruC,GAAIid,EACJ+f,GAAI/f,EACJhd,GAAI,EACJg9B,GAAIlI,GAEGmjB,IAAgB5J,GACb,CACVtuC,GAAI,EACJg9B,GAAI,EACJ/8B,GAAI,EACJg9B,GAAIlI,GAEGmjB,IAAgB9J,GACb,CACVpuC,GAAI,EACJg9B,GAAI/f,EACJhd,GAAI80B,EACJkI,GAAIlI,GAGM,CACV/0B,GAAI,EACJg9B,GAAI/f,EACJhd,GAAI,EACJg9B,GAAI,GAID,IAAMrlB,cAAc,OAAQ,GAAS,GAAIy5C,EAAW,CACzD19E,UAAW,yBACXM,MAAOA,KAIXm9E,GAASl4B,aA/CU,CACjBjlD,MAAO,IA+CTm9E,GAASv5C,YAAc,WACR,UCvFX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgBtgB,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAGT,SAAS,GAAgBkjB,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAyC5E,IAAI,GAAOi/D,GAAYE,KACnB,GAAQF,GAAYG,MACpB,GAAMH,GAAYC,IAClBG,GAASJ,GAAYI,OAWzB,IAAI,GAAY,SAAUz7C,GAGxB,SAASw+D,IAGP,OAFA,GAAgBtjF,KAAMsjF,GAEf,GAA2BtjF,MAAOsjF,EAAUv3E,WAAanL,OAAOkL,eAAew3E,IAAYh8E,MAAMtH,KAAMiB,YAsKhH,OAhOF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAwC3G,CAAU87D,EAAWx+D,GAQrB,GAAaw+D,EAAW,CAAC,CACvBvjF,IAAK,mBAOLU,MAAO,WACL,IAAIypE,EAAclqE,KAAK0F,MAAMwkE,YAC7B,OAAOA,IAAgB,IAAQA,IAAgB,KAEhD,CACDnqE,IAAK,iCACLU,MAAO,WACL,OAAIT,KAAKujF,kBACA,SAAUhW,GACf,MAAO,CACL1sD,UAAW,gBAAkB0sD,EAAM,MAKlC,SAAUA,GACf,MAAO,CACL1sD,UAAW,aAAe0sD,EAAM,WAUrC,CACDxtE,IAAK,qBACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdwkE,EAAc9hD,EAAO8hD,YACrBsZ,EAAiBp7D,EAAOo7D,eACxBxX,EAAW5jD,EAAO4jD,SAClByX,EAAuBr7D,EAAOs7D,cAC9BA,OAAyCr6E,IAAzBo6E,EAAqCzX,EAAWyX,EAChEE,EAAqBv7D,EAAOw7D,YAC5BA,OAAqCv6E,IAAvBs6E,EAAmC3X,EAAW2X,EAE5D/W,OAAa,EAGfA,EADE1C,IAAgB,IAAQA,IAAgB3J,IAAUijB,EACvC,MACJtZ,IAAgB,IAASA,IAAgB,IAAOsZ,EAC5C,QAEA,SAKf,IAAIrW,EAAantE,KAAKujF,kBAGlBM,GADO7jF,KAAK8jF,oBAAsB,EAAI,IAChBJ,EAAgBE,GAK1C,MAAO,CACLhX,WAAYA,EACZp6C,GAHO03C,IAAgB,IAAOsZ,EAAiB,IAAMtZ,IAAgB3J,GAAS,SAAW,SAIzF1/C,WAPessD,EAAa,aAAe0W,EAAc,OAAS,gBAAkBA,EAAc,MAAQL,EAAiB,WAAaA,EAAiB,IAAM,OAgBlK,CACDzjF,IAAK,oBACLU,MAAO,WACL,IAAIioC,EAEAqgB,EAAU/oD,KAAK0F,MACfsmE,EAAWjjB,EAAQijB,SACnB+X,EAAwBh7B,EAAQ26B,cAChCA,OAA0Cr6E,IAA1B06E,EAAsC/X,EAAW+X,EACjEC,EAAwBj7B,EAAQk7B,cAChCA,OAA0C56E,IAA1B26E,EAAsChY,EAAWgY,EAEjE7W,EAAantE,KAAKujF,kBAElBnW,EAAYD,EAAa,IAAM,IAC/BE,EAAYF,EAAa,IAAM,IAC/B+W,EAAOlkF,KAAK8jF,oBAAsB,EAAI,EAC1C,OAAkB,GAAXp7C,EAAO,GAA0B0kC,EAAY,IAAK,GAAI,GAAgB1kC,EAAM0kC,EAAY,IAAK,GAAI,GAAgB1kC,EAAM2kC,EAAY,KAAM6W,EAAOD,GAAgB,GAAgBv7C,EAAM2kC,EAAY,IAAK6W,EAAOR,GAAgBh7C,IAQtO,CACD3oC,IAAK,kBACLU,MAAO,WACL,IAAIypE,EAAclqE,KAAK0F,MAAMwkE,YAC7B,OAAOA,IAAgB,IAAQA,IAAgB,KAEhD,CACDnqE,IAAK,SACLU,MAAO,WACL,IAAIwpD,EAAUjqD,KAAK0F,MACfy8C,EAAO8H,EAAQ9H,KACf+nB,EAAcjgB,EAAQigB,YACtBj7B,EAAQgb,EAAQhb,MAChB8X,EAASkD,EAAQlD,OACjB9gD,EAAQgkD,EAAQhkD,MAChB8rC,EAAakY,EAAQlY,WACrB8uB,EAAY5W,EAAQ4W,UACpBC,EAAa7W,EAAQ6W,WACrB72D,EAAIigE,IAAgB,GAAOj7B,EAAQ,EACnCpb,EAAIq2C,IAAgB,GAAMnjB,EAAS,EACnC3Z,EAAQ6X,GAAkBjlD,KAAK0F,MAAOy8C,GACtC7+C,EAASs9D,GAAcxzB,EAAOyzB,EAAWC,GAEzCqjB,EA9IV,SAA0B/2C,EAAOyzB,EAAW9uB,GAC1C,OAAQA,IAAa3E,EAAM2E,WAAa3E,EAAM2E,WAAW8uB,GAAa,SAAUrhD,GAC9E,OAAOA,IA4Ic4kE,CAAiBh3C,EAAOyzB,EAAW9uB,GAElDsyC,EAAcrkF,KAAKskF,iCAEnB9W,EAAYxtE,KAAKukF,oBAEjB5X,EAAY3sE,KAAKwkF,qBAEjBz5C,EAAQznC,EAAOsC,KAAI,SAAU4Z,EAAG9U,GAClC,IAAI6iE,EAAMngC,EAAM5tB,GACZilE,EAAYN,EAAa3kE,EAAG9U,EAAG0iC,EAAOyzB,GACtC6jB,EAAwB,IAAMC,eAAeF,KAAe,CAAC,QAAS,YAAYG,SAASH,EAAU35E,MACrG+5E,EAAiBJ,GAAuC,iBAAnBA,EAAU35E,KACnD,OAAO,IAAM8+B,cAAc,IAAK,GAAS,CACvC7pC,IAAK2K,GACJ25E,EAAY9W,EAAK,GAAI,CACtB5nE,UAAW,yBACXM,MAAOA,IACL,IAAM2jC,cAAc,OAAQ,GAAS,GAAI4jC,EAAW,CACtD7nE,UAAW,+BACXM,MAAO,GAAS,GAAIA,EAAOA,EAAM4wD,SAC9B6tB,EAAwB,IAAMx7C,aAAau7C,EAAWI,EAAiB,GAAS,GAAIlY,EAAW,CAClGmY,eAAgB71C,EAChB81C,UAAWzhF,EAAO9B,cACf6H,GAAa,IAAMugC,cAAc,OAAQ,GAAS,GAAI+iC,EAAW,CACpEhnE,UAAW,+BACXM,MAAO,GAAS,GAAIA,EAAOA,EAAM45D,QAC/B4kB,OAEN,OAAO,IAAM76C,cAAc,IAAK,CAC9B/oB,UAAW,aAAe5W,EAAI,KAAO4pB,EAAI,IACzCluB,UAAW,2BACVolC,OAIAu4C,EA5KO,CA6Kd,IAAMr6D,WAER,GAAUiiC,aAzLS,CACjBjlD,MAAO,IAyLT,GAAU4jC,YAAc,YACxB,GAAU41B,aAAc,EACT,UCnSX,GAAW7+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAgBjF,EAAK/B,EAAKU,GAYjC,OAXIV,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,EAyBT,IAEI,GAAOq+D,GAAYE,KACnB,GAAQF,GAAYG,MACpB,GAAMH,GAAYC,IAClB,GAASD,GAAYI,OA6FzB,SAASykB,GAAUx/B,GACjB,IAAI0kB,EAAc1kB,EAAM0kB,YACpBtjE,EAAW4+C,EAAM5+C,SACjBqoC,EAAQuW,EAAMvW,MACd8X,EAASvB,EAAMuB,OACf9gD,EAAQu/C,EAAMv/C,MACdwjE,EAAQjkB,EAAMikB,MAGdwb,EAAsB,cAFC/a,IAAgB,GAAOj7B,EAAQ,GAEM,MADrCi7B,IAAgB,GAAMnjB,EAAS,GACoC,IAC1Fm+B,EA5Fe,SAAwBj2C,EAAO8X,GAClD,IAAIre,EAEJ,OAAkB,GAAXA,EAAO,GAA0B,GAAM,CAC5CjzB,IAAK,CACHxL,EArByB,GAsBzB4pB,EArBO,EAsBPklD,UAAW,GACXnM,WAAY,OAEduY,OAAQ,CACNl7E,EA3ByB,GA4BzB4pB,EAAGkzB,EAAS,EA3BL,EA4BPgyB,UAAW,GACXnM,WAAY,UAEdp3D,MAAO,CACLvL,EAjCyB,GAkCzB4pB,EAAGkzB,EAjCI,EAkCPgyB,UAAW,GACXnM,WAAY,WAEZ,GAAgBlkC,EAAM,GAAO,CAC/BjzB,IAAK,CACHxL,GAAGm7E,EACHvxD,EAxCO,EAyCPklD,UAAW,GACXnM,WAAY,OAEduY,OAAQ,CACNl7E,GAAGm7E,EACHvxD,EAAGkzB,EAAS,EA9CL,EA+CPgyB,UAAW,GACXnM,WAAY,UAEdp3D,MAAO,CACLvL,GAAGm7E,EACHvxD,EAAGkzB,EApDI,EAqDPgyB,UAAW,GACXnM,WAAY,WAEZ,GAAgBlkC,EAAM,GAAK,CAC7BlzB,MAAO,CACLvL,EA1DO,EA2DP4pB,EA5DyB,GA6DzBklD,SAAU,EACVnM,WAAY,SAEduY,OAAQ,CACNl7E,EAAGglC,EAAQ,EAhEJ,EAiEPpb,EAlEyB,GAmEzBklD,SAAU,EACVnM,WAAY,UAEdn3D,IAAK,CACHxL,EAAGglC,EAtEI,EAuEPpb,EAxEyB,GAyEzBklD,SAAU,EACVnM,WAAY,SAEZ,GAAgBlkC,EAAM,GAAQ,CAChClzB,MAAO,CACLvL,EA7EO,EA8EP4pB,GA9EO,EA+EPklD,SAAU,EACVnM,WAAY,SAEduY,OAAQ,CACNl7E,EAAGglC,EAAQ,EAnFJ,EAoFPpb,GApFO,EAqFPklD,SAAU,EACVnM,WAAY,UAEdn3D,IAAK,CACHxL,EAAGglC,EAzFI,EA0FPpb,GA1FO,EA2FPklD,SAAU,EACVnM,WAAY,SAEZlkC,EAawB28C,CAAep2C,EAAO8X,GAAQmjB,GAAatjE,GACnEqD,EAAIi7E,EAAsBj7E,EAC1B4pB,EAAIqxD,EAAsBrxD,EAC1BklD,EAAWmM,EAAsBnM,SACjCnM,EAAasY,EAAsBtY,WACnC0Y,EAAsB,aAAer7E,EAAI,KAAO4pB,EAAI,YAAcklD,EAAW,IACjF,OAAO,IAAMnvC,cAAc,IAAK,CAC9B/oB,UAAWokE,EACXt/E,UAAW,2BACV,IAAMikC,cAAc,IAAK,CAC1B3jC,MAAO,GAAS,CACd2mE,WAAYA,GACX3mE,GACH4a,UAAWykE,GACV,IAAM17C,cAAc,OAAQ,CAC7B3jC,MAAOA,GACNwjE,KAGLub,GAAUn7C,YAAc,YACxBm7C,GAAU95B,aA1HS,CACjBtkD,SAAU,OA0HG,UCpLX,GAAWhG,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA6C5E,IAAIqkF,GAAuB,CAAC,SAAU,SAAU,UAAW,UAAW,QAAS,SAAU,aAAc,YAAa,cAAe,eAAgB,WAAY,YAAa,gBAAiB,iBACzL,GAAOplB,GAAYE,KACnB,GAAQF,GAAYG,MACpB,GAAMH,GAAYC,IAClB,GAASD,GAAYI,OACrB,GAAe,CACjB56D,UAAW,GACX6/E,KAAK,EACLv/E,MAAO,GACP+lE,SAAU,EACV4X,YAAa,EACb1Z,YAAa,IAMX,GAAO,SAAU9hC,GAGnB,SAASq9C,IAGP,OAFA,GAAgBzlF,KAAMylF,GAEf,GAA2BzlF,MAAOylF,EAAK15E,WAAanL,OAAOkL,eAAe25E,IAAOn+E,MAAMtH,KAAMiB,YA4HtG,OA7LF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA+C3G,CAAUi+D,EAAMr9C,GAQhB,GAAaq9C,EAAM,CAAC,CAClB1lF,IAAK,uBAOLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdmvD,EAAazsC,EAAOysC,WACpBC,EAAc1sC,EAAO0sC,YACrB7L,EAAY7gC,EAAO6gC,UACnBqW,EAAel3C,EAAOk3C,aACtBnW,EAAa/gC,EAAO+gC,WACpBoW,EAAcn3C,EAAOm3C,YACrB2K,EAAc9hD,EAAO8hD,YAEzB,OAAIA,IAAgB,GACX,CACLrJ,UAAWF,GAAsB9L,GACjC9K,IAAK+K,EAAc7L,EACnB/3B,KAAMi4B,EACNla,MAAO4lB,EACP9N,OAAQuY,GAED4K,IAAgB,GAClB,CACLrJ,UAAWF,GAAsB9L,GACjC9K,IAAK,EACL74B,KAAMi4B,EACNla,MAAO4lB,EACP9N,OAAQkC,GAEDihB,IAAgB,GAClB,CACLrJ,UAAWF,GAAsB7L,GACjC/K,IAAKd,EACL/3B,KAAM,EACN+d,MAAOka,EACPpC,OAAQ+N,GAIL,CACL+L,UAAWF,GAAsB7L,GACjC/K,IAAKd,EACL/3B,KAAMi4B,EAAa0L,EACnB5lB,MAAOswB,EACPxY,OAAQ+N,KAGX,CACD/0D,IAAK,SACLU,MAAO,WACL,IAAIkpC,EAAY3pC,KAAK0F,MAAMikC,UAE3B,GAAIA,EAAW,CACb,IAAI7B,EAAgB6B,EAAUhC,iBAAmB49C,GAAqBxsD,QAAO,SAAU6tB,GACrF,OAAOjd,EAAUhC,iBAAiBK,QAAQ4e,GAAQ,KAC/C2+B,GACL,OAAO,IAAM37C,cAAc,GAAW,GAAS,GAAI5pC,KAAK0F,MAAO,CAC7DoiC,cAAeA,IACb,IAAM8B,cAAc67C,EAAM,GAAS,GAAIzlF,KAAK0F,MAAO,CACrDikC,UAAW,SAIf,IAAIjkC,EAAQ,GAAS,GAAI1F,KAAK0lF,uBAAwB1lF,KAAK0F,OAEvDigF,EAAWjgF,EAAMigF,SACjBhgF,EAAYD,EAAMC,UAClBohD,EAASrhD,EAAMqhD,OACf6+B,EAAWlgF,EAAMkgF,SACjBC,EAAYngF,EAAMmgF,UAClB30D,EAAOxrB,EAAMwrB,KACb+3B,EAAYvjD,EAAMujD,UAClBu8B,EAAM9/E,EAAM8/E,IACZtb,EAAcxkE,EAAMwkE,YACpBtjE,EAAWlB,EAAMkB,SACjBX,EAAQP,EAAMO,MACdwjE,EAAQ/jE,EAAM+jE,MACd1f,EAAMrkD,EAAMqkD,IACZ9a,EAAQvpC,EAAMupC,MACdk+B,EAAa,CAAC,GAAM,IAAOnlC,QAAQkiC,IAAgB,EACnD4b,EAAgB3Y,EAjGA,6BACE,+BAiGlB6F,EAAU9hD,EACV+hD,EAASlpB,EAEb,GAAIy7B,EAAK,CACP,IAAIp4C,EAAQ6X,GAAkBv/C,EAAOigF,GAEjCxY,EACF6F,EAAU5lC,EAAM,GAEhB6lC,EAAShqB,EAAY7b,EAAM,GAI/B,OAAO,IAAMxD,cAAc,IAAK,CAC9B/oB,UAAW,aAAemyD,EAAU,IAAMC,EAAS,IACnDttE,UAAW,oBAA4BmgF,EAAgB,IAAMngF,EAC7DM,MAAOA,IACL2/E,GAAY,IAAMh8C,cAAc,GAAU,CAC5Cmd,OAAQA,EACR9X,MAAOA,EACPi7B,YAAaA,EACbjkE,MAAO,GAAS,GAAIA,EAAOA,EAAM4wD,SAC9BgvB,GAAa,IAAMj8C,cAAc,GAAW,GAAS,GAAIlkC,EAAO,CACnEO,MAAO,GAAS,GAAIA,EAAOA,EAAM8kC,UAC9B0+B,EAAQ,IAAM7/B,cAAc,GAAW,CAC1ChjC,SAAUA,EACV6iE,MAAOA,EACP1iB,OAAQA,EACR9X,MAAOA,EACPhpC,MAAO,GAAS,GAAIA,EAAOA,EAAMwjE,OACjCS,YAAaA,IACV,UAIFub,EAlIE,CAmIT,iBAEF,GAAK57C,YAAc,OACnB,GAAKqhB,aAAe,GACpB,GAAKuU,aAAc,EACJ,UC1NX,GAAe,CACjByK,YAFW/J,GAAYI,OAGvBpe,KAAM,IACNwjC,SAAU,KAGZ,SAASI,GAAMrgF,GACb,OAAO,IAAMkkC,cAAc,GAAMlkC,GAGnCqgF,GAAMl8C,YAAc,QACpBk8C,GAAM76B,aAAe,GACrB66B,GAAMtmB,aAAc,EACL,UCbX,GAAe,CACjByK,YAFS/J,GAAYE,KAGrBle,KAAM,IACNwjC,SAAU,KAGZ,SAASK,GAAMtgF,GACb,OAAO,IAAMkkC,cAAc,GAAMlkC,GAGnCsgF,GAAMn8C,YAAc,QACpBm8C,GAAM96B,aAAe,GACrB86B,GAAMvmB,aAAc,EACL,UCfX,GAAe,CACjB95D,UAAW,GACXsgF,WAAY56B,GAAuB,GACnC66B,SAAU76B,GAAuB,IAGnC,SAAS86B,GAAsBz9C,GAC7B,IAAIu9C,EAAav9C,EAAKu9C,WAClBG,EAAW19C,EAAK09C,SAChBF,EAAWx9C,EAAKw9C,SAChBG,EAAa39C,EAAK29C,WAClBC,EAAW59C,EAAK49C,SAChBC,EAAW79C,EAAK69C,SAChBx/B,EAASre,EAAKqe,OACd9X,EAAQvG,EAAKuG,MACbtpC,EAAY+iC,EAAK/iC,UACjB+gC,EAAS,CAACu/C,GAOd,OALIG,GACF1/C,EAAOhlC,KAAK0kF,GAGd1/C,EAAOhlC,KAAKwkF,GACL,IAAMt8C,cAAc,MAAO,CAChCjkC,UAAW,8BAAgCA,EAC3CM,MAAO,CACLgpC,MAAOA,EACP8X,OAAQA,IAET,IAAMnd,cAAc,MAAO,CAC5BjkC,UAAW,cACXM,MAAO,CACLogD,WAAY,6BAA+B3f,EAAOzrB,KAAK,KAAO,OAE9D,IAAM2uB,cAAc,MAAO,CAC7BjkC,UAAW,oBACV,IAAMikC,cAAc,OAAQ,CAC7BjkC,UAAW,0BACV0gF,GAAa,IAAMz8C,cAAc,OAAQ,CAC1CjkC,UAAW,2BACV4gF,GAAWD,EAAW,IAAM18C,cAAc,OAAQ,CACnDjkC,UAAW,4BACV2gF,GAAY,OAGjBH,GAAsBt8C,YAAc,wBACpCs8C,GAAsBj7B,aAAe,GCxCrC,SAASs7B,GAAqB99C,GAY5B,IAXA,IAAI29C,EAAa39C,EAAK29C,WAClBE,EAAW79C,EAAK69C,SAChBE,EAAY/9C,EAAK+9C,UACjBC,EAAUh+C,EAAKg+C,QACfC,EAAej+C,EAAKi+C,aACpB5/B,EAASre,EAAKqe,OACd9X,EAAQvG,EAAKuG,MACbtpC,EAAY+iC,EAAK/iC,UACjBihF,EAAU,GACVlxE,GAAQgxE,EAAUD,IAAcE,EAAe,GAE1Cj8E,EAAI,EAAGA,EAAIi8E,EAAcj8E,IAAK,CACrC,IAAI/I,EAAO+T,EAAOhL,EAAI+7E,EACtBG,EAAQllF,KAAK,IAAMkoC,cAAc,MAAO,CACtC7pC,IAAK2K,EACL/E,UAAW,YACXM,MAAO,CACLgpC,MAAOttC,EACPolD,OAAQplD,EACRklF,aAAcllF,EAAO,MAKzBilF,EAAQllF,KAAK,KAGf,OAAO,IAAMkoC,cAAc,MAAO,CAChCjkC,UAAW,6BAA+BA,EAC1CM,MAAO,CACLgpC,MAAOA,EACP8X,OAAQA,IAET,IAAMnd,cAAc,MAAO,CAC5BjkC,UAAW,aACXM,MAAO,CACL8gD,OAAQ2/B,IAETE,EAAS,IAAMh9C,cAAc,MAAO,CACrCjkC,UAAW,eACR,IAAMikC,cAAc,MAAO,CAC9BjkC,UAAW,oBACV,IAAMikC,cAAc,OAAQ,CAC7BjkC,UAAW,0BACV0gF,GAAa,IAAMz8C,cAAc,OAAQ,CAC1CjkC,UAAW,2BACV4gF,KAGLC,GAAqB38C,YAAc,uBACnC28C,GAAqBt7B,aA1DF,CACjBy7B,aAAc,GACdhhF,UAAW,GACX+gF,QAAS,GACTD,UAAW,GAuDE,IC/EX,GAAW7lF,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAuBL,GAAgB,CAClB6yE,OAAQ,OACRC,MAAO,MAGT,SAASiN,GAAwBp+C,GAC/B,IAAIxiC,EAAQwiC,EAAKxiC,MACb6zE,EAAkBrxC,EAAKqxC,gBACvBnC,EAAclvC,EAAKkvC,YACnB7K,EAAcrkC,EAAKqkC,YACnBga,EAAWr+C,EAAKq+C,SAChBpxB,EAAUjtB,EAAKitB,QACfuU,EAAcxhC,EAAKwhC,YACnBsB,EAAe9iC,EAAK8iC,aACpBC,EAAe/iC,EAAK+iC,aACpBhC,EAAQ/gC,EAAK+gC,MACb9jE,EAAY,iCAAmCukE,EAE/C6c,IACFphF,GAAa,aAGXgwD,IACFhwD,GAAa,cAGf,IAAIqhF,EAAuB,GAAcpP,IAAgBmC,EACzD,OAAO,IAAMnwC,cAAc,MAAO,CAChCjkC,UAAWA,EACXgwD,QAASA,EACT6V,aAAcA,EACdC,aAAcA,GACb,IAAM7hC,cAAc,MAAO,CAC5BjkC,UAAW,uCACXohD,OAAQ,EACR9X,MAAO,IACN,IAAMrF,cAAc,OAAQ,CAC7BjkC,UAAW,6CACX8L,EAAG,iBACHxL,MAAO,GAAS,GAAI8mE,EAAc,CAChCA,YAAaA,GACX,GAAIia,EAAuB,CAC7BjN,gBAAiBiN,GACf,GAAI,CACNz1E,OAAQw1E,EAAW,KAAO7gF,OAEzB,IAAM0jC,cAAc,OAAQ,CAC/BjkC,UAAW,wCACV8jE,IAGLqd,GAAwB57B,aAAe,CACrC67B,UAAU,EACVnP,YAAa,SAEfkP,GAAwBj9C,YAAc,0BACvB,UC1FX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GA0BT,SAASkgF,GAAoBv+C,GAC3B,IAAI/iC,EAAY+iC,EAAK/iC,UACjB+gC,EAASgC,EAAKhC,OACdqgB,EAASre,EAAKqe,OACd6iB,EAAQlhC,EAAKkhC,MACbsd,EAAcx+C,EAAKw+C,YACnBC,EAAmBz+C,EAAKy+C,iBACxBC,EAAmB1+C,EAAK0+C,iBACxBld,EAAcxhC,EAAKwhC,YACnBjkE,EAAQyiC,EAAKziC,MACbgpC,EAAQvG,EAAKuG,MACjB,OAAO,IAAMrF,cAAc,MAAO,CAChCjkC,UAAW,4BAA8BukE,EAAc,IAAMvkE,EAC7DM,MAAO,GAAS,CACdgpC,MAAOA,EACP8X,OAAQA,GACP9gD,IACF2jE,EAAMhkE,KAAI,SAAU6kD,EAAM//C,GAC3B,OAAO,IAAMk/B,cAAc,GAAyB,CAClD6/B,MAAOhf,EAAKgf,MAAQhf,EAAKgf,MAAQhf,EACjCvkD,MAAOukD,EAAKvkD,MAAQukD,EAAKvkD,MAAQwgC,EAAOh8B,EAAIg8B,EAAOllC,QACnDu4E,gBAAiBtvB,EAAKsvB,gBACtBnC,YAAantB,EAAKmtB,YAClB7K,YAAatiB,EAAKsiB,YAClBga,SAAUt6E,QAAQg+C,EAAKs8B,UACvB7c,YAAaA,EACbnqE,IAAK2K,EACLirD,QAASuxB,EAAc,SAAU9hF,GAC/B,OAAO8hF,EAAYz8B,EAAM//C,EAAGtF,IAC1B,KACJomE,aAAc2b,EAAmB,SAAU/hF,GACzC,OAAO+hF,EAAiB18B,EAAM//C,EAAGtF,IAC/B,KACJqmE,aAAc0b,EAAmB,SAAU/hF,GACzC,OAAOgiF,EAAiB38B,EAAM//C,EAAGtF,IAC/B,WAKV6hF,GAAoBp9C,YAAc,0BAClCo9C,GAAoB/7B,aAAe,CACjCvlD,UAAW,GACX+gC,OAAQykB,GACR+e,YAAa,YAEA,UC9DX,GAAe,CACjBvkE,UAAW,GACX0hF,WAAY,GACZC,SAAU,SAAkB1d,EAAOthD,GACjC,OAAOshD,EAAM7wC,QAAO,SAAU0xB,GAC5B,OAAgE,IAAzDj8C,OAAOi8C,EAAKgf,OAAShf,GAAMrmB,cAAc4D,QAAQ1f,QAK9D,SAASi/D,GAA8B7hF,GACrC,IAAIC,EAAYD,EAAMC,UAClB+gC,EAAShhC,EAAMghC,OACfqgB,EAASrhD,EAAMqhD,OACf6iB,EAAQlkE,EAAMkkE,MACdsd,EAAcxhF,EAAMwhF,YACpBM,EAAiB9hF,EAAM8hF,eACvBtd,EAAcxkE,EAAMwkE,YACpBod,EAAW5hF,EAAM4hF,SACjBG,EAAoB/hF,EAAM+hF,kBAC1BJ,EAAa3hF,EAAM2hF,WACnBp4C,EAAQvpC,EAAMupC,MACdy4C,EAAWF,EAAiB,SAAU9+C,GACxC,IAAIjoC,EAAQioC,EAAK3hC,OAAOtG,MACxB,OAAO+mF,EAAe/mF,IACpB,KACAknF,EAAgBL,EAAS1d,EAAOyd,GACpC,OAAO,IAAMz9C,cAAc,MAAO,CAChCjkC,UAAW,qBAAuBA,EAClCM,MAAO,CACLgpC,MAAOA,EACP8X,OAAQA,IAET,IAAMnd,cAAc,OAAQ,CAC7BjkC,UAAW,2BACV,IAAMikC,cAAc,QAAS,CAC9B9+B,KAAM,SACN88E,YAAaH,EACb9hF,UAAW,iCACXlF,MAAO4mF,EACPK,SAAUA,KACP,IAAM99C,cAAc,MAAO,CAC9BjkC,UAAW,+BACV,IAAMikC,cAAc,GAAqB,CAC1ClD,OAAQA,EACRkjC,MAAO+d,EACPT,YAAaA,EACbhd,YAAaA,MAIjBqd,GAA8Br8B,aAAe,GAC7Cq8B,GAA8B19C,YAAc,gCAC7B,ICxEX,GAAe,WACjB,SAASt/B,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAkBT,SAAS,GAAgBie,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EAkD5E,IACI,GAAiB,GAAO,OAkD5B,SAAS2mF,GAAUniF,GACjB,IAAIoiF,EAAUpiF,EAAMoiF,QAChB7hF,EAAQP,EAAMO,MAClB,OAAO6hF,EAAQliF,KAAI,SAAUsnC,EAAQ3pC,GACnC,MAAO,CACL0G,EAAGijC,EAAOvmC,KACVktB,EAAG,IACH6lD,MAAOxsC,EAAOvmC,KACdV,MAAOA,MAqEb,IAAI,GAAsB,SAAU64E,GAGlC,SAASiJ,IACP,IAAIviC,EAEAmC,EAAO5iC,EAEX,GAAgB/kB,KAAM+nF,GAEtB,IAAK,IAAIngC,EAAO3mD,UAAUO,OAAQ0C,EAAOP,MAAMikD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E3jD,EAAK2jD,GAAQ5mD,UAAU4mD,GAGzB,OAAeF,EAAS5iC,EAAQ,GAA2B/kB,MAAOwlD,EAAQuiC,EAAoBh8E,WAAanL,OAAOkL,eAAei8E,IAAsB7mF,KAAKoG,MAAMk+C,EAAO,CAACxlD,MAAM2J,OAAOzF,KAAiB6gB,EAAMS,MAAQ,CACpNwiE,aAAc,IACL,GAA2BjjE,EAAnC4iC,GAyFL,OAxRF,SAAmBpgC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAmK3G,CAAUugE,EAAqBjJ,GAkB/B,GAAaiJ,EAAqB,CAAC,CACjChoF,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAETgoF,EAAehoF,KAAKwlB,MAAMwiE,aAC1B5/D,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnBwmC,EAAW/nD,EAAO+nD,SAClBxqE,EAAYyiB,EAAOziB,UACnBwU,EAAWiO,EAAOjO,SAClB+tD,EAAa9/C,EAAO8/C,WACpB5mE,EAAO8mB,EAAO9mB,KACdwmF,EAAU1/D,EAAO0/D,QACjB/gC,EAAS3+B,EAAO2+B,OAChBkhC,EAAsB7/D,EAAO6/D,oBAC7BnK,EAAS11D,EAAO01D,OAChBrS,EAAerjD,EAAOqjD,aACtBD,EAAepjD,EAAOojD,aACtB0c,EAAY9/D,EAAO8/D,UACnBjiF,EAAQmiB,EAAOniB,MACf8rC,EAAa3pB,EAAO2pB,WACpB9C,EAAQ7mB,EAAO6mB,MACfk5C,EA9JV,SAAiBziF,GACf,IAAIikC,EAAYjkC,EAAMikC,UAClBm+C,EAAUpiF,EAAMoiF,QAChB7hF,EAAQP,EAAMO,MACd8rC,EAAarsC,EAAMqsC,WACvB,OAAO+1C,EAAQliF,KAAI,SAAUsnC,EAAQ3pC,GACnC,IAAI6kF,EAAel7C,EAAOA,OAM1B,OAAO,IAAMtD,cAAc,GAAgB,CACzCD,UAAWA,EACX5pC,IAAKwD,EAAQ,QACbsoE,UAAW,CACT5hE,EAAGijC,EAAOvmC,KACVktB,EAAG,GAELi4C,QAAS,CACP7hE,EAAGijC,EAAOvmC,KACVktB,EAAG,GAEL83C,WAAYyc,EACZxc,cAAe,EACfG,UAjBqB,SAA0B5lC,GAC/C,OAAO+G,EAAO6E,WAAa7E,EAAO6E,WAAW5L,GAAK4L,EAAW5L,IAiB7DlgC,MAAOA,EAAMkiF,UAoIFE,CAAQ,CACjBP,QAASA,EACTn+C,UAAWA,EACXs+C,oBAAqBA,EACrBhiF,MAAOA,EACP8rC,WAAYA,IAEVu2C,EAtGV,SAAkB5iF,GAChB,IAAIikC,EAAYjkC,EAAMikC,UAClBq+C,EAAetiF,EAAMsiF,aACrB9f,EAAaxiE,EAAMwiE,WACnB4f,EAAUpiF,EAAMoiF,QAChBxmF,EAAOoE,EAAMpE,KACb2E,EAAQP,EAAMO,MACdiiF,EAAYxiF,EAAMwiF,UAClBxS,EAASoS,EAAQ5/C,QAAO,SAAUye,EAAKje,GACzC,IAAIwE,EAASxE,EAAKwE,OAGlB,OADAyZ,EADWje,EAAK/hC,MACJ,KAAcumC,OAAOA,GAAQzzB,MAAM,CAAC,EAAG,IAC5CktC,IACN,IAEH,OAAOrlD,EAAKsE,KAAI,SAAUojC,EAAKu/C,GAC7B,IAAIC,GAAsB,EACtBC,EAAaX,EAAQliF,KAAI,SAAUsnC,EAAQ3pC,GAC7C,IAAIuO,EAAWo7B,EAAOp7B,SAClBnL,EAAOumC,EAAOvmC,KAGd2yE,EAAO5D,EAAO/uE,GAAMmL,EAAWA,EAASk3B,GAAOA,EAAIriC,IACnDoyB,EAASivD,EAAarhF,GAM1B,OAJIoyB,IAAWugD,EAAOvgD,EAAOgM,KAAOu0C,EAAOvgD,EAAOvgB,OAChDgwE,GAAsB,GAGjB,CACLv+E,EAAGtD,EACHktB,EAAGylD,MAKH+J,EAAY,CACd15C,UAAWA,EACXhkC,UAAW6iF,EAJM,qCACEE,mFAInB3oF,IAAKwoF,EAAW,WAChBjnF,KAAMmnF,EACNviF,MAAO8iC,EAAI9iC,OAASgiE,EAAWqgB,EAAWrgB,EAAW1mE,QACrDyE,MAAO,GAAS,GAAIA,EAAMqiF,MAAOt/C,EAAI/iC,OAAS,KAOhD,OAJKuiF,IACHnF,EAAUp9E,MAAQ,GAAS,GAAIo9E,EAAUp9E,MAAOA,EAAM0iF,sBAGjDT,EAAY,IAAMt+C,cAAc,GAAgBy5C,GAAa,IAAMz5C,cAAc,GAAYy5C,MAqDtFuF,CAAS,CACnBj/C,UAAWA,EACXq+C,aAAcA,EACd9f,WAAYA,EACZ4f,QAASA,EACTxmF,KAAMA,EACN4mF,UAAWA,EACXjiF,MAAOA,IAEL4iF,EAAc,IAAMj/C,cAAc,GAAa,CACjDD,WAAW,EACX5pC,IAAK4F,EACLA,UAAW,sCACXrE,KAAMumF,GAAU,CACdC,QAASA,EACT7hF,MAAOA,EAAM6iF,WAIb9H,EAAsBpD,GAAmB59E,KAAK0F,MAAO84E,IACrDr1B,EAAa63B,EAAoB73B,WACjCoW,EAAcyhB,EAAoBzhB,YAEtC,OAAO,IAAM31B,cAAc,GAAQ,CACjCmd,OAAQA,EACR9X,MAAOA,EACP6uC,OAAQA,EACRqC,kBAAkB,EAClBx6E,UAAWA,mCACX8lE,aAAcA,EACdD,aAAcA,EACdud,MAAO,UACPC,QAAS,CAAC,EAAG,IACZ7uE,EAAUguE,EAAKx+E,OAAO2+E,GAAO3+E,OAAOk/E,GAAc1Y,GAAY2X,EAAQliF,KAAI,SAAU6L,GACrF,IAAIw3E,EAAU,SAAiBjgD,GA/RvC,IAAyBlnC,EAAK/B,EAAKU,EAgSzBy0D,EAAOnvC,SAAS,CACdiiE,aAAc,GAAS,GAAIA,GAjSdlmF,EAiS4C,GAjSvC/B,EAiS2C0R,EAAE9K,KAjSxClG,EAiS8CuoC,EAAM,CACzEjE,IAAKiE,EAAI01B,OACTlmD,IAAKwwB,EAAI+gB,KACP,KAnSVhqD,KAAO+B,EACTlB,OAAOiJ,eAAe/H,EAAK/B,EAAK,CAC9BU,MAAOA,EACPuJ,YAAY,EACZK,cAAc,EACdC,UAAU,IAGZxI,EAAI/B,GAAOU,EAGNqB,OA4RD,OAAO,IAAM8nC,cAAc,GAAW,CACpC7pC,IAAK0R,EAAE9K,KACP0qE,MAAM,EACNwB,WAAYphE,EAAE9K,KACdmrE,WAAYmX,EACZlX,UAAWkX,EACXxY,gBAAiBxhC,EAAQka,EAAaoW,GAAeuoB,EAAQtmF,OAC7D+uE,SAAS,YAMVwX,EAzGiB,CA0GxB,aAEF,GAAoBl+C,YAAc,sBAClC,GAAoBqhB,aAAe,CACjCvlD,UAAW,GACXujF,UAAW,WACXhhB,WAAY/c,GACZllD,MAAO,CACLkiF,KAAM,CACJtxB,KAAM,GACN9rB,MAAO,GACP80B,KAAM,IAERipB,OAAQ,CACNK,SAAU,GACVvc,WAAY,UAEd0b,MAAO,CACLvb,YAAa,EACbqc,cAAe,GAEjBT,oBAAqB,CACnBS,cAAe,KAGnBr3C,WAAY,IAEC,ICjXX,GAAWnxC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAkCL,GAAiB,GAAO,OA0D5B,SAASsiF,GAAcC,GAerB,OAZI17E,KAAKkS,IAAIwpE,IAFC,MAGZA,EAAe,EACNA,EAAe,EACpB17E,KAAKkS,IAAIwpE,EAAe,KALhB,QAMVA,EAAe,IAERA,EAAe,GACpB17E,KAAKkS,IAAIwpE,EAAe,KAThB,QAUVA,GAAgB,IAIbA,EAYT,SAAS,GAAU5jF,GACjB,IAAIoiF,EAAUpiF,EAAMoiF,QAChByB,EAAgB7jF,EAAM6jF,cACtBtjF,EAAQP,EAAMO,MAClB,OAAO6hF,EAAQliF,KAAI,SAAU8iC,EAAMnlC,GACjC,IAAIoD,EAAO+hC,EAAK/hC,KACZ4lD,EAAQhpD,EAAQukF,EAAQtmF,OAASoM,KAAKmxC,GAAK,EAAIwqC,EAEnD,MAAO,CACLt/E,EAFW,IAEC2D,KAAKgyC,IAAI2M,GACrB14B,EAHW,IAGCjmB,KAAKkyC,IAAIyM,GACrBmtB,MAAO/yE,EACPV,MAAOA,MA8Hb,SAASujF,GAAW9jF,GAClB,IAAIikC,EAAYjkC,EAAMikC,UAClBhkC,EAAYD,EAAMC,UAClBwU,EAAWzU,EAAMyU,SACjB+tD,EAAaxiE,EAAMwiE,WACnB5mE,EAAOoE,EAAMpE,KACbwmF,EAAUpiF,EAAMoiF,QAChB/gC,EAASrhD,EAAMqhD,OACfkhC,EAAsBviF,EAAMuiF,oBAC5BnK,EAASp4E,EAAMo4E,OACfrS,EAAe/lE,EAAM+lE,aACrBD,EAAe9lE,EAAM8lE,aACrB+d,EAAgB7jF,EAAM6jF,cACtBtjF,EAAQP,EAAMO,MACd8rC,EAAarsC,EAAMqsC,WACnB9C,EAAQvpC,EAAMupC,MACdw6C,EAAyB/jF,EAAM+jF,uBAC/BziC,EAAmBthD,EAAMshD,iBACzBC,EAAkBvhD,EAAMuhD,gBACxBG,EAAoB1hD,EAAM0hD,kBAC1BC,EAAmB3hD,EAAM2hD,iBACzB8gC,EAxON,SAAiBziF,GACf,IAAIikC,EAAYjkC,EAAMikC,UAClBm+C,EAAUpiF,EAAMoiF,QAChByB,EAAgB7jF,EAAM6jF,cACtBtjF,EAAQP,EAAMO,MACd8rC,EAAarsC,EAAMqsC,WACnBk2C,EAAsBviF,EAAMuiF,oBAChC,OAAOH,EAAQliF,KAAI,SAAUsnC,EAAQ3pC,GACnC,IAAIgpD,EAAQhpD,EAAQukF,EAAQtmF,OAASoM,KAAKmxC,GAAK,EAAIwqC,EAC/CnB,EAAel7C,EAAOA,OAU1B,OAAO,IAAMtD,cAAc,GAAgB,CACzCD,UAAWA,EACX5pC,IAAKwD,EAAQ,QACbsoE,UAAW,CACT5hE,EAAG,EACH4pB,EAAG,GAELi4C,QAAS,CACP7hE,EAAGo/E,GAAcz7E,KAAKgyC,IAAI2M,IAC1B14B,EAAGw1D,GAAcz7E,KAAKkyC,IAAIyM,KAE5Bof,WAAYyc,EACZxc,cAAe,EACfG,UArBqB,SAA0B5lC,GAC/C,OAAI8hD,GAAuB9hD,IAAMiiD,EAAa,GACrC,GAGFl7C,EAAO6E,WAAa7E,EAAO6E,WAAW5L,GAAK4L,EAAW5L,IAiB7DlgC,MAAOA,EAAMkiF,UAuMN,CAAQ,CACjBL,QAASA,EACTn+C,UAAWA,EACXs+C,oBAAqBA,EACrBsB,cAAeA,EACftjF,MAAOA,EACP8rC,WAAYA,IAEVxZ,EA3IN,SAAqB7yB,GACnB,IAAIikC,EAAYjkC,EAAMikC,UAClBu+B,EAAaxiE,EAAMwiE,WACnB4f,EAAUpiF,EAAMoiF,QAChBxmF,EAAOoE,EAAMpE,KACb2E,EAAQP,EAAMO,MACdsjF,EAAgB7jF,EAAM6jF,cACtBniC,EAAoB1hD,EAAM0hD,kBAC1BC,EAAmB3hD,EAAM2hD,iBACzBquB,EAASoS,EAAQ5/C,QAAO,SAAUye,EAAKnB,GACzC,IAAItY,EAASsY,EAAMtY,OAGnB,OADAyZ,EADWnB,EAAM7+C,MACL,KAAcumC,OAAOA,GAAQzzB,MAAM,CAAC,EAAG,IAC5CktC,IACN,IACH,OAAOrlD,EAAKsE,KAAI,SAAUojC,EAAKu/C,GAC7B,IAAIE,EAAaX,EAAQliF,KAAI,SAAU8jF,EAAOnmF,GAC5C,IAAIoD,EAAO+iF,EAAM/iF,KACbmL,EAAW43E,EAAM53E,SACjB63E,EAAY73E,EAAWA,EAASk3B,GAAOA,EAAIriC,GAE3C4lD,EAAQhpD,EAAQukF,EAAQtmF,OAASoM,KAAKmxC,GAAK,EAAIwqC,EAE/CtwD,EAASrrB,KAAK4K,IAAIk9D,EAAO/uE,GAAMgjF,GAAY,GAC/C,MAAO,CACL1/E,EAAGgvB,EAASrrB,KAAKgyC,IAAI2M,GACrB14B,EAAGoF,EAASrrB,KAAKkyC,IAAIyM,GACrB5lD,KAAMqiC,EAAIriC,SAGd,OAAO,IAAMijC,cAAc,GAAe,CACxCD,UAAWA,EACXhkC,UAAW,yBACX5F,IAAKwoF,EAAW,WAChBjnF,KAAMmnF,EACNxiF,MAAO,GAAS,CACdsL,OAAQy3B,EAAI9iC,OAAS8iC,EAAIz3B,QAAU22D,EAAWqgB,EAAWrgB,EAAW1mE,QACpE8P,KAAM03B,EAAI9iC,OAAS8iC,EAAI13B,MAAQ42D,EAAWqgB,EAAWrgB,EAAW1mE,SAC/DyE,EAAMsyB,UACT6uB,kBAAmBA,EACnBC,iBAAkBA,OAmGPuiC,CAAY,CACzBjgD,UAAWA,EACXu+B,WAAYA,EACZ4f,QAASA,EACTxmF,KAAMA,EACNioF,cAAeA,EACftjF,MAAOA,EACPmhD,kBAAmBA,EACnBC,iBAAkBA,IAEhBwiC,EA3FN,SAA0BnkF,GACxB,IAAIikC,EAAYjkC,EAAMikC,UAClBm+C,EAAUpiF,EAAMoiF,QAChBxmF,EAAOoE,EAAMpE,KACbioF,EAAgB7jF,EAAM6jF,cACtBtjF,EAAQP,EAAMO,MACd+gD,EAAmBthD,EAAMshD,iBACzBC,EAAkBvhD,EAAMuhD,gBAE5B,GAAKD,EAAL,CAIA,IAAI0uB,EAASoS,EAAQ5/C,QAAO,SAAUye,EAAKmjC,GACzC,IAAI58C,EAAS48C,EAAM58C,OAGnB,OADAyZ,EADWmjC,EAAMnjF,MACL,KAAcumC,OAAOA,GAAQzzB,MAAM,CAAC,EAAG,IAC5CktC,IACN,IACH,OAAOrlD,EAAKsE,KAAI,SAAUojC,EAAKu/C,GAC7B,IAAIE,EAAaX,EAAQliF,KAAI,SAAUmkF,EAAOxmF,GAC5C,IAAIoD,EAAOojF,EAAMpjF,KACbmL,EAAWi4E,EAAMj4E,SACjB63E,EAAY73E,EAAWA,EAASk3B,GAAOA,EAAIriC,GAE3C4lD,EAAQhpD,EAAQukF,EAAQtmF,OAASoM,KAAKmxC,GAAK,EAAIwqC,EAE/CtwD,EAASrrB,KAAK4K,IAAIk9D,EAAO/uE,GAAMgjF,GAAY,GAC/C,MAAO,CACL1/E,EAAGgvB,EAASrrB,KAAKgyC,IAAI2M,GACrB14B,EAAGoF,EAASrrB,KAAKkyC,IAAIyM,GACrBrf,OAAQvmC,EACRlG,MAAOkpF,EACPK,SAAUhhD,EAAIriC,SAGlB,OAAO,IAAMijC,cAAc,GAAY,CACrCD,UAAWA,EACXhkC,UAAW,8BACX5F,IAAKwoF,EAAW,gBAChBjnF,KAAMmnF,EACN9mF,KAAM,GACNsE,MAAO,GAAS,GAAIA,EAAMsyB,SAAU,CAClCjnB,KAAM,cACNC,OAAQ,gBAEVy1C,iBAAkBA,EAClBC,gBAAiBA,QA4CDgjC,CAAiB,CACnCtgD,UAAWA,EACXu+B,WAAYA,EACZ4f,QAASA,EACTxmF,KAAMA,EACNioF,cAAeA,EACftjF,MAAOA,EACP+gD,iBAAkBA,EAClBC,gBAAiBA,IAEf4hC,EAAc,IAAMj/C,cAAc,GAAa,CACjDD,UAAWA,EACX5pC,IAAK4F,EACLA,UAAW,uBACXrE,KAAM,GAAU,CACdwmF,QAASA,EACT7hF,MAAOA,EAAM6iF,OACbS,cAAeA,MAGnB,OAAO,IAAM3/C,cAAc,GAAQ,CACjCmd,OAAQA,EACR9X,MAAOA,EACP6uC,OAAQA,EACRqC,kBAAkB,EAClBx6E,UAAWA,oBACX8lE,aAAcA,EACdD,aAAcA,EACd0e,QAAS,EAAE,EAAG,GACdlB,QAAS,EAAE,EAAG,IACb7uE,GAAWsvE,GAA0BtB,EAAKx+E,OAAO4uB,GAAU5uB,OAAOk/E,GAAal/E,OAAOkgF,GAAgBJ,GAA0BlxD,EAAS5uB,OAAOk/E,GAAal/E,OAAOw+E,GAAMx+E,OAAOkgF,IAGtLL,GAAW3/C,YAAc,aACzB2/C,GAAWt+B,aAAe,CACxBvlD,UAAW,GACXujF,UAAW,WACXhhB,WAAY/c,GACZ88B,qBAAqB,EACrBsB,cAAe37E,KAAKmxC,GAAK,EACzB94C,MAAO,CACLkiF,KAAM,CACJtxB,KAAM,GACN9rB,MAAO,GACP80B,KAAM,IAERipB,OAAQ,CACNK,SAAU,GACVvc,WAAY,UAEdr0C,SAAU,CACRw0C,YAAa,GACbqc,cAAe,EACfe,YAAa,KAGjBp4C,WAAY,GACZ03C,wBAAwB,GAEX,IC7WX,GAAW7oF,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAyGT,SAASqjF,GAAY1kF,GACnB,IAAIikC,EAAYjkC,EAAMikC,UAClBhkC,EAAYD,EAAMC,UAClBwU,EAAWzU,EAAMyU,SACjB+uE,EAAYxjF,EAAMwjF,UAClB5nF,EAAOoE,EAAMpE,KACb+oF,EAAW3kF,EAAM2kF,SACjBvR,EAAWpzE,EAAMozE,SACjBwR,EAAc5kF,EAAM4kF,YACpBvjC,EAASrhD,EAAMqhD,OACfwjC,EAAe7kF,EAAM6kF,aACrB95B,EAAc/qD,EAAM+qD,YACpB+5B,EAAsB9kF,EAAM8kF,oBAC5BC,EAAyB/kF,EAAM+kF,uBAC/BC,EAAchlF,EAAMglF,YACpB5M,EAASp4E,EAAMo4E,OACfrS,EAAe/lE,EAAM+lE,aACrBD,EAAe9lE,EAAM8lE,aACrBvyC,EAASvzB,EAAMuzB,OACf0xD,EAAajlF,EAAMilF,WACnB1kF,EAAQP,EAAMO,MACdgpC,EAAQvpC,EAAMupC,MACdw5C,EAvFN,SAA2B//C,GACzB,IAAIpnC,EAAOonC,EAAKpnC,KACZ+oF,EAAW3hD,EAAK2hD,SAGpB,OAFU,KAAaprE,KAAK,MAAMxe,MAAM4pF,EAC1B9yB,CAAIj2D,GAAMwpC,UACTllC,KAAI,SAAUojC,EAAKzlC,GAChC,OAAO,GAAS,GAAIylC,EAAI1nC,KAAM,CAC5B2yD,OAAQjrB,EAAI6nB,WACZtE,MAAOvjB,EAAI+nB,SACXwE,QAASvsB,EAAI1nC,KAAKmvD,aAAe,EACjCx3B,OAAQ+P,EAAI1nC,KAAK23B,QAAU,EAC3B/yB,MAAO8iC,EAAI1nC,KAAK4E,OAAS3C,OA4EZqnF,CAAkB,CACjCtpF,KAAMA,EACNylD,OAAQA,EACRwjC,aAAcA,EACdt7C,MAAOA,EACPo7C,SAAUA,IAERQ,EAAel9B,GAAgB86B,GAE/BqC,EAAW,GAAS,CACtB5B,UAAWA,GACVxjF,EAAO,CACRikC,UAAWA,EACX2rB,aAAc,CAAC,EAAGu1B,GAClBvpF,KAAMmnF,EACNsC,kBAAkB,EAClB9kF,MAAOA,EACP8tD,aAAc,wCAGZ96B,IACF6xD,EAASx1B,aAAe,CAAC,EAAG,GAC5Bw1B,EAAS/1B,YAAc,CAACtE,GAAe,EAAGx3B,GAC1C6xD,EAASE,WAAa,UAGxB,IACIC,EAAgB7M,GAAsBnvC,EAAO8X,EADjC9tB,GApDlB,SAAsBgW,EAAO8X,GAC3B,OAAOn5C,KAAKm3B,IAAIkK,EAAO8X,GAAU,EAtEP,GAyHQmkC,CAAaj8C,EAAO8X,IAElD+hC,EAnGN,SAAwBL,EAAY0C,GAClC,IAAIV,EAAyBxpF,UAAUO,OAAS,QAAsB6H,IAAjBpI,UAAU,GAAmBA,UAAU,GAAK,IAC7F63E,EAAWqS,EAAUrS,SACrBwR,EAAca,EAAUb,YAC5B,OAAO7B,EAAWvgD,QAAO,SAAU0lB,EAAK5kB,GACtC,IAAIujB,EAAQvjB,EAAIujB,MACZ0H,EAASjrB,EAAIirB,OACbh7B,EAAS+P,EAAI/P,OAIbmyD,GAAgB,IAHC7+B,EAAQ0H,GAAU,GAGCrmD,KAAKmxC,GAAK,EAC9CssC,EAAY,GAsBhB,OApBIvS,EAAS9vC,IACXqiD,EAAU3pF,KAAK,CACb6qD,MAAO6+B,EACPnyD,OAAQA,EAASwxD,EACjB/Q,MAAOZ,EAAS9vC,KAIhBshD,EAAYthD,IACdqiD,EAAU3pF,KAAK,CACb6qD,MAAO6+B,EACPnyD,OAAQA,EAASwxD,EACjB/Q,MAAO4Q,EAAYthD,GACnB/iC,MAAO,CACLkjF,SAAU,IAEZ5a,QAAS,KAIN3gB,EAAIjkD,OAAO0hF,KACjB,IAgEUC,CAAe7C,EAAY,CACtC3P,SAAUA,EACVwR,YAAaA,GACZG,GACH,OAAO,IAAM7gD,cAAc,GAAQ,CACjCmd,OAAQA,EACR9X,MAAOA,EACP6uC,OAAQ,GAAS,GAAIA,EAAQmN,GAC7BtlF,UAAWA,qBACX8lE,aAAcA,EACdD,aAAcA,EACd0e,QAAS,EAAEW,EAAcA,GACzB7B,QAAS,EAAE6B,EAAcA,IACxB,IAAMjhD,cAAc,GAAW,GAAS,GAAIkhD,EAAU,CACvDT,SAAU,SAAkB54E,GAC1B,OAAOA,EAAE86C,UAERo+B,IAAeH,GAAuB,IAAM5gD,cAAc,GAAa,CAC1EtoC,KAAMwnF,EACN7iF,MAAOykF,IACLvwE,EAAUwwE,GAAcH,GAAuB,IAAM5gD,cAAc,GAAa,CAClFtoC,KAAMwnF,EACN7iF,MAAOykF,KAIXN,GAAYvgD,YAAc,cAC1BugD,GAAYl/B,aAAe,CACzBvlD,UAAW,GACXujF,UAAW,WACXhhB,WAAY/c,GACZ8F,SAAU,EACVo5B,SAAU,SAAkB54E,GAC1B,OAAOA,EAAE86C,OAEXg/B,UAAW,SAAmB95E,GAC5B,OAAOA,EAAEwiD,QAEXu3B,UAAW,SAAmB/5E,GAC5B,OAAOA,EAAEwnB,QAEXwyD,WAAY,SAAoBh6E,GAC9B,OAAOA,EAAE8jD,SAEXujB,SAAU,SAAkBrnE,GAC1B,OAAOA,EAAEioE,OAEX4Q,YAAa,SAAqB74E,GAChC,OAAOA,EAAEi6E,WAGE,UC1Nf,SAASC,GAAYl6E,GACnB,OAAOA,EAAE1K,OAAOklC,MASX,SAAS2/C,GAAQ/7D,EAAMlX,GAC5B,OAAOkX,EAAKg8D,YAAYrqF,OAASquB,EAAKoc,MAAQtzB,EAAI,ECbrC,SAAS,GAAS1O,GAC/B,OAAO,WACL,OAAOA,GCIX,SAAS6hF,GAAuBznF,EAAGC,GACjC,OAAOynF,GAAiB1nF,EAAEoW,OAAQnW,EAAEmW,SAAWpW,EAAEd,MAAQe,EAAEf,MAG7D,SAASyoF,GAAuB3nF,EAAGC,GACjC,OAAOynF,GAAiB1nF,EAAE0C,OAAQzC,EAAEyC,SAAW1C,EAAEd,MAAQe,EAAEf,MAG7D,SAASwoF,GAAiB1nF,EAAGC,GAC3B,OAAOD,EAAE0tB,GAAKztB,EAAEytB,GAGlB,SAAS,GAAMtgB,GACb,OAAOA,EAAEhR,MAGX,SAASwrF,GAAWp8D,GAClB,OAAQA,EAAKkC,GAAKlC,EAAKoC,IAAM,EAG/B,SAASi6D,GAAe5zB,GACtB,OAAO2zB,GAAW3zB,EAAK79C,QAAU69C,EAAK73D,MAGxC,SAAS0rF,GAAe7zB,GACtB,OAAO2zB,GAAW3zB,EAAKvxD,QAAUuxD,EAAK73D,MAGxC,SAAS2rF,GAAU36E,GACjB,OAAOA,EAAElO,MAGX,SAAS8oF,GAAaC,GACpB,OAAOA,EAAMpR,MAGf,SAASqR,GAAaD,GACpB,OAAOA,EAAMxzD,MAGf,SAASE,GAAKwzD,EAAUvd,GACtB,IAAIp/C,EAAO28D,EAAShlF,IAAIynE,GACxB,IAAKp/C,EAAM,MAAM,IAAI7iB,MAAM,YAAciiE,GACzC,OAAOp/C,EC/CT,SAAS48D,GAAiBh7E,GACxB,MAAO,CAACA,EAAEgJ,OAAOuX,GAAIvgB,EAAEsgB,IAGzB,SAAS26D,GAAiBj7E,GACxB,MAAO,CAACA,EAAE1K,OAAO+qB,GAAIrgB,EAAEwgB,IAGV,ICVX,GAAWrxB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GA0BL4lF,GAAqBxhC,GAAqB,GAG9C,SAASyhC,GAAWlnF,GAClB,IAAIikC,EAAYjkC,EAAMikC,UAClBroC,EAAOoE,EAAMpE,KACbuuB,EAAOnqB,EAAMmqB,KACb+U,EAAUl/B,EAAMk/B,QAChB1+B,EAAQR,EAAMQ,MACd6mE,EAAcrnE,EAAMqnE,YACpB9mE,EAAQP,EAAMO,MACd4mF,EAAcnnF,EAAMmnF,YACpBC,EAAkBpnF,EAAMonF,gBACxBC,EAAiBrnF,EAAMqnF,eAE3B,OAAIpjD,EACK,IAAMC,cAAc,GAAW,GAAS,GAAIlkC,EAAO,CACxDoiC,cAAe+lB,KACb,IAAMjkB,cAAcgjD,GAAY,GAAS,GAAIlnF,EAAO,CACtDikC,UAAW,SAIR,IAAMC,cAAc,OAAQ,GAAS,CAC1Cn4B,EAAGnQ,GACF2E,EAAO,CACRN,UAAW,kBACXi/B,QAAS/2B,OAAOJ,SAASm3B,GAAWA,EA1Bb,GA2BvBrzB,OAAQrL,GAASymF,GACjBh3B,QAAS,SAAiBvwD,GACxB,OAAOynF,EAAYh9D,EAAMzqB,IAE3BqwD,YAAa,SAAqBrwD,GAChC,OAAO0nF,EAAgBj9D,EAAMzqB,IAE/BswD,WAAY,SAAoBtwD,GAC9B,OAAO2nF,EAAel9D,EAAMzqB,IAE9B2nE,YAAaA,EACbz7D,KAAM,UAIVs7E,GAAW/iD,YAAc,aACzB+iD,GAAWntB,aAAc,EACV,UClFX,GAAW7+D,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGT,SAAS,GAAmB8iB,GAC1B,GAAIlmB,MAAM8E,QAAQohB,GAAM,CACtB,IAAK,IAAInf,EAAI,EAAG21C,EAAO18C,MAAMkmB,EAAIroB,QAASkJ,EAAImf,EAAIroB,OAAQkJ,IACxD21C,EAAK31C,GAAKmf,EAAInf,GAGhB,OAAO21C,EAEP,OAAO18C,MAAM28C,KAAKz2B,GActB,IAAI,GAAO,SAAckgB,GACvB,OAAOA,GAGLijD,GAAa,CACfpB,QAAS,GACT93B,OL3BK,SAAgBjkC,GACrB,OAAOA,EAAKo9D,YAAYzrF,OAASquB,EAAKoc,MAAQpc,EAAKg8D,YAAYrqF,OAAS,GAAIquB,EAAKg8D,YAAaF,IAAe,EAAI,GK2BjHz6D,KLrCK,SAAcrB,GACnB,OAAOA,EAAKoc,OKqCZ9a,MLnCK,SAAetB,EAAMlX,GAC1B,OAAOA,EAAI,EAAIkX,EAAKk3B,SKoClB,GAAkB,CACpBgD,IAAK,GACL74B,KAAM,GACNC,MAAO,GACPutC,OAAQ,IAGV,SAASwuB,GAAOxnF,GACd,IAAIopC,EAAQppC,EAAMopC,MACdnF,EAAYjkC,EAAMikC,UAClBxvB,EAAWzU,EAAMyU,SACjBxU,EAAYD,EAAMC,UAClBwnF,EAAaznF,EAAMynF,WACnBpmC,EAASrhD,EAAMqhD,OACfqmC,EAAa1nF,EAAM0nF,WACnB7T,EAAgB7zE,EAAM6zE,cACtB8T,EAAS3nF,EAAM2nF,OACfv0D,EAAQpzB,EAAMozB,MACdw0D,EAAc5nF,EAAM4nF,YACpBxP,EAASp4E,EAAMo4E,OACfyP,EAAc7nF,EAAM6nF,YACpBrS,EAAQx1E,EAAMw1E,MACdsS,EAAY9nF,EAAM8nF,UAClBtmC,EAAexhD,EAAMwhD,aACrBF,EAAmBthD,EAAMshD,iBACzBC,EAAkBvhD,EAAMuhD,gBACxB4lC,EAAcnnF,EAAMmnF,YACpBC,EAAkBpnF,EAAMonF,gBACxBC,EAAiBrnF,EAAMqnF,eACvB9mF,EAAQP,EAAMO,MACdgpC,EAAQvpC,EAAMupC,MACdw+C,EAAY,GAAG9jF,OAAO,GAAmB,IAAIhG,MAAMu3E,EAAM15E,UAAUoE,KAAI,SAAUR,EAAGsF,GACtF,OAAO,GAAS,GAAIwwE,EAAMxwE,OAExBgjF,EAAY,GAAG/jF,OAAO,GAAmB,IAAIhG,MAAMm1B,EAAMt3B,UAAUoE,KAAI,SAAUR,EAAGsF,GACtF,OAAO,GAAS,GAAIouB,EAAMpuB,OAGxBs2E,EAAsBpD,GAAmB,CAC3CE,OAAQA,EACR/2B,OAAQA,EACR9X,MAAOA,GACN,IACCka,EAAa63B,EAAoB73B,WACjCF,EAAY+3B,EAAoB/3B,UAChCsW,EAAcyhB,EAAoBzhB,YAClCD,EAAe0hB,EAAoB1hB,aAEnCquB,EH1CS,WACb,IAAI77D,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAETM,EAAK,GAEL0qC,EAAK,EAELgS,EAAKmd,GACDt9C,EAAQ88C,GACR1Q,EAAQmR,GACRvzD,EAAQyzD,GACRqB,EAAa,GAEjB,SAASC,IACP,IAAIvB,EAAQ,CACVpR,MAAOA,EAAM5zE,MAAM,KAAMrG,WACzB63B,MAAOA,EAAMxxB,MAAM,KAAMrG,YAO3B,OALA6sF,EAAiBxB,GACjByB,EAAkBzB,GAClB0B,EAAkB1B,GAClB2B,EAAoB3B,GACpB4B,EAAoB5B,GACbA,EA8CT,SAASwB,EAAiBxB,GACxBA,EAAMpR,MAAMzxE,SAAQ,SAAUomB,EAAMnlB,GAClCmlB,EAAKtsB,MAAQmH,EACbmlB,EAAKg8D,YAAc,GACnBh8D,EAAKo9D,YAAc,MAErB,IAAIT,EAAW,GAAIF,EAAMpR,MAAOjM,GAChCqd,EAAMxzD,MAAMrvB,SAAQ,SAAU6uD,EAAM5tD,GAClC4tD,EAAK/0D,MAAQmH,EACb,IAAI+P,EAAS69C,EAAK79C,OACd1T,EAASuxD,EAAKvxD,OACI,iBAAX0T,IAAqBA,EAAS69C,EAAK79C,OAASue,GAAKwzD,EAAU/xE,IAChD,iBAAX1T,IAAqBA,EAASuxD,EAAKvxD,OAASiyB,GAAKwzD,EAAUzlF,IACtE0T,EAAOoxE,YAAYnqF,KAAK42D,GACxBvxD,EAAOkmF,YAAYvrF,KAAK42D,MAK5B,SAASy1B,EAAkBzB,GACzBA,EAAMpR,MAAMzxE,SAAQ,SAAUomB,GAC5BA,EAAKpvB,MAAQmN,KAAK4K,IAAI,GAAIqX,EAAKg8D,YAAa,IAAQ,GAAIh8D,EAAKo9D,YAAa,QAQ9E,SAASe,EAAkB1B,GACzB,IAAIpR,EAAO/xD,EAAMlf,EAEjB,IAAKixE,EAAQoR,EAAMpR,MAAO/xD,EAAO,GAAIlf,EAAI,EAAGixE,EAAM15E,SAAUyI,EAAGixE,EAAQ/xD,EAAMA,EAAO,GAClF+xD,EAAMzxE,SAAQ,SAAUomB,GACtBA,EAAKoc,MAAQhiC,EACb4lB,EAAKg8D,YAAYpiF,SAAQ,SAAU6uD,GAC7BnvC,EAAK6e,QAAQswB,EAAKvxD,QAAU,GAC9BoiB,EAAKznB,KAAK42D,EAAKvxD,cAMvB,IAAKm0E,EAAQoR,EAAMpR,MAAO/xD,EAAO,GAAIlf,EAAI,EAAGixE,EAAM15E,SAAUyI,EAAGixE,EAAQ/xD,EAAMA,EAAO,GAClF+xD,EAAMzxE,SAAQ,SAAUomB,GACtBA,EAAKk3B,OAAS98C,EACd4lB,EAAKo9D,YAAYxjF,SAAQ,SAAU6uD,GAC7BnvC,EAAK6e,QAAQswB,EAAK79C,QAAU,GAC9B0O,EAAKznB,KAAK42D,EAAK79C,cAMvB,IAAI2+C,GAAMpnC,EAAKF,EAAKS,IAAOtoB,EAAI,GAC/BqiF,EAAMpR,MAAMzxE,SAAQ,SAAUomB,GAC5BA,EAAKmC,IAAMnC,EAAKiC,GAAKA,EAAKlkB,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI96B,EAAI,EAAG2D,KAAK4Y,MAAMsoB,EAAM5tC,KAAK,KAAM2uB,EAAM5lB,MAAQmvD,GAAM7mC,KAI1G,SAAS07D,EAAoB3B,GAC3B,IAiBM6B,EAjBFC,EAAU,KAAOruF,KAAI,SAAU0R,GACjC,OAAOA,EAAEqgB,MACR8a,SAAS3C,IAAW5hC,QAAQikF,EAAMpR,OAAOt1E,KAAI,SAAU6L,GACxD,OAAOA,EAAEnO,UAcL6qF,EAAK,GAAIC,GAAS,SAAUlT,GAC9B,OAAQjpD,EAAKF,GAAMmpD,EAAM15E,OAAS,GAAKy7D,GAAM,GAAIie,EAAO,OAE1DkT,EAAQ3kF,SAAQ,SAAUyxE,GACxBA,EAAMzxE,SAAQ,SAAUomB,EAAMnlB,GAC5BmlB,EAAKoC,IAAMpC,EAAKkC,GAAKrnB,GAAKmlB,EAAKpvB,MAAQ0tF,QAG3C7B,EAAMxzD,MAAMrvB,SAAQ,SAAU6uD,GAC5BA,EAAKrpB,MAAQqpB,EAAK73D,MAAQ0tF,KAnB9BE,IAEA,IAAK,IAAIzyB,EAAQ,EAAGjjD,EAAIi1E,EAAYj1E,EAAI,IAAKA,EAC3C21E,EAAiB1yB,GAAS,KAC1ByyB,IACAE,EAAiB3yB,GACjByyB,IAiBF,SAASE,EAAiB3yB,GACxBwyB,EAAQ3kF,SAAQ,SAAUyxE,GACxBA,EAAMzxE,SAAQ,SAAUomB,GACtB,GAAIA,EAAKo9D,YAAYzrF,OAAQ,CAC3B,IAAIgxB,GAAM,GAAI3C,EAAKo9D,YAAaf,IAAkB,GAAIr8D,EAAKo9D,YAAa,IAAShB,GAAWp8D,IAAS+rC,EACrG/rC,EAAKkC,IAAMS,EAAI3C,EAAKoC,IAAMO,SAMlC,SAAS87D,EAAiB1yB,GACxBwyB,EAAQ1qF,QAAQonC,UAAUrhC,SAAQ,SAAUyxE,GAC1CA,EAAMzxE,SAAQ,SAAUomB,GACtB,GAAIA,EAAKg8D,YAAYrqF,OAAQ,CAC3B,IAAIgxB,GAAM,GAAI3C,EAAKg8D,YAAaM,IAAkB,GAAIt8D,EAAKg8D,YAAa,IAASI,GAAWp8D,IAAS+rC,EACrG/rC,EAAKkC,IAAMS,EAAI3C,EAAKoC,IAAMO,SAMlC,SAAS67D,IACPD,EAAQ3kF,SAAQ,SAAUyxE,GACxB,IAAIrrD,EACA2C,EAGA9nB,EAFAmpB,EAAI9B,EACJpZ,EAAIuiE,EAAM15E,OAKd,IAFA05E,EAAMj8D,KAAK8sE,IAENrhF,EAAI,EAAGA,EAAIiO,IAAKjO,GAEnB8nB,EAAKqB,GADLhE,EAAOqrD,EAAMxwE,IACCqnB,IACL,IAAGlC,EAAKkC,IAAMS,EAAI3C,EAAKoC,IAAMO,GACtCqB,EAAIhE,EAAKoC,GAAKgrC,EAMhB,IAFAzqC,EAAKqB,EAAIopC,EAAKhrC,GAEL,EAGP,IAFA4B,EAAIhE,EAAKkC,IAAMS,EAAI3C,EAAKoC,IAAMO,EAEzB9nB,EAAIiO,EAAI,EAAGjO,GAAK,IAAKA,GAExB8nB,GADA3C,EAAOqrD,EAAMxwE,IACHunB,GAAKgrC,EAAKppC,GACX,IAAGhE,EAAKkC,IAAMS,EAAI3C,EAAKoC,IAAMO,GACtCqB,EAAIhE,EAAKkC,OAOnB,SAASm8D,EAAoB5B,GAC3BA,EAAMpR,MAAMzxE,SAAQ,SAAUomB,GAC5BA,EAAKg8D,YAAY5sE,KAAK+sE,IACtBn8D,EAAKo9D,YAAYhuE,KAAK6sE,OAExBQ,EAAMpR,MAAMzxE,SAAQ,SAAUomB,GAC5B,IAAIkC,EAAKlC,EAAKkC,GACVE,EAAKF,EACTlC,EAAKg8D,YAAYpiF,SAAQ,SAAU6uD,GACjCA,EAAKvmC,GAAKA,EAAKumC,EAAKrpB,MAAQ,EAAGld,GAAMumC,EAAKrpB,SAE5Cpf,EAAKo9D,YAAYxjF,SAAQ,SAAU6uD,GACjCA,EAAKrmC,GAAKA,EAAKqmC,EAAKrpB,MAAQ,EAAGhd,GAAMqmC,EAAKrpB,YAKhD,OA/MA4+C,EAAOW,OAAS,SAAUlC,GAExB,OADA4B,EAAoB5B,GACbA,GAGTuB,EAAOY,OAAS,SAAU1kF,GACxB,OAAO9I,UAAUO,QAAUytE,EAAkB,mBAANllE,EAAmBA,EAAI,GAASA,GAAI8jF,GAAU5e,GAGvF4e,EAAOa,UAAY,SAAU3kF,GAC3B,OAAO9I,UAAUO,QAAUstC,EAAqB,mBAAN/kC,EAAmBA,EAAI,GAASA,GAAI8jF,GAAU/+C,GAG1F++C,EAAOL,UAAY,SAAUzjF,GAC3B,OAAO9I,UAAUO,QAAU+wB,GAAMxoB,EAAG8jF,GAAUt7D,GAGhDs7D,EAAON,YAAc,SAAUxjF,GAC7B,OAAO9I,UAAUO,QAAUy7D,GAAMlzD,EAAG8jF,GAAU5wB,GAGhD4wB,EAAO3S,MAAQ,SAAUnxE,GACvB,OAAO9I,UAAUO,QAAU05E,EAAqB,mBAANnxE,EAAmBA,EAAI,GAASA,GAAI8jF,GAAU3S,GAG1F2S,EAAO/0D,MAAQ,SAAU/uB,GACvB,OAAO9I,UAAUO,QAAUs3B,EAAqB,mBAAN/uB,EAAmBA,EAAI,GAASA,GAAI8jF,GAAU/0D,GAG1F+0D,EAAOlsF,KAAO,SAAUoI,GACtB,OAAO9I,UAAUO,QAAUswB,EAAKC,EAAK,EAAGC,GAAMjoB,EAAE,GAAIkoB,GAAMloB,EAAE,GAAI8jF,GAAU,CAAC77D,EAAKF,EAAIG,EAAKF,IAG3F87D,EAAO32D,OAAS,SAAUntB,GACxB,OAAO9I,UAAUO,QAAUswB,GAAM/nB,EAAE,GAAG,GAAIioB,GAAMjoB,EAAE,GAAG,GAAIgoB,GAAMhoB,EAAE,GAAG,GAAIkoB,GAAMloB,EAAE,GAAG,GAAI8jF,GAAU,CAAC,CAAC/7D,EAAIC,GAAK,CAACC,EAAIC,KAGnH47D,EAAOD,WAAa,SAAU7jF,GAC5B,OAAO9I,UAAUO,QAAUosF,GAAc7jF,EAAG8jF,GAAUD,GAyKjDC,EGlMc,GAAS32D,OAAO,CAAC,CAACiyB,EAAYF,GAAY,CAACha,EAAQswB,EAAaxY,EAASuY,EAAerW,KAAaukC,UAAUA,GAAWD,YAAYA,GAAarS,MAAMuS,GAAW30D,MAAM40D,GAAWgB,UAAU1B,GAAWl+C,IAAQ8+C,WAAWP,GAClPM,EAAeF,GACf,IAAIkB,EAAShB,EAAeH,YACxBltF,EFtFGu4D,KAAiBp+C,OAAOgyE,IAAkB1lF,OAAO2lF,IEuFxD,OAAO,IAAM9iD,cAAc,GAAQ,GAAS,GAAIlkC,EAAO,CACrDkpF,MAAO,UACPjpF,UAAW,aAAeA,IACxB+nF,EAAU9nF,KAAI,SAAU0yD,EAAM5tD,GAChC,OAAO,IAAMk/B,cAAc,GAAY,CACrC3jC,MAAOA,EAAM6yB,MACbx3B,KAAMhB,EAAKg4D,GACX1zB,QAAS0zB,EAAK1zB,SAAW0oD,EACzBpnF,MAAOoyD,EAAKpyD,MACZ2mF,YAAaA,EACbC,gBAAiBA,EACjBC,eAAgBA,EAChBhgB,YAAan/D,KAAK4K,IAAI8/C,EAAKrpB,MAAO,GAClCpf,KAAMyoC,EACNq2B,OAAQA,EACR5uF,IAAK,QAAU2K,OAEf,IAAMk/B,cAAc,GAAoB,CAC1CD,UAAWA,EACXhkC,UAAWA,EAAY,mBACvBrE,KAAMmsF,EAAU7nF,KAAI,SAAUiqB,GAC5B,OAAO,GAAS,GAAIA,EAAM,CACxBgE,EAAGhE,EAAKoC,GAAKg3B,EACbl3B,GAAIlC,EAAKkC,GAAKk3B,EACdh/C,EAAG4lB,EAAKmC,GACRF,GAAIjC,EAAKiC,GACT5rB,MAAO2pB,EAAK3pB,OAASilD,GAAqB,GAC1C0gC,YAAa,KACboB,YAAa,UAGjBhnF,MAAOA,EAAM4oF,MACb3nC,aAAcA,EACdF,iBAAkBA,EAClBC,gBAAiBA,EACjBiiC,UAAW,aACRkE,GAAc,IAAMxjD,cAAc,GAAa,CAClDD,UAAWA,EACXhkC,UAAWA,EACXozE,SAAUQ,EACVb,aAAc,mBACdp3E,KAAMmsF,EAAU7nF,KAAI,SAAUiqB,EAAMnlB,GAClC,OAAO,GAAS,CACdT,EAAG4lB,EAAKiC,IAAMjC,EAAKiC,GAAKmd,EAAQ,EAAI0/C,EAAS,IAAM,IACnD96D,GAAIhE,EAAKkC,GAAKlC,EAAKoC,IAAM,EAAIg3B,EAC7BywB,MAAO7pD,EAAKlpB,KACZV,MAAO,GAAS,CACd2mE,WAAY/8C,EAAKiC,GAAKmd,EAAQ,EAAI,QAAU,MAC5Czc,GAAI,SACHvsB,EAAM6iF,SACR5N,EAAMxwE,SAETyiF,GAAc,IAAMvjD,cAAc,GAAS,CAC7CjkC,UAAW,qBACXuxB,OAAQ,CAAC,EAAEiyB,GAAaF,GAAY,CAACha,EAAQswB,EAAaxY,EAASuY,IACnE4b,MAAOuS,EACP93B,QAASzO,EACTq0B,QAASv0B,EACTm0B,OAAQl0B,EACRh9C,EAAG,SAAWwH,GACZ,OAAOA,EAAEqgB,IAAMrgB,EAAEugB,GAAKvgB,EAAEqgB,IAAM,GAEhC+B,EAAG,SAAWpiB,GACZ,OAAOA,EAAEsgB,IAAMtgB,EAAEwgB,GAAKxgB,EAAEsgB,IAAM,KAE9B5X,GAGN+yE,GAAOhiC,aAAe,CACpBpc,MAAO,UACPnpC,UAAW,GACXwnF,YAAY,EACZC,YAAY,EACZ7T,cAAe,EACf8T,OAAQ,GACRvP,OAAQ,GACRyP,YAAa,GACbC,UAAW,GACXxmC,iBAAkB,GAClBE,aAAc,GACdD,gBAAiB,GACjB4lC,YAAa,GACbC,gBAAiB,GACjBC,eAAgB,GAChB9mF,MAAO,CACL6yB,MAAO,GACP+1D,MAAO,GACP/F,OAAQ,KAGG,IC5LA,eACbj5D,EAAKiC,GAAKlkB,KAAK6rB,MAAM5J,EAAKiC,IAC1BjC,EAAKkC,GAAKnkB,KAAK6rB,MAAM5J,EAAKkC,IAC1BlC,EAAKmC,GAAKpkB,KAAK6rB,MAAM5J,EAAKmC,IAC1BnC,EAAKoC,GAAKrkB,KAAK6rB,MAAM5J,EAAKoC,KCJb,uBAOb,IANA,IACIpC,EADAqrD,EAAQ1qD,EAAOrW,SAEfzP,GAAK,EACLiO,EAAIuiE,EAAM15E,OACVke,EAAI8Q,EAAO/vB,QAAUuxB,EAAKF,GAAMtB,EAAO/vB,QAElCiK,EAAIiO,IACXkX,EAAOqrD,EAAMxwE,IAASqnB,GAAKA,EAAIlC,EAAKoC,GAAKA,EACzCpC,EAAKiC,GAAKA,EAAIjC,EAAKmC,GAAKF,GAAMjC,EAAKpvB,MAAQif,GCPhC,cACb,IAAI6S,EAAK,EACLC,EAAK,EACLif,EAAU,EACVhY,GAAQ,EAEZ,SAASq1D,EAAU18E,GACjB,IAAIuG,EAAIvG,EAAK20C,OAAS,EAMtB,OALA30C,EAAK0f,GAAK1f,EAAK2f,GAAK0f,EACpBr/B,EAAK4f,GAAKO,EACVngB,EAAK6f,GAAKO,EAAK7Z,EACfvG,EAAK28E,WAKP,SAAsBv8D,EAAI7Z,GACxB,OAAO,SAAUkX,GACXA,EAAK1V,UACP,GAAY0V,EAAMA,EAAKiC,GAAIU,GAAM3C,EAAKoc,MAAQ,GAAKtzB,EAAGkX,EAAKmC,GAAIQ,GAAM3C,EAAKoc,MAAQ,GAAKtzB,GAGzF,IAAImZ,EAAKjC,EAAKiC,GACVC,EAAKlC,EAAKkC,GACVC,EAAKnC,EAAKmC,GAAKyf,EACfxf,EAAKpC,EAAKoC,GAAKwf,EACfzf,EAAKF,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,GAC/BC,EAAKF,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,GACnCpC,EAAKiC,GAAKA,EACVjC,EAAKkC,GAAKA,EACVlC,EAAKmC,GAAKA,EACVnC,EAAKoC,GAAKA,GApBI+8D,CAAax8D,EAAI7Z,IAC7B8gB,GAAOrnB,EAAK28E,WAAW,IACpB38E,EAkCT,OAZA08E,EAAUr1D,MAAQ,SAAUxvB,GAC1B,OAAOhJ,UAAUO,QAAUi4B,IAAUxvB,EAAG6kF,GAAar1D,GAGvDq1D,EAAUntF,KAAO,SAAUsI,GACzB,OAAOhJ,UAAUO,QAAU+wB,GAAMtoB,EAAE,GAAIuoB,GAAMvoB,EAAE,GAAI6kF,GAAa,CAACv8D,EAAIC,IAGvEs8D,EAAUr9C,QAAU,SAAUxnC,GAC5B,OAAOhJ,UAAUO,QAAUiwC,GAAWxnC,EAAG6kF,GAAar9C,GAGjDq9C,GCjDT,SAAS,GAAMj/D,GACb,IAAI6b,EAAM,EACNvxB,EAAW0V,EAAK1V,SAChBzP,EAAIyP,GAAYA,EAAS3Y,OAC7B,GAAKkJ,EAAgB,OAASA,GAAK,GACjCghC,GAAOvxB,EAASzP,GAAGjK,WADbirC,EAAM,EAGd7b,EAAKpvB,MAAQirC,ECIA,SAASujD,GAAU3tF,EAAM6Y,GACtC,IAEI0V,EAEAgZ,EACAqmD,EACAxkF,EACAiO,EAPAvG,EAAO,IAAI+8E,GAAK7tF,GAChB8tF,GAAU9tF,EAAKb,QAAU2R,EAAK3R,MAAQa,EAAKb,OAE3Cy6E,EAAQ,CAAC9oE,GAOb,IAFgB,MAAZ+H,IAAkBA,EAAWk1E,IAE1Bx/D,EAAOqrD,EAAM//D,OAGlB,GAFIi0E,IAAQv/D,EAAKpvB,OAASovB,EAAKvuB,KAAKb,QAE/ByuF,EAAS/0E,EAAS0V,EAAKvuB,SAAWqX,EAAIu2E,EAAO1tF,QAGhD,IAFAquB,EAAK1V,SAAW,IAAIxW,MAAMgV,GAErBjO,EAAIiO,EAAI,EAAGjO,GAAK,IAAKA,EACxBwwE,EAAMx5E,KAAKmnC,EAAQhZ,EAAK1V,SAASzP,GAAK,IAAIykF,GAAKD,EAAOxkF,KACtDm+B,EAAMrY,OAASX,EACfgZ,EAAMoD,MAAQpc,EAAKoc,MAAQ,EAKjC,OAAO75B,EAAK28E,WAAWO,IAOzB,SAASD,GAAgB59E,GACvB,OAAOA,EAAE0I,SAGX,SAASo1E,GAAS1/D,GAChBA,EAAKvuB,KAAOuuB,EAAKvuB,KAAKA,KAGjB,SAASguF,GAAcz/D,GAC5B,IAAIk3B,EAAS,EAEb,GACEl3B,EAAKk3B,OAASA,SACNl3B,EAAOA,EAAKW,SAAWX,EAAKk3B,SAAWA,GAE5C,SAASooC,GAAK7tF,GACnBtB,KAAKsB,KAAOA,EACZtB,KAAKisC,MAAQjsC,KAAK+mD,OAAS,EAC3B/mD,KAAKwwB,OAAS,KAEhB2+D,GAAKtuF,UAAYouF,GAAUpuF,UAAY,CACrCuI,YAAa+lF,GACbnkD,MDvDa,WACb,OAAOhrC,KAAKwvF,UAAU,KCuDtB7jD,KClEa,YACb,IACIhvB,EAEAxC,EACAzP,EACAiO,EALAkX,EAAO7vB,KAEPmpB,EAAO,CAAC0G,GAKZ,GAGE,IAFAlT,EAAUwM,EAAK2hB,UAAW3hB,EAAO,GAE1B0G,EAAOlT,EAAQxB,OAEpB,GADAsnD,EAAS5yC,GAAO1V,EAAW0V,EAAK1V,SAClB,IAAKzP,EAAI,EAAGiO,EAAIwB,EAAS3Y,OAAQkJ,EAAIiO,IAAKjO,EACtDye,EAAKznB,KAAKyY,EAASzP,UAGhBye,EAAK3nB,QAEd,OAAOxB,MDgDPwvF,UEnEa,YAQb,IAPA,IAGIr1E,EACAzP,EACAiO,EALAkX,EAAO7vB,KACPk7E,EAAQ,CAACrrD,GACT1G,EAAO,GAKJ0G,EAAOqrD,EAAM//D,OAElB,GADAgO,EAAKznB,KAAKmuB,GAAO1V,EAAW0V,EAAK1V,SACnB,IAAKzP,EAAI,EAAGiO,EAAIwB,EAAS3Y,OAAQkJ,EAAIiO,IAAKjO,EACtDwwE,EAAMx5E,KAAKyY,EAASzP,IAIxB,KAAOmlB,EAAO1G,EAAKhO,OACjBsnD,EAAS5yC,GAGX,OAAO7vB,MFiDP+uF,WGpEa,YAMb,IALA,IAEI50E,EACAzP,EAHAmlB,EAAO7vB,KACPk7E,EAAQ,CAACrrD,GAINA,EAAOqrD,EAAM//D,OAElB,GADAsnD,EAAS5yC,GAAO1V,EAAW0V,EAAK1V,SAClB,IAAKzP,EAAIyP,EAAS3Y,OAAS,EAAGkJ,GAAK,IAAKA,EACpDwwE,EAAMx5E,KAAKyY,EAASzP,IAIxB,OAAO1K,MHwDP0rC,IIrEa,YACb,OAAO1rC,KAAKwvF,WAAU,SAAU3/D,GAK9B,IAJA,IAAI6b,GAAOjrC,EAAMovB,EAAKvuB,OAAS,EAC3B6Y,EAAW0V,EAAK1V,SAChBzP,EAAIyP,GAAYA,EAAS3Y,SAEpBkJ,GAAK,GACZghC,GAAOvxB,EAASzP,GAAGjK,MAGrBovB,EAAKpvB,MAAQirC,MJ4DfzsB,KKrEa,YACb,OAAOjf,KAAK+uF,YAAW,SAAUl/D,GAC3BA,EAAK1V,UACP0V,EAAK1V,SAAS8E,KAAK+qB,OLmEvB1pC,KMvEa,YAKb,IAJA,IAAIkV,EAAQxV,KACRyvF,EAkBN,SAA6BprF,EAAGC,GAC9B,GAAID,IAAMC,EAAG,OAAOD,EACpB,IAAIqrF,EAASrrF,EAAEsrF,YACXC,EAAStrF,EAAEqrF,YACXh3D,EAAI,KACRt0B,EAAIqrF,EAAOv0E,MACX7W,EAAIsrF,EAAOz0E,MAEX,KAAO9W,IAAMC,GACXq0B,EAAIt0B,EACJA,EAAIqrF,EAAOv0E,MACX7W,EAAIsrF,EAAOz0E,MAGb,OAAOwd,EAhCQk3D,CAAoBr6E,EAAOC,GACtCylE,EAAQ,CAAC1lE,GAENA,IAAUi6E,GACfj6E,EAAQA,EAAMgb,OACd0qD,EAAMx5E,KAAK8T,GAKb,IAFA,IAAIkK,EAAIw7D,EAAM15E,OAEPiU,IAAQg6E,GACbvU,EAAM7rE,OAAOqQ,EAAG,EAAGjK,GACnBA,EAAMA,EAAI+a,OAGZ,OAAO0qD,GNuDPyU,UOxEa,WAIb,IAHA,IAAI9/D,EAAO7vB,KACPk7E,EAAQ,CAACrrD,GAENA,EAAOA,EAAKW,QACjB0qD,EAAMx5E,KAAKmuB,GAGb,OAAOqrD,GPiEP4U,YQzEa,WACb,IAAI5U,EAAQ,GAIZ,OAHAl7E,KAAK2rC,MAAK,SAAU9b,GAClBqrD,EAAMx5E,KAAKmuB,MAENqrD,GRqEP6U,OS1Ea,WACb,IAAIA,EAAS,GAMb,OALA/vF,KAAK+uF,YAAW,SAAUl/D,GACnBA,EAAK1V,UACR41E,EAAOruF,KAAKmuB,MAGTkgE,GToEPj3D,MU3Ea,WACb,IAAI1mB,EAAOpS,KACP84B,EAAQ,GAUZ,OATA1mB,EAAKu5B,MAAK,SAAU9b,GACdA,IAASzd,GAEX0mB,EAAMp3B,KAAK,CACT+Y,OAAQoV,EAAKW,OACbzpB,OAAQ8oB,OAIPiJ,GVgEP3Z,KArCF,WACE,OAAO8vE,GAAUjvF,MAAM+uF,WAAWQ,MWtCpC,IAAI,GAAW3uF,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAgCLipF,GAAyB,CAAC,mBAAoB,kBAAmB,eAAgB,oBAAqB,oBAAqB,mBAAoB,gBAAiB,sBAwEpK,IAAI,GAAO,aAEX,SAASC,GAASvqF,GAChB,IAAI2kF,EAAW3kF,EAAM2kF,SACjBkB,EAAY7lF,EAAM6lF,UAClB5hD,EAAYjkC,EAAMikC,UAClBhkC,EAAYD,EAAMC,UAClBwU,EAAWzU,EAAMyU,SACjB7Y,EAAOoE,EAAMpE,KACbylD,EAASrhD,EAAMqhD,OACfwjC,EAAe7kF,EAAM6kF,aACrBzR,EAAWpzE,EAAMozE,SACjB7pC,EAAQvpC,EAAMupC,MACdihD,EAAUxqF,EAAMwqF,QAChBhH,EAAYxjF,EAAMwjF,UAClBT,EA3EN,SAA0B//C,GACxB,IAAIpnC,EAAOonC,EAAKpnC,KACZylD,EAASre,EAAKqe,OACdwjC,EAAe7hD,EAAK6hD,aACpBt7C,EAAQvG,EAAKuG,MACbihD,EAAUxnD,EAAKwnD,QACfC,EAAoB,KACpBC,EAAkBnB,GAAU3tF,GAAMoqC,IAAIwkD,GACtCj3D,EAASrrB,KAAKm3B,IAAIkK,EAAO8X,GAAU,EAAI,GACvC98C,EAAI,KAAcwP,MAAM,CAAC,EAAG,EAAI7L,KAAKmxC,KACrClrB,EAAI,KAAYpa,MAAM,CAAC,EAAGwf,IAC9B,OAAOk3D,EAAkBC,GAAiBN,cAAc5nD,QAAO,SAAU0lB,EAAKz6B,EAAM5vB,GAClF,OAAIgnF,GAA0B,IAAVhnF,EACXqqD,EAGFA,EAAIjkD,OAAO,CAAC,GAAS,CAC1BsqD,OAAQrmD,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAIn3B,KAAKmxC,GAAI90C,EAAEkpB,EAAKrB,MACjDy6B,MAAO3+C,KAAK4K,IAAI,EAAG5K,KAAKm3B,IAAI,EAAIn3B,KAAKmxC,GAAI90C,EAAEkpB,EAAKnB,MAChDujC,QAAS3nD,KAAK4K,IAAI,EAAGqb,EAAEV,EAAKpB,KAC5BkH,OAAQrrB,KAAK4K,IAAI,EAAGqb,EAAEV,EAAKlB,KAC3Bga,MAAO9Y,EAAK8Y,MACZzb,OAAQ2C,EAAK3C,QACZ2C,EAAK7xB,UACP,IAmDc+uF,CAAiB,CAChC/uF,KAAMA,EACNylD,OAAQA,EACRwjC,aAAcA,EACdt7C,MAAOA,EACPihD,QAASA,IAEPrF,EAAel9B,GAAgB86B,GAC/B3K,EAASM,GAAsBnvC,EAAO8X,EAAQ8jC,GAC9CyF,EAjDN,SAAqB7H,EAAY0C,GAC/B,IAAId,EAAWc,EAAUd,SACrBkB,EAAYJ,EAAUI,UACtBzS,EAAWqS,EAAUrS,SACrB2S,EAAaN,EAAUM,WAC3B,OAAOhD,EAAW1vD,OAAO+/C,GAAUlzE,KAAI,SAAUojC,GAC/C,IAAIkrB,GAAc,EAAIm2B,EAASrhD,GAAOp7B,KAAKmxC,GAAK,EAE5CwN,IADe,EAAIg/B,EAAUviD,GAAOp7B,KAAKmxC,GAAK,EACvBmV,GAAc,EACrCq8B,GAAgBvnD,EAAIwnD,gBACpBC,GAAYlkC,GAAS,EAAI3+C,KAAKmxC,IAAM,IACxC,OAAO,GAAS,GAAI/V,EAAK,CACvB7uB,SAAU,KACVoyC,MAAO,KACPtzB,OAAQ,KACRhvB,EAAGwhF,EAAWziD,GAAOp7B,KAAKgyC,IAAI2M,GAC9B14B,EAAG43D,EAAWziD,GAAOp7B,KAAKkyC,IAAIyM,GAC9BtmD,MAAO,GAAS,CACd2mE,WAAY6jB,EAAW,GAAK,MAAQ,SACnCznD,EAAI0nD,YACP3X,SAAUwX,EAAeE,EAAW,GAAKA,EAAW,IAAmB,KAAbA,EAAkB,GAAKA,EAAW,UA6BhFE,CAAYlI,EAAY,CACtC4B,SAAUA,EACVkB,UAAWA,EACXzS,SAAUA,EACV2S,WAAY,SAAoBh6E,GAC9B,OAAOA,EAAE8jD,WAUb,OAAO,IAAM3rB,cAAc,GAAQ,CACjCmd,OAAQA,EACRy5B,kBAAkB,EAClBvxC,MAAOA,EACPtpC,UAAW,eAA4BA,EACvCm4E,OAAQA,EACRoM,QAAS,EAAEW,EAAcA,GACzB7B,QAAS,EAAE6B,EAAcA,IACxB,IAAMjhD,cAAc,GAAW,GAAS,CACzCs/C,UAAWA,GACVxjF,EAAO,CACRikC,UAAWA,EACX2rB,aAAc,CAAC,EAAGu1B,GAElBvpF,KAAMqoC,EAAY8+C,EAAW7iF,KAAI,SAAUojC,EAAKzlC,GAC9C,OAAO,GAAS,GAAIylC,EAAK,CACvBxY,OAAQ,KACRrW,SAAU,KACV5W,MAAOA,OAENklF,EACL1/C,MAAOY,EAAY8+C,EAAa,KAChC10B,aAAc,oCACbi8B,GAAuB9nD,QAAO,SAAUye,EAAKiqC,GAC9C,IA9BmC7mD,EA8B/B6c,EAAOlhD,EAAMkrF,GAEjB,OADAjqC,EAAIiqC,GAAYjnD,GA/BmBI,EA+BI6c,EA9BhC,SAAUxhD,EAAGsF,GAClB,OAAOq/B,EAAIA,EAAE0+C,EAAWrjF,EAAE7B,OAAQmH,GAAK,KA6BMk8C,EACxCD,IACN,MAAO2pC,EAAU9uF,OAAS,GAAK,IAAMooC,cAAc,GAAa,CACjEtoC,KAAMgvF,EACNxX,SAAUA,IACR3+D,GAGN81E,GAASpmD,YAAc,WACvBomD,GAAS/kC,aAAe,CACtBm/B,SAAU,SAAkB54E,GAC1B,OAAOA,EAAE86C,OAEXg/B,UAAW,SAAmB95E,GAC5B,OAAOA,EAAEwiD,QAEXtuD,UAAW,GACXujF,UAAW,UACX2H,SAAU,SAAkBp/E,GAC1B,OAAOA,EAAEvL,OAEXqkF,cAAc,EACdzR,SAAU,SAAkBrnE,GAC1B,OAAOA,EAAEioE,OAEXwW,QAAS,SAAiBz+E,GACxB,OAAOA,EAAE9P,MAEXsvD,SAAU,GAEG,ICnNA,uBAOb,IANA,IACIphC,EADAqrD,EAAQ1qD,EAAOrW,SAEfzP,GAAK,EACLiO,EAAIuiE,EAAM15E,OACVke,EAAI8Q,EAAO/vB,QAAUwxB,EAAKF,GAAMvB,EAAO/vB,QAElCiK,EAAIiO,IACXkX,EAAOqrD,EAAMxwE,IAASonB,GAAKA,EAAIjC,EAAKmC,GAAKA,EACzCnC,EAAKkC,GAAKA,EAAIlC,EAAKoC,GAAKF,GAAMlC,EAAKpvB,MAAQif,GCPpCoxE,IAAO,EAAIljF,KAAKinB,KAAK,IAAM,EAC/B,SAASk8D,GAAcC,EAAOxgE,EAAQsB,EAAIC,EAAIC,EAAIC,GAmBvD,IAlBA,IAEI+W,EACAioD,EAIA1+D,EACAC,EAEA0+D,EACAC,EACAC,EACAC,EACAC,EACA11B,EACArB,EAhBAg3B,EAAO,GACPrW,EAAQ1qD,EAAOrW,SAGf+e,EAAK,EACLC,EAAK,EACLxgB,EAAIuiE,EAAM15E,OAGVf,EAAQ+vB,EAAO/vB,MASZy4B,EAAKvgB,GAAG,CACb4Z,EAAKP,EAAKF,EAAIU,EAAKP,EAAKF,EAExB,GACEm/D,EAAWhW,EAAM/hD,KAAM14B,aACfywF,GAAY/3D,EAAKxgB,GAO3B,IALAw4E,EAAWC,EAAWF,EAEtB32B,EAAO22B,EAAWA,GADlBt1B,EAAQhuD,KAAK4K,IAAIga,EAAKD,EAAIA,EAAKC,IAAO/xB,EAAQuwF,IAE9CM,EAAW1jF,KAAK4K,IAAI44E,EAAW72B,EAAMA,EAAO42B,GAErCh4D,EAAKxgB,IAAKwgB,EAAI,CAOnB,GANA+3D,GAAYD,EAAY/V,EAAM/hD,GAAI14B,MAC9BwwF,EAAYE,IAAUA,EAAWF,GACjCA,EAAYG,IAAUA,EAAWH,GACrC12B,EAAO22B,EAAWA,EAAWt1B,GAC7By1B,EAAWzjF,KAAK4K,IAAI44E,EAAW72B,EAAMA,EAAO42B,IAE7BG,EAAU,CACvBJ,GAAYD,EACZ,MAGFK,EAAWD,EAIbE,EAAK7vF,KAAKsnC,EAAM,CACdvoC,MAAOywF,EACPM,KAAMj/D,EAAKC,EACXrY,SAAU+gE,EAAMx3E,MAAMw1B,EAAIC,KAExB6P,EAAIwoD,KAAM,GAAYxoD,EAAKlX,EAAIC,EAAIC,EAAIvxB,EAAQsxB,GAAMS,EAAK0+D,EAAWzwF,EAAQwxB,GAAS,GAAa+W,EAAKlX,EAAIC,EAAItxB,EAAQqxB,GAAMS,EAAK2+D,EAAWzwF,EAAQuxB,EAAIC,GAC9JxxB,GAASywF,EAAUh4D,EAAKC,EAG1B,OAAOo4D,EAEM,qBACb,SAASE,EAASjhE,EAAQsB,EAAIC,EAAIC,EAAIC,GACpC8+D,GAAcC,EAAOxgE,EAAQsB,EAAIC,EAAIC,EAAIC,GAO3C,OAJAw/D,EAAST,MAAQ,SAAU/mF,GACzB,OAAO2wD,GAAQ3wD,GAAKA,GAAK,EAAIA,EAAI,IAG5BwnF,EATM,CAUZX,ICpEY,iBACb,SAASY,EAAWlhE,EAAQsB,EAAIC,EAAIC,EAAIC,GACtC,IAAKs/D,EAAO/gE,EAAOmhE,YAAcJ,EAAKP,QAAUA,EAU9C,IATA,IAAIO,EACAvoD,EACAkyC,EACAxwE,EAEAiO,EADA4K,GAAK,EAEL4T,EAAIo6D,EAAK/vF,OACTf,EAAQ+vB,EAAO/vB,QAEV8iB,EAAI4T,GAAG,CAGd,IAFe+jD,GAAflyC,EAAMuoD,EAAKhuE,IAAgBpJ,SAEtBzP,EAAIs+B,EAAIvoC,MAAQ,EAAGkY,EAAIuiE,EAAM15E,OAAQkJ,EAAIiO,IAAKjO,EACjDs+B,EAAIvoC,OAASy6E,EAAMxwE,GAAGjK,MAGpBuoC,EAAIwoD,KAAM,GAAYxoD,EAAKlX,EAAIC,EAAIC,EAAID,IAAOE,EAAKF,GAAMiX,EAAIvoC,MAAQA,GAAY,GAAauoC,EAAKlX,EAAIC,EAAID,IAAOE,EAAKF,GAAMkX,EAAIvoC,MAAQA,EAAOwxB,GACpJxxB,GAASuoC,EAAIvoC,WAGf+vB,EAAOmhE,UAAYJ,EAAOR,GAAcC,EAAOxgE,EAAQsB,EAAIC,EAAIC,EAAIC,GACnEs/D,EAAKP,MAAQA,EAQjB,OAJAU,EAAWV,MAAQ,SAAU/mF,GAC3B,OAAO2wD,GAAQ3wD,GAAKA,GAAK,EAAIA,EAAI,IAG5BynF,EAhCM,CAiCZZ,ICpCQ,GAAQntF,MAAM9C,UAAU6C,MCCpB,mBAOb,IANA,IAGI4sB,EACAlrB,EAJAsF,EAAI,EACJiO,GAAKiuE,EDFJ,SAAiBl1E,GAKtB,IAJA,IACIy0B,EACAz7B,EAFAysB,EAAIzlB,EAAMlQ,OAIP21B,GACLzsB,EAAIkD,KAAKw7B,SAAWjS,IAAM,EAC1BgP,EAAIz0B,EAAMylB,GACVzlB,EAAMylB,GAAKzlB,EAAMhH,GACjBgH,EAAMhH,GAAKy7B,EAGb,OAAOz0B,ECVY,CAAQ,GAAMxQ,KAAK0lF,KAAWplF,OAC7CowF,EAAI,GAIDlnF,EAAIiO,GACT2X,EAAIs2D,EAAQl8E,GACRtF,GAAKysF,GAAazsF,EAAGkrB,KAAM5lB,GAAOtF,EAAI0sF,GAAaF,EAAIG,GAAYH,EAAGthE,IAAK5lB,EAAI,GAGrF,OAAOtF,GAGT,SAAS2sF,GAAYH,EAAGthE,GACtB,IAAI5lB,EAAG6Y,EACP,GAAIyuE,GAAgB1hE,EAAGshE,GAAI,MAAO,CAACthE,GAEnC,IAAK5lB,EAAI,EAAGA,EAAIknF,EAAEpwF,SAAUkJ,EAC1B,GAAIunF,GAAY3hE,EAAGshE,EAAElnF,KAAOsnF,GAAgBE,GAAcN,EAAElnF,GAAI4lB,GAAIshE,GAClE,MAAO,CAACA,EAAElnF,GAAI4lB,GAKlB,IAAK5lB,EAAI,EAAGA,EAAIknF,EAAEpwF,OAAS,IAAKkJ,EAC9B,IAAK6Y,EAAI7Y,EAAI,EAAG6Y,EAAIquE,EAAEpwF,SAAU+hB,EAC9B,GAAI0uE,GAAYC,GAAcN,EAAElnF,GAAIknF,EAAEruE,IAAK+M,IAAM2hE,GAAYC,GAAcN,EAAElnF,GAAI4lB,GAAIshE,EAAEruE,KAAO0uE,GAAYC,GAAcN,EAAEruE,GAAI+M,GAAIshE,EAAElnF,KAAOsnF,GAAgBG,GAAcP,EAAElnF,GAAIknF,EAAEruE,GAAI+M,GAAIshE,GACvL,MAAO,CAACA,EAAElnF,GAAIknF,EAAEruE,GAAI+M,GAM1B,MAAM,IAAItjB,MAGZ,SAASilF,GAAY5tF,EAAGC,GACtB,IAAI8tF,EAAK/tF,EAAE6tB,EAAI5tB,EAAE4tB,EACbK,EAAKjuB,EAAE2F,EAAI5F,EAAE4F,EACbuoB,EAAKluB,EAAEuvB,EAAIxvB,EAAEwvB,EACjB,OAAOu+D,EAAK,GAAKA,EAAKA,EAAK7/D,EAAKA,EAAKC,EAAKA,EAG5C,SAASq/D,GAAaxtF,EAAGC,GACvB,IAAI8tF,EAAK/tF,EAAE6tB,EAAI5tB,EAAE4tB,EAAI,KACjBK,EAAKjuB,EAAE2F,EAAI5F,EAAE4F,EACbuoB,EAAKluB,EAAEuvB,EAAIxvB,EAAEwvB,EACjB,OAAOu+D,EAAK,GAAKA,EAAKA,EAAK7/D,EAAKA,EAAKC,EAAKA,EAG5C,SAASw/D,GAAgB3tF,EAAGutF,GAC1B,IAAK,IAAIlnF,EAAI,EAAGA,EAAIknF,EAAEpwF,SAAUkJ,EAC9B,IAAKmnF,GAAaxtF,EAAGutF,EAAElnF,IACrB,OAAO,EAIX,OAAO,EAGT,SAASonF,GAAaF,GACpB,OAAQA,EAAEpwF,QACR,KAAK,EACH,MAWG,CACLyI,GAFmB5F,EAVIutF,EAAE,IAYpB3nF,EACL4pB,EAAGxvB,EAAEwvB,EACL3B,EAAG7tB,EAAE6tB,GAZL,KAAK,EACH,OAAOggE,GAAcN,EAAE,GAAIA,EAAE,IAE/B,KAAK,EACH,OAAOO,GAAcP,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAIzC,IAAuBvtF,EAQvB,SAAS6tF,GAAc7tF,EAAGC,GACxB,IAAI0tB,EAAK3tB,EAAE4F,EACPgoB,EAAK5tB,EAAEwvB,EACPga,EAAKxpC,EAAE6tB,EACP88B,EAAK1qD,EAAE2F,EACPglD,EAAK3qD,EAAEuvB,EACPw+D,EAAK/tF,EAAE4tB,EACPi9B,EAAMH,EAAKh9B,EACXo9B,EAAMH,EAAKh9B,EACXqgE,EAAMD,EAAKxkD,EACXzzB,EAAIxM,KAAKinB,KAAKs6B,EAAMA,EAAMC,EAAMA,GACpC,MAAO,CACLnlD,GAAI+nB,EAAKg9B,EAAKG,EAAM/0C,EAAIk4E,GAAO,EAC/Bz+D,GAAI5B,EAAKg9B,EAAKG,EAAMh1C,EAAIk4E,GAAO,EAC/BpgE,GAAI9X,EAAIyzB,EAAKwkD,GAAM,GAIvB,SAASF,GAAc9tF,EAAGC,EAAGq0B,GAC3B,IAAI3G,EAAK3tB,EAAE4F,EACPgoB,EAAK5tB,EAAEwvB,EACPga,EAAKxpC,EAAE6tB,EACP88B,EAAK1qD,EAAE2F,EACPglD,EAAK3qD,EAAEuvB,EACPw+D,EAAK/tF,EAAE4tB,EACPi/B,EAAKx4B,EAAE1uB,EACPmnD,EAAKz4B,EAAE9E,EACP0+D,EAAK55D,EAAEzG,EACPsgE,EAAKxgE,EAAKg9B,EACVyjC,EAAKzgE,EAAKm/B,EACVuhC,EAAKzgE,EAAKg9B,EACV0jC,EAAK1gE,EAAKm/B,EACVwhC,EAAKP,EAAKxkD,EACVglD,EAAKN,EAAK1kD,EACVF,EAAK3b,EAAKA,EAAKC,EAAKA,EAAK4b,EAAKA,EAC9B9V,EAAK4V,EAAKqhB,EAAKA,EAAKC,EAAKA,EAAKojC,EAAKA,EACnCS,EAAKnlD,EAAKwjB,EAAKA,EAAKC,EAAKA,EAAKmhC,EAAKA,EACnCQ,EAAKN,EAAKC,EAAKF,EAAKG,EACpBK,GAAMN,EAAKI,EAAKH,EAAK56D,IAAY,EAALg7D,GAAU/gE,EACtCihE,GAAMN,EAAKC,EAAKF,EAAKG,GAAME,EAC3BG,GAAMT,EAAK16D,EAAKy6D,EAAKM,IAAY,EAALC,GAAU9gE,EACtCkhE,GAAMX,EAAKK,EAAKJ,EAAKG,GAAMG,EAC3B9zC,EAAIg0C,EAAKA,EAAKE,EAAKA,EAAK,EACxBvB,EAAI,GAAK/jD,EAAKmlD,EAAKC,EAAKC,EAAKC,GAC7BpjE,EAAIijE,EAAKA,EAAKE,EAAKA,EAAKrlD,EAAKA,EAC7B3b,IAAM+sB,GAAK2yC,EAAIhkF,KAAKinB,KAAK+8D,EAAIA,EAAI,EAAI3yC,EAAIlvB,KAAO,EAAIkvB,GAAKlvB,EAAI6hE,GACjE,MAAO,CACL3nF,EAAG+nB,EAAKghE,EAAKC,EAAK/gE,EAClB2B,EAAG5B,EAAKihE,EAAKC,EAAKjhE,EAClBA,EAAGA,GCnIP,SAASkhE,GAAM9uF,EAAGD,EAAGs0B,GACnB,IACI1uB,EACAuoF,EAEA3+D,EACA6+D,EALAngE,EAAKjuB,EAAE2F,EAAI5F,EAAE4F,EAGbuoB,EAAKluB,EAAEuvB,EAAIxvB,EAAEwvB,EAGbkE,EAAKxF,EAAKA,EAAKC,EAAKA,EAEpBuF,GACFy6D,EAAKnuF,EAAE6tB,EAAIyG,EAAEzG,EAAGsgE,GAAMA,EACtBE,EAAKpuF,EAAE4tB,EAAIyG,EAAEzG,EAETsgE,GAFYE,GAAMA,IAGpBzoF,GAAK8tB,EAAK26D,EAAKF,IAAO,EAAIz6D,GAC1BlE,EAAIjmB,KAAKinB,KAAKjnB,KAAK4K,IAAI,EAAGk6E,EAAK36D,EAAK9tB,EAAIA,IACxC0uB,EAAE1uB,EAAI3F,EAAE2F,EAAIA,EAAIsoB,EAAKsB,EAAIrB,EACzBmG,EAAE9E,EAAIvvB,EAAEuvB,EAAI5pB,EAAIuoB,EAAKqB,EAAItB,IAEzBtoB,GAAK8tB,EAAKy6D,EAAKE,IAAO,EAAI36D,GAC1BlE,EAAIjmB,KAAKinB,KAAKjnB,KAAK4K,IAAI,EAAGg6E,EAAKz6D,EAAK9tB,EAAIA,IACxC0uB,EAAE1uB,EAAI5F,EAAE4F,EAAIA,EAAIsoB,EAAKsB,EAAIrB,EACzBmG,EAAE9E,EAAIxvB,EAAEwvB,EAAI5pB,EAAIuoB,EAAKqB,EAAItB,KAG3BoG,EAAE1uB,EAAI5F,EAAE4F,EAAI0uB,EAAEzG,EACdyG,EAAE9E,EAAIxvB,EAAEwvB,GAIZ,SAASw/D,GAAWhvF,EAAGC,GACrB,IAAI8tF,EAAK/tF,EAAE6tB,EAAI5tB,EAAE4tB,EAAI,KACjBK,EAAKjuB,EAAE2F,EAAI5F,EAAE4F,EACbuoB,EAAKluB,EAAEuvB,EAAIxvB,EAAEwvB,EACjB,OAAOu+D,EAAK,GAAKA,EAAKA,EAAK7/D,EAAKA,EAAKC,EAAKA,EAG5C,SAAS8gE,GAAMzjE,GACb,IAAIxrB,EAAIwrB,EAAK9lB,EACTzF,EAAIurB,EAAK1G,KAAKpf,EACdgpF,EAAK1uF,EAAE6tB,EAAI5tB,EAAE4tB,EACbK,GAAMluB,EAAE4F,EAAI3F,EAAE4tB,EAAI5tB,EAAE2F,EAAI5F,EAAE6tB,GAAK6gE,EAC/BvgE,GAAMnuB,EAAEwvB,EAAIvvB,EAAE4tB,EAAI5tB,EAAEuvB,EAAIxvB,EAAE6tB,GAAK6gE,EACnC,OAAOxgE,EAAKA,EAAKC,EAAKA,EAGxB,SAAS,GAAKoC,GACZ50B,KAAK+J,EAAI6qB,EACT50B,KAAKmpB,KAAO,KACZnpB,KAAKu1B,SAAW,KAGX,SAASg+D,GAAY3M,GAC1B,KAAMjuE,EAAIiuE,EAAQplF,QAAS,OAAO,EAClC,IAAI6C,EAAGC,EAAGq0B,EAAGhgB,EAAG66E,EAAIC,EAAI/oF,EAAG6Y,EAAG7D,EAAGg0E,EAAIv1B,EAGrC,IADA95D,EAAIuiF,EAAQ,IAAM38E,EAAI,EAAG5F,EAAEwvB,EAAI,IACzBlb,EAAI,GAAI,OAAOtU,EAAE6tB,EAGvB,GADA5tB,EAAIsiF,EAAQ,GAAIviF,EAAE4F,GAAK3F,EAAE4tB,EAAG5tB,EAAE2F,EAAI5F,EAAE6tB,EAAG5tB,EAAEuvB,EAAI,IACvClb,EAAI,GAAI,OAAOtU,EAAE6tB,EAAI5tB,EAAE4tB,EAE7BkhE,GAAM9uF,EAAGD,EAAGs0B,EAAIiuD,EAAQ,IAExBviF,EAAI,IAAI,GAAKA,GAAIC,EAAI,IAAI,GAAKA,GAAIq0B,EAAI,IAAI,GAAKA,GAC/Ct0B,EAAE8kB,KAAOwP,EAAEpD,SAAWjxB,EACtBA,EAAE6kB,KAAO9kB,EAAEkxB,SAAWoD,EACtBA,EAAExP,KAAO7kB,EAAEixB,SAAWlxB,EAEtBsvF,EAAM,IAAKjpF,EAAI,EAAGA,EAAIiO,IAAKjO,EAAG,CAC5B0oF,GAAM/uF,EAAE0F,EAAGzF,EAAEyF,EAAG4uB,EAAIiuD,EAAQl8E,IAAKiuB,EAAI,IAAI,GAAKA,GAI9CpV,EAAIjf,EAAE6kB,KAAMzJ,EAAIrb,EAAEkxB,SAAUm+D,EAAKpvF,EAAEyF,EAAEmoB,EAAGisC,EAAK95D,EAAE0F,EAAEmoB,EAEjD,GACE,GAAIwhE,GAAMv1B,EAAI,CACZ,GAAIk1B,GAAW9vE,EAAExZ,EAAG4uB,EAAE5uB,GAAI,CACxBzF,EAAIif,EAAGlf,EAAE8kB,KAAO7kB,EAAGA,EAAEixB,SAAWlxB,IAAKqG,EACrC,SAASipF,EAGXD,GAAMnwE,EAAExZ,EAAEmoB,EAAG3O,EAAIA,EAAE4F,SACd,CACL,GAAIkqE,GAAW3zE,EAAE3V,EAAG4uB,EAAE5uB,GAAI,EACxB1F,EAAIqb,GAAKyJ,KAAO7kB,EAAGA,EAAEixB,SAAWlxB,IAAKqG,EACrC,SAASipF,EAGXx1B,GAAMz+C,EAAE3V,EAAEmoB,EAAGxS,EAAIA,EAAE6V,gBAEdhS,IAAM7D,EAAEyJ,MAOjB,IAJAwP,EAAEpD,SAAWlxB,EAAGs0B,EAAExP,KAAO7kB,EAAGD,EAAE8kB,KAAO7kB,EAAEixB,SAAWjxB,EAAIq0B,EAEtD66D,EAAKF,GAAMjvF,IAEHs0B,EAAIA,EAAExP,QAAU7kB,IACjBmvF,EAAKH,GAAM36D,IAAM66D,IACpBnvF,EAAIs0B,EAAG66D,EAAKC,GAIhBnvF,EAAID,EAAE8kB,KAMR,IAFA9kB,EAAI,CAACC,EAAEyF,GAAI4uB,EAAIr0B,GAEPq0B,EAAIA,EAAExP,QAAU7kB,GACtBD,EAAE3C,KAAKi3B,EAAE5uB,GAKX,IAFA4uB,EAAIi7D,GAAQvvF,GAEPqG,EAAI,EAAGA,EAAIiO,IAAKjO,GACnBrG,EAAIuiF,EAAQl8E,IAAMT,GAAK0uB,EAAE1uB,EAAG5F,EAAEwvB,GAAK8E,EAAE9E,EAGvC,OAAO8E,EAAEzG,EC3HJ,SAAS2hE,GAAS9pD,GACvB,OAAY,MAALA,EAAY,KAAO+pD,GAAS/pD,GAE9B,SAAS+pD,GAAS/pD,GACvB,GAAiB,mBAANA,EAAkB,MAAM,IAAI/8B,MACvC,OAAO+8B,ECLF,SAASgqD,KACd,OAAO,EAEM,mBACb,OAAO,WACL,OAAO9pF,ICDX,SAAS+pF,GAAcviF,GACrB,OAAO7D,KAAKinB,KAAKpjB,EAAEhR,OAoCrB,SAASwzF,GAAWh7D,GAClB,OAAO,SAAUpJ,GACVA,EAAK1V,WACR0V,EAAKqC,EAAItkB,KAAK4K,IAAI,GAAIygB,EAAOpJ,IAAS,KAK5C,SAASqkE,GAAaziD,EAAS/xB,GAC7B,OAAO,SAAUmQ,GACf,GAAI1V,EAAW0V,EAAK1V,SAAU,CAC5B,IAAIA,EACAzP,EAGAtF,EAFAuT,EAAIwB,EAAS3Y,OACb0wB,EAAIuf,EAAQ5hB,GAAQnQ,GAAK,EAE7B,GAAIwS,EAAG,IAAKxnB,EAAI,EAAGA,EAAIiO,IAAKjO,EAC1ByP,EAASzP,GAAGwnB,GAAKA,EAGnB,GADA9sB,EAAImuF,GAAYp5E,GACZ+X,EAAG,IAAKxnB,EAAI,EAAGA,EAAIiO,IAAKjO,EAC1ByP,EAASzP,GAAGwnB,GAAKA,EAEnBrC,EAAKqC,EAAI9sB,EAAI8sB,IAKnB,SAASiiE,GAAez0E,GACtB,OAAO,SAAUmQ,GACf,IAAIW,EAASX,EAAKW,OAClBX,EAAKqC,GAAKxS,EAEN8Q,IACFX,EAAK5lB,EAAIumB,EAAOvmB,EAAIyV,EAAImQ,EAAK5lB,EAC7B4lB,EAAKgE,EAAIrD,EAAOqD,EAAInU,EAAImQ,EAAKgE,ICxEpB,ICJX,GAAWjzB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAyBLqtF,GAAiB,CAAC,aAAc,cAAe,QAAS,eAAgB,gBAAiB,UAAW,KAAM,KAAM,KAAM,KAAM,KA4DjH,OA1Df,SAASC,EAAY3uF,GACnB,IAAIikC,EAAYjkC,EAAMikC,UAClBmvC,EAAWpzE,EAAMozE,SACjBwb,EAAO5uF,EAAM4uF,KACbzkE,EAAOnqB,EAAMmqB,KACb0kE,EAAc7uF,EAAM6uF,YACpBC,EAAkB9uF,EAAM8uF,gBACxBC,EAAiB/uF,EAAM+uF,eACvBviE,EAAIxsB,EAAMwsB,EACVwjD,EAAShwE,EAAMgwE,OACf5jD,EAAKpsB,EAAMosB,GACXE,EAAKtsB,EAAMssB,GACXD,EAAKrsB,EAAMqsB,GACXE,EAAKvsB,EAAMusB,GACXhsB,EAAQP,EAAMO,MAElB,GAAI0jC,EACF,OAAO,IAAMC,cAAc,GAAW,GAAS,GAAIlkC,EAAO,CACxDoiC,cAAessD,KACb,IAAMxqD,cAAcyqD,EAAa,GAAS,GAAI3uF,EAAO,CACvDikC,UAAW,SAIf,IAAI+qD,EAA4B,eAATJ,EACnBjuC,EAAaqvB,EAAOxvE,MAAM2pB,GAC1B+U,EAAU8wC,EAAO9wC,QAAQ/U,GACzB3pB,EAAQkgD,GAA2BC,GAEnCojB,EAAQqP,EADDjpD,EAAKvuB,MAGZqzF,EAAY,GAAS,CACvB5qC,IAAK2qC,EAAmB3iE,EAAKG,EAAIH,EACjCb,KAAMwjE,EAAmB5iE,EAAKI,EAAIJ,EAClCmd,MAAOylD,EAAuB,EAAJxiE,EAAQF,EAAKF,EACvCi1B,OAAQ2tC,EAAuB,EAAJxiE,EAAQD,EAAKF,EACxCs0B,WAAYA,EACZzhB,QAASA,EACT1+B,MAAOA,GACND,EAAO4pB,EAAKvuB,KAAK2E,OAEpB,OAAO,IAAM2jC,cAAc,MAAO,CAChCjkC,UAAW,qBAAuB+uF,EAAmB,2BAA6B,IAClFlpB,aAAc,SAAsBzjB,GAClC,OAAOysC,EAAgB3kE,EAAMk4B,IAE/B0jB,aAAc,SAAsB1jB,GAClC,OAAO0sC,EAAe5kE,EAAMk4B,IAE9B4N,QAAS,SAAiB5N,GACxB,OAAOwsC,EAAY1kE,EAAMk4B,IAE3B9hD,MAAO0uF,GACN,IAAM/qD,cAAc,MAAO,CAC5BjkC,UAAW,6BACV8jE,KC7FD,GAAW7oE,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAyBT,SAAS6tF,GAAWlvF,GAClB,IAAIikC,EAAYjkC,EAAMikC,UAClBhkC,EAAYD,EAAMC,UAClBohD,EAASrhD,EAAMqhD,OACfwjC,EAAe7kF,EAAM6kF,aACrBzR,EAAWpzE,EAAMozE,SACjBwb,EAAO5uF,EAAM4uF,KACbpZ,EAAQx1E,EAAMw1E,MACdjsC,EAAQvpC,EAAMupC,MACdymC,EAAShwE,EAAMgwE,OACfzvE,EAAQP,EAAMO,MACdyuF,EAA4B,eAATJ,EACvB,OAAO,IAAM1qD,cAAc,MAAO,CAChCjkC,UAAW,eAAiB+uF,EAAmB,2BAA6B,IAAM,IAAM/uF,EACxFM,MAAO,CACL8gD,OAAQA,EACR9X,MAAOA,IAERisC,EAAMt1E,KAAI,SAAUiqB,EAAMtsB,GAE3B,GAAIgnF,IAAiBhnF,EACnB,OAAO,KAGT,IAAIsxF,EAAY,GAAS,CACvBlrD,UAAWA,EACX9Z,KAAMA,EACNipD,SAAUA,GACTpzE,EAAO,CACRosB,GAAI4iE,EAAmB7kE,EAAK5lB,EAAI4lB,EAAKiC,GACrCE,GAAI0iE,EAAmB7kE,EAAK5lB,EAAI4lB,EAAKmC,GACrCD,GAAI2iE,EAAmB7kE,EAAKgE,EAAIhE,EAAKkC,GACrCE,GAAIyiE,EAAmB7kE,EAAKgE,EAAIhE,EAAKoC,GACrCC,EAAGwiE,EAAmB7kE,EAAKqC,EAAI,EAC/BwjD,OAAQA,EACRzvE,MAAOA,IAGT,OAAO,IAAM2jC,cAAc,GAAa,GAAS,GAAIirD,EAAW,CAC9D90F,IAAK,QAAUwD,SAKrBqxF,GAAW/qD,YAAc,aACV,UC/EX,GAAWjpC,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS,GAAgB4C,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAIxB,SAAS,GAA2B2O,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA2C5E,IAEI,GAAa,SAAU4jB,GAGzB,SAASgwE,IAGP,OAFA,GAAgB90F,KAAM80F,GAEf,GAA2B90F,MAAO80F,EAAW/oF,WAAanL,OAAOkL,eAAegpF,IAAaxtF,MAAMtH,KAAMiB,YAoLlH,OApOF,SAAmBsmB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA8B3G,CAAUstE,EAAYhwE,GAQtB,GAAagwE,EAAY,CAAC,CACxB/0F,IAAK,mBACLU,MAAO,WACL,IAAI2nB,EAASpoB,KAAK0F,MACdikC,EAAYvhB,EAAOuhB,UACnB4gD,EAAeniE,EAAOmiE,aACtBrP,EAAQ9yD,EAAO8yD,MACfsZ,EAAkBpsE,EAAOosE,gBACzBC,EAAiBrsE,EAAOqsE,eACxBF,EAAcnsE,EAAOmsE,YACrB7e,EAASttD,EAAOstD,OAChBzvE,EAAQmiB,EAAOniB,MAEf8uF,EAAgB7Z,EAAMhzC,QAAO,SAAUye,EAAK92B,EAAMtsB,GACpD,IAAKA,GAASgnF,EACZ,OAAO5jC,EAGT,IAAI18C,EAAI4lB,EAAK5lB,EACT4pB,EAAIhE,EAAKgE,EACT3B,EAAIrC,EAAKqC,EACb,MAAO,CACL8iE,KAAMpnF,KAAK4K,IAAIqb,EAAI3B,EAAGy0B,EAAIquC,MAC1BC,KAAMrnF,KAAKm3B,IAAIlR,EAAI3B,EAAGy0B,EAAIsuC,MAC1BC,KAAMtnF,KAAK4K,IAAIvO,EAnCL,IAmCyBioB,EAAGy0B,EAAIuuC,MAC1CC,KAAMvnF,KAAKm3B,IAAI96B,EApCL,IAoCyBioB,EAAGy0B,EAAIwuC,MAC1C5D,KAAM5qC,EAAI4qC,KAAK5nF,OAAO,CAAC,CACrBM,EAAGA,EACH4pB,EAAGA,EACHlyB,KAAMuwB,EACNhsB,MAAOwvE,EAAOxvE,MAAM2pB,SAGvB,CACD0hE,KAAM,GACNyD,MAAOv+D,IACPw+D,KAAMx+D,IACNy+D,MAAOz+D,IACP0+D,KAAM1+D,MAEJ86D,EAAOwD,EAAcxD,KACrB0D,EAAOF,EAAcE,KACrBD,EAAOD,EAAcC,KACrBG,EAAOJ,EAAcI,KACrBD,EAAOH,EAAcG,KAEzB,MAAO,CACLE,aAAc,IAAMxrD,cAAc,GAAY,CAC5CD,UAAWA,EACXhkC,UAAW,4CACX0vF,mBAAoBb,EACpBc,mBAAoBb,EACpBntC,cAAeitC,EACfjzF,KAAMiwF,EACNrI,UAAW,UACX2H,SAAU,SAAkBp/E,GAC1B,OAAOA,EAAEvL,OAEXqvF,SAAU,UACVrF,QAAS,SAAiBz+E,GACxB,OAAOA,EAAE9P,MAEXsE,MAAOA,IAETgvF,KAAMA,EACND,KAAMA,EACNG,KAAMA,EACND,KAAMA,KAGT,CACDn1F,IAAK,sBACLU,MAAO,WACL,IAAIsoD,EAAU/oD,KAAK0F,MACfikC,EAAYof,EAAQpf,UACpB4gD,EAAexhC,EAAQwhC,aACvBrP,EAAQnyB,EAAQmyB,MAChBsZ,EAAkBzrC,EAAQyrC,gBAC1BC,EAAiB1rC,EAAQ0rC,eACzBF,EAAcxrC,EAAQwrC,YACtB7e,EAAS3sB,EAAQ2sB,OACjBzvE,EAAQ8iD,EAAQ9iD,MAChBC,EAAQwvE,EAAOxvE,MACnB,OAAOg1E,EAAMhzC,QAAO,SAAUye,EAAK92B,EAAMtsB,GACvC,IAAKA,GAASgnF,EACZ,OAAO5jC,EAGT,IAAI70B,EAAKjC,EAAKiC,GACVE,EAAKnC,EAAKmC,GACVC,EAAKpC,EAAKoC,GACVF,EAAKlC,EAAKkC,GACV9nB,EAAI6nB,EACJ+B,EAAI9B,EACJyjE,EAAavjE,EAAKF,EAClBy7D,EAAYx7D,EAAKF,EACrB60B,EAAIquC,KAAOpnF,KAAK4K,IAAIqb,EAAI2hE,EAAY7uC,EAAIquC,MACxCruC,EAAIsuC,KAAOrnF,KAAKm3B,IAAIlR,EAAG8yB,EAAIsuC,MAC3BtuC,EAAIuuC,KAAOtnF,KAAK4K,IAAIvO,EAAIujF,EAAW7mC,EAAIuuC,MACvCvuC,EAAIwuC,KAAOvnF,KAAKm3B,IAAI96B,EAAG08C,EAAIwuC,MAC3B,IAAI7zF,EAAO,CAAC,CACV2I,EAAGA,EACH4pB,EAAGA,GACF,CACD5pB,EAAGA,EACH4pB,EAAGA,EAAI2hE,GACN,CACDvrF,EAAGA,EAAIujF,EACP35D,EAAGA,EAAI2hE,GACN,CACDvrF,EAAGA,EAAIujF,EACP35D,EAAGA,IAcL,OAZA8yB,EAAIyuC,aAAezuC,EAAIyuC,aAAazrF,OAAO,CAAC,IAAMigC,cAAc,GAAe,CAC7ED,UAAWA,EACXhkC,UAAW,mBACX5F,IAAKwD,EACL2C,MAAOA,EAAM2pB,GACb/kB,KAAM,UACNuqF,mBAAoBb,EACpBc,mBAAoBb,EACpBntC,cAAeitC,EACfjzF,KAAMA,EACN2E,MAAO,GAAS,GAAIA,EAAO4pB,EAAK5pB,WAE3B0gD,IACN,CACDyuC,aAAc,GACdJ,MAAOv+D,IACPw+D,KAAMx+D,IACNy+D,MAAOz+D,IACP0+D,KAAM1+D,QAGT,CACD12B,IAAK,SACLU,MAAO,WACL,IAAIwpD,EAAUjqD,KAAK0F,MACfC,EAAYskD,EAAQtkD,UACpBohD,EAASkD,EAAQlD,OACjButC,EAAOrqC,EAAQqqC,KACfpZ,EAAQjxB,EAAQixB,MAChBjsC,EAAQgb,EAAQhb,MAChBylD,EAA4B,eAATJ,EAEnB5rD,EAAOgsD,EAAmB10F,KAAKy1F,mBAAqBz1F,KAAK01F,sBACzDT,EAAOvsD,EAAKusD,KACZD,EAAOtsD,EAAKssD,KACZG,EAAOzsD,EAAKysD,KACZD,EAAOxsD,EAAKwsD,KACZE,EAAe1sD,EAAK0sD,aAEpBtM,EAAS5N,EAAMhzC,QAAO,SAAUye,EAAK92B,GACvC,OAAKA,EAAKvuB,KAAKmoE,MAIR9iB,EAAIh9C,OAAO,GAAS,GAAIkmB,EAAKvuB,KAAM,CACxC2I,EAAG4lB,EAAKiC,IAAMjC,EAAK5lB,EACnB4pB,EAAGhE,EAAKkC,IAAMlC,EAAKgE,EACnB6lD,MAAO,GAAK7pD,EAAKvuB,KAAKmoE,SANf9iB,IAQR,IACH,OAAO,IAAM/c,cAAc,GAAQ,GAAS,CAC1CjkC,UAAW,eAAiB+uF,EAAmB,2BAA6B,IAAM,IAAM/uF,EACxFspC,MAAOA,EACP8X,OAAQA,EACRiiC,QAAS,CAACgM,EAAMC,GAChB/K,QAAS,CAACiL,EAAMD,GAChBhM,UAAW,UACX1I,kBAAkB,GACjBxgF,KAAK0F,OAAQ0vF,EAAc,IAAMxrD,cAAc,GAAa,CAC7DtoC,KAAMwnF,SAKLgM,EA1LQ,CA2Lf,IAAM7rE,WAER,GAAW4gB,YAAc,aACV,UCtRX,GAAe,WACjB,SAASt/B,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAkBf,GAAWxhB,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GA4DT,IAAI4uF,GAAqB,CACvBlE,SAAU,GACVC,WAAY,GACZhuF,MAAO,GACP8tF,KAAM,GACNoE,UC9Fa,qBACG,EAAfplE,EAAOyb,MAAY,GAAQulD,IAAMhhE,EAAQsB,EAAIC,EAAIC,EAAIC,ID8FtD4jE,OEjGa,oBACb,IACInrF,EAEAghC,EAHAwvC,EAAQ1qD,EAAOrW,SAEfxB,EAAIuiE,EAAM15E,OAEVg9D,EAAO,IAAI76D,MAAMgV,EAAI,GAEzB,IAAK6lD,EAAK,GAAK9yB,EAAMhhC,EAAI,EAAGA,EAAIiO,IAAKjO,EACnC8zD,EAAK9zD,EAAI,GAAKghC,GAAOwvC,EAAMxwE,GAAGjK,OAKhC,SAASquF,EAAUpkF,EAAG6Y,EAAG9iB,EAAOqxB,EAAIC,EAAIC,EAAIC,GAC1C,GAAIvnB,GAAK6Y,EAAI,EAAG,CACd,IAAIsM,EAAOqrD,EAAMxwE,GAGjB,OAFAmlB,EAAKiC,GAAKA,EAAIjC,EAAKkC,GAAKA,EACxBlC,EAAKmC,GAAKA,OAAInC,EAAKoC,GAAKA,GAI1B,IAAI6jE,EAAct3B,EAAK9zD,GACnBqrF,EAAct1F,EAAQ,EAAIq1F,EAC1Bp2E,EAAIhV,EAAI,EACRy/B,EAAK5mB,EAAI,EAEb,KAAO7D,EAAIyqB,GAAI,CACb,IAAIC,EAAM1qB,EAAIyqB,IAAO,EACjBq0B,EAAKp0B,GAAO2rD,EAAar2E,EAAI0qB,EAAM,EAAOD,EAAKC,EAGjD2rD,EAAcv3B,EAAK9+C,EAAI,GAAK8+C,EAAK9+C,GAAKq2E,GAAerrF,EAAI,EAAIgV,KAAKA,EACtE,IAAIs2E,EAAYx3B,EAAK9+C,GAAKo2E,EACtBG,EAAax1F,EAAQu1F,EAEzB,GAAIhkE,EAAKF,EAAKG,EAAKF,EAAI,CACrB,IAAImkE,GAAMpkE,EAAKmkE,EAAajkE,EAAKgkE,GAAav1F,EAC9CquF,EAAUpkF,EAAGgV,EAAGs2E,EAAWlkE,EAAIC,EAAImkE,EAAIjkE,GACvC68D,EAAUpvE,EAAG6D,EAAG0yE,EAAYC,EAAInkE,EAAIC,EAAIC,OACnC,CACL,IAAIkkE,GAAMpkE,EAAKkkE,EAAahkE,EAAK+jE,GAAav1F,EAC9CquF,EAAUpkF,EAAGgV,EAAGs2E,EAAWlkE,EAAIC,EAAIC,EAAImkE,GACvCrH,EAAUpvE,EAAG6D,EAAG0yE,EAAYnkE,EAAIqkE,EAAInkE,EAAIC,IA/B5C68D,CAAU,EAAGn2E,EAAG6X,EAAO/vB,MAAOqxB,EAAIC,EAAIC,EAAIC,KFyFxC,GAAO,SAAcxgB,GACvB,OAAOA,GAGL,GAAa,CAAC,UAAW,SAc7B,SAAS2kF,GAAa1wF,GACpB,IACIm8C,EADOn8C,EAAMpE,KACE6Y,UAAY,GAG3Bk8E,EAAkB,GAAS,GAAI3wF,EAAOqgD,GAAqBrgD,EAAOm8C,EAAS,IAAa,CAC1F2C,SAAU3C,IAGZ,MAAO,CACLjd,QAASugB,GAAoBkxC,EAAiB,WAC9CnwF,MAAOi/C,GAAoBkxC,EAAiB,UAIhD,IAAI,GAAU,SAAUvxE,GAGtB,SAASwxE,EAAQ5wF,IAtGnB,SAAyBsf,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAqGpB,CAAgBpH,KAAMs2F,GAEtB,IAAIvxE,EAnGR,SAAoChP,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA8F5D,CAA2BlB,MAAOs2F,EAAQvqF,WAAanL,OAAOkL,eAAewqF,IAAUp1F,KAAKlB,KAAM0F,IAK9G,OAHAqf,EAAMS,MAAQ,GAAS,CACrBkwD,OAAQ0gB,GAAa1wF,IACpBk4E,GAAmBl4E,EAAOA,EAAMo4E,SAC5B/4D,EAyFT,OAzLF,SAAmBwC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GAyE3G,CAAU8uE,EAASxxE,GAanB,GAAawxE,EAAS,CAAC,CACrBv2F,IAAK,4BACLU,MAAO,SAAmCiF,GACxC1F,KAAK+lB,SAAS,GAAS,CACrB2vD,OAAQ0gB,GAAa1wF,IACpBk4E,GAAmBl4E,EAAOA,EAAMo4E,YAQpC,CACD/9E,IAAK,oBACLU,MAAO,WACL,IAAIkuB,EAAS3uB,KAAKwlB,MACdqvC,EAAalmC,EAAOkmC,WACpBC,EAAcnmC,EAAOmmC,YACrB1sC,EAASpoB,KAAK0F,MACdpE,EAAO8mB,EAAO9mB,KACdgzF,EAAOlsE,EAAOksE,KACd7iD,EAAUrpB,EAAOqpB,QACjB8kD,EAAenuE,EAAOmuE,aACtBrG,EAAU9nE,EAAO8nE,QAErB,IAAK5uF,EACH,MAAO,GAGT,GAAa,cAATgzF,GAAiC,oBAATA,EAA4B,CACtD,IAMIkC,EANoB,KAAY70F,KAAc,oBAAT2yF,EAA6B,CAACx/B,EAAaD,GAAc,CAACA,EAAYC,IAAcrjB,QAAQA,EAMnH0+C,CAJKlB,GAAU3tF,GAAMoqC,IAAIwkD,GAASjxE,MAAK,SAAU5a,EAAGC,GACpE,OAAOiyF,EAAalyF,EAAGC,EAAG4rF,OAG0BJ,cAEtD,MAAa,oBAATwE,EACKkC,EAAY5wF,KAAI,SAAUiqB,GAC/B,OAAO,GAAS,GAAIA,EAAM,CACxBiC,GAAIjC,EAAKkC,GACTC,GAAInC,EAAKoC,GACTF,GAAIlC,EAAKiC,GACTG,GAAIpC,EAAKmC,QAKRwkE,EAGT,GAAa,eAATlC,EAOF,OLvMO,WACb,IAAIr7D,EAAS,KACT1G,EAAK,EACLC,EAAK,EACLif,EAAUsiD,GAEd,SAASJ,EAAKvhF,GASZ,OARAA,EAAKnI,EAAIsoB,EAAK,EAAGngB,EAAKyhB,EAAIrB,EAAK,EAE3ByG,EACF7mB,EAAK28E,WAAWkF,GAAWh7D,IAASu2D,UAAU0E,GAAaziD,EAAS,KAAMs9C,WAAWoF,GAAe,IAEpG/hF,EAAK28E,WAAWkF,GAAWD,KAAgBxE,UAAU0E,GAAaH,GAAc,IAAIvE,UAAU0E,GAAaziD,EAASr/B,EAAK8f,EAAItkB,KAAKm3B,IAAIxS,EAAIC,KAAMu8D,WAAWoF,GAAevmF,KAAKm3B,IAAIxS,EAAIC,IAAO,EAAIpgB,EAAK8f,KAGlM9f,EAeT,OAZAuhF,EAAK16D,OAAS,SAAUhvB,GACtB,OAAOhJ,UAAUO,QAAUy3B,EAAS46D,GAAS5pF,GAAI0pF,GAAQ16D,GAG3D06D,EAAKhyF,KAAO,SAAUsI,GACpB,OAAOhJ,UAAUO,QAAU+wB,GAAMtoB,EAAE,GAAIuoB,GAAMvoB,EAAE,GAAI0pF,GAAQ,CAACphE,EAAIC,IAGlEmhE,EAAKliD,QAAU,SAAUxnC,GACvB,OAAOhJ,UAAUO,QAAUiwC,EAAuB,mBAANxnC,EAAmBA,EAAI,IAAUA,GAAI0pF,GAAQliD,GAGpFkiD,EKmKqB,GAAOhyF,KAAK,CAACkzD,EAAYC,IAAcrjB,QAAQA,EAM9DglD,CAJiBxH,GAAU3tF,GAAMoqC,IAAIwkD,GAASjxE,MAAK,SAAU5a,EAAGC,GACrE,OAAOiyF,EAAalyF,EAAGC,EAAG4rF,OAGcJ,cAG5C,IAAI4G,EAASf,GAAmBrB,GAKhC,OJnNS,WACb,IAAIqC,EAAOlF,GACPh4D,GAAQ,EACRlH,EAAK,EACLC,EAAK,EACLokE,EAAe,CAAC,GAChBj2C,EAAeozC,GACf8C,EAAa9C,GACb+C,EAAe/C,GACfgD,EAAgBhD,GAChBiD,EAAcjD,GAElB,SAASkD,EAAQ7kF,GAOf,OANAA,EAAK0f,GAAK1f,EAAK2f,GAAK,EACpB3f,EAAK4f,GAAKO,EACVngB,EAAK6f,GAAKO,EACVpgB,EAAK28E,WAAWC,GAChB4H,EAAe,CAAC,GACZn9D,GAAOrnB,EAAK28E,WAAW,IACpB38E,EAGT,SAAS48E,EAAan/D,GACpB,IAAIS,EAAIsmE,EAAa/mE,EAAKoc,OACtBna,EAAKjC,EAAKiC,GAAKxB,EACfyB,EAAKlC,EAAKkC,GAAKzB,EACf0B,EAAKnC,EAAKmC,GAAK1B,EACf2B,EAAKpC,EAAKoC,GAAK3B,EACf0B,EAAKF,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,GAC/BC,EAAKF,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,GACnCpC,EAAKiC,GAAKA,EACVjC,EAAKkC,GAAKA,EACVlC,EAAKmC,GAAKA,EACVnC,EAAKoC,GAAKA,EAENpC,EAAK1V,WACPmW,EAAIsmE,EAAa/mE,EAAKoc,MAAQ,GAAK0U,EAAa9wB,GAAQ,EACxDiC,GAAMklE,EAAYnnE,GAAQS,EAC1ByB,GAAM8kE,EAAWhnE,GAAQS,GACzB0B,GAAM8kE,EAAajnE,GAAQS,GAElBwB,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,IADnCC,GAAM8kE,EAAclnE,GAAQS,GAEnByB,IAAIA,EAAKE,GAAMF,EAAKE,GAAM,GACnC0kE,EAAK9mE,EAAMiC,EAAIC,EAAIC,EAAIC,IA4C3B,OAxCAglE,EAAQx9D,MAAQ,SAAUxvB,GACxB,OAAOhJ,UAAUO,QAAUi4B,IAAUxvB,EAAGgtF,GAAWx9D,GAGrDw9D,EAAQt1F,KAAO,SAAUsI,GACvB,OAAOhJ,UAAUO,QAAU+wB,GAAMtoB,EAAE,GAAIuoB,GAAMvoB,EAAE,GAAIgtF,GAAW,CAAC1kE,EAAIC,IAGrEykE,EAAQN,KAAO,SAAU1sF,GACvB,OAAOhJ,UAAUO,QAAUm1F,EAAO7C,GAAS7pF,GAAIgtF,GAAWN,GAG5DM,EAAQxlD,QAAU,SAAUxnC,GAC1B,OAAOhJ,UAAUO,OAASy1F,EAAQt2C,aAAa12C,GAAGy2C,aAAaz2C,GAAKgtF,EAAQt2C,gBAG9Es2C,EAAQt2C,aAAe,SAAU12C,GAC/B,OAAOhJ,UAAUO,QAAUm/C,EAA4B,mBAAN12C,EAAmBA,EAAI,IAAUA,GAAIgtF,GAAWt2C,GAGnGs2C,EAAQv2C,aAAe,SAAUz2C,GAC/B,OAAOhJ,UAAUO,OAASy1F,EAAQJ,WAAW5sF,GAAG6sF,aAAa7sF,GAAG8sF,cAAc9sF,GAAG+sF,YAAY/sF,GAAKgtF,EAAQJ,cAG5GI,EAAQJ,WAAa,SAAU5sF,GAC7B,OAAOhJ,UAAUO,QAAUq1F,EAA0B,mBAAN5sF,EAAmBA,EAAI,IAAUA,GAAIgtF,GAAWJ,GAGjGI,EAAQH,aAAe,SAAU7sF,GAC/B,OAAOhJ,UAAUO,QAAUs1F,EAA4B,mBAAN7sF,EAAmBA,EAAI,IAAUA,GAAIgtF,GAAWH,GAGnGG,EAAQF,cAAgB,SAAU9sF,GAChC,OAAOhJ,UAAUO,QAAUu1F,EAA6B,mBAAN9sF,EAAmBA,EAAI,IAAUA,GAAIgtF,GAAWF,GAGpGE,EAAQD,YAAc,SAAU/sF,GAC9B,OAAOhJ,UAAUO,QAAUw1F,EAA2B,mBAAN/sF,EAAmBA,EAAI,IAAUA,GAAIgtF,GAAWD,GAG3FC,EIwHsB,GAAgBN,KAAKD,GAAQ/0F,KAAK,CAACkzD,EAAYC,IAAcrjB,QAAQA,EAIvFylD,CAHejI,GAAU3tF,GAAMoqC,IAAIwkD,GAASjxE,MAAK,SAAU5a,EAAGC,GACnE,OAAOiyF,EAAalyF,EAAGC,EAAG4rF,OAEeJ,gBAE5C,CACD/vF,IAAK,SACLU,MAAO,WACL,IAAI02F,EAAan3F,KAAK0F,MAAMyxF,WACxBzhB,EAAS11E,KAAKwlB,MAAMkwD,OAEpBwF,EAAQl7E,KAAKo3F,oBAEbC,EAAgC,QAAfF,EAAuB,GAAa,GACzD,OAAO,IAAMvtD,cAAcytD,EAAgB,GAAS,GAAIr3F,KAAK0F,MAAO,CAClEw1E,MAAOA,EACPxF,OAAQA,SAKP4gB,EApGK,CAqGZ,IAAMrtE,WAER,GAAQ4gB,YAAc,UACtB,GAAQqhB,aAAe,CACrBvlD,UAAW,GACXuiE,WAAY7c,GACZoC,YAAalC,GACbjqD,KAAM,CACJ6Y,SAAU,IAEZowE,cAAc,EACdzM,OA5IoB,CACpB5sD,KAAM,GACNC,MAAO,GACP44B,IAAK,GACL2U,OAAQ,IAyIR41B,KAAM,WACNC,YAAa,GACbC,gBAAiB,GACjBC,eAAgB,GAChBvT,Y1KlOwB,U0KmOxBxzB,c1KlO2B,E0KmO3Bjc,QAAS,EACT8kD,aAAc,SAAsBlyF,EAAGC,EAAGw9C,GACxC,OAAKA,EAIEA,EAASz9C,GAAKy9C,EAASx9C,GAHrB,GAKX4rF,QAAS,SAAiBz+E,GACxB,OAAOA,EAAE9P,MAEXkvF,SAAU,SAAkBp/E,GAC1B,OAAOA,EAAEvL,OAEX4yE,SAAU,SAAkBrnE,GAC1B,OAAOA,EAAEg4D,QAGE,I,wBG9QX,GAAW7oE,OAAOshB,QAAU,SAAUnb,GACxC,IAAK,IAAI2D,EAAI,EAAGA,EAAIzJ,UAAUO,OAAQkJ,IAAK,CACzC,IAAI+P,EAASxZ,UAAUyJ,GAEvB,IAAK,IAAI3K,KAAO0a,EACV7Z,OAAOC,UAAUC,eAAeI,KAAKuZ,EAAQ1a,KAC/CgH,EAAOhH,GAAO0a,EAAO1a,IAK3B,OAAOgH,GAGL,GAAe,WACjB,SAASwD,EAAiBxD,EAAQrB,GAChC,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAMlE,OAAQkJ,IAAK,CACrC,IAAIvF,EAAaO,EAAMgF,GACvBvF,EAAW6E,WAAa7E,EAAW6E,aAAc,EACjD7E,EAAWkF,cAAe,EACtB,UAAWlF,IAAYA,EAAWmF,UAAW,GACjD1J,OAAOiJ,eAAe9C,EAAQ5B,EAAWpF,IAAKoF,IAIlD,OAAO,SAAUid,EAAaC,EAAYC,GAGxC,OAFID,GAAY9X,EAAiB6X,EAAYvhB,UAAWwhB,GACpDC,GAAa/X,EAAiB6X,EAAaE,GACxCF,GAdQ,GAmFnB,IAEIk1E,GAAoB,GAEpBC,GAAY,KAKhB,SAASC,KACP,KAAOC,aAAaF,IACpBA,GAAY,KAAOG,WAAWC,GARR,KAexB,SAASA,KACPL,GAAkB7tF,SAAQ,SAAUmuF,GAClC,OAAOA,OAcX,SAASC,GAA2BD,GAOlC,OANAN,GAAkB51F,KAAKk2F,GAEU,IAA7BN,GAAkB91F,QACpB,KAAOs2F,iBAAiB,SAAUN,IAG7B,YAgBT,SAA0BI,GACxB,IAAIr0F,EAAQ+zF,GAAkBtvD,QAAQ4vD,GAElCr0F,GAAS,GACX+zF,GAAkBjoF,OAAO9L,EAAO,GAnBhCw0F,CAAiBH,GAEgB,IAA7BN,GAAkB91F,SACpB,KAAOi2F,aAAaF,IACpB,KAAOS,oBAAoB,SAAUR,MAmC3C,SAASS,GAAahvE,EAAWivE,EAAiBC,GAChD,IAAIC,EAAc,SAAUtzE,GAgB1B,SAASszE,EAAY1yF,IAvJzB,SAAyBsf,EAAU5C,GACjC,KAAM4C,aAAoB5C,GACxB,MAAM,IAAIhb,UAAU,qCAsJlB,CAAgBpH,KAAMo4F,GAEtB,IAAIrzE,EApJV,SAAoChP,EAAM7U,GACxC,IAAK6U,EACH,MAAM,IAAI5H,eAAe,6DAG3B,OAAOjN,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B6U,EAAP7U,EA+I1D,CAA2BlB,MAAOo4F,EAAYrsF,WAAanL,OAAOkL,eAAessF,IAAcl3F,KAAKlB,KAAM0F,IAoBtH,OAlBAqf,EAAMszE,UAAY,WAChB,IAAIC,EAAmB,aAAWvzE,EAAmB,WACjDwzE,EAAeD,EAAiBC,aAChCC,EAAcF,EAAiBE,YAC/BC,EAAY1zE,EAAMS,MAAMuhC,SAAWwxC,EAAe,GAAK,CACzDxxC,OAAQwxC,GAENG,EAAW3zE,EAAMS,MAAMypB,QAAUupD,EAAc,GAAK,CACtDvpD,MAAOupD,GAGTzzE,EAAMgB,SAAS,GAAS,GAAI0yE,EAAWC,KAGzC3zE,EAAMS,MAAQ,CACZuhC,OAAQ,EACR9X,MAAO,GAEFlqB,EAwDT,OAxNJ,SAAmBwC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpgB,UAAU,kEAAoEogB,GAG1FD,EAAS1mB,UAAYD,OAAO6mB,OAAOD,GAAcA,EAAW3mB,UAAW,CACrEuI,YAAa,CACX3I,MAAO8mB,EACPvd,YAAY,EACZM,UAAU,EACVD,cAAc,KAGdmd,IAAY5mB,OAAO8mB,eAAiB9mB,OAAO8mB,eAAeH,EAAUC,GAAcD,EAASxb,UAAYyb,GA6GzG,CAAU4wE,EAAatzE,GAEvB,GAAaszE,EAAa,KAAM,CAAC,CAC/Br4F,IAAK,YACLyH,IAAK,WACH,IAAImxF,EAAuB1vE,EAAU69B,UACxB6xC,EAAqB5xC,OACtB4xC,EAAqB1pD,MAIjC,OA/JR,SAAkCntC,EAAK+B,GACrC,IAAIkD,EAAS,GAEb,IAAK,IAAI2D,KAAK5I,EACR+B,EAAKmkC,QAAQt9B,IAAM,GAClB9J,OAAOC,UAAUC,eAAeI,KAAKY,EAAK4I,KAC/C3D,EAAO2D,GAAK5I,EAAI4I,IAGlB,OAAO3D,EAmJoB,CAAyB4xF,EAAsB,CAAC,SAAU,cAsCnF,GAAaP,EAAa,CAAC,CACzBr4F,IAAK,oBACLU,MAAO,WACLT,KAAKq4F,YAELr4F,KAAK44F,mBAAqBf,GAA2B73F,KAAKq4F,aAE3D,CACDt4F,IAAK,4BACLU,MAAO,WACLT,KAAKq4F,cAEN,CACDt4F,IAAK,uBACLU,MAAO,WACLT,KAAK44F,uBAEN,CACD74F,IAAK,SACLU,MAAO,WACL,IAAIy0D,EAASl1D,KAET2uB,EAAS3uB,KAAKwlB,MACduhC,EAASp4B,EAAOo4B,OAChB9X,EAAQtgB,EAAOsgB,MAEfvpC,EAAQ,GAAS,GAAI1F,KAAK0F,MAAO,CACnCikC,UAAsB,IAAXod,GAA0B,IAAV9X,EAAc,KAAOjvC,KAAK0F,MAAMikC,YAGzDkvD,EAAoB,GAAS,GAAIV,EAAmB,CACtDpxC,OAAQA,GACN,GAAImxC,EAAkB,CACxBjpD,MAAOA,GACL,IAEJ,OAAO,IAAMrF,cAAc,MAAO,CAChC9e,IAAK,SAAa4d,GAChB,OAAOwsB,EAAoB,UAAIxsB,GAEjCziC,MAAO,CACLgpC,MAAO,OACP8X,OAAQ,SAET,IAAMnd,cAAc3gB,EAAW,GAAS,GAAI4vE,EAAmBnzF,SAI/D0yF,EA/FS,CAgGhB,IAAMnvE,WAGR,OADAmvE,EAAYvuD,YAAc,WA7G5B,SAAwB5gB,GACtB,OAAOA,EAAU4gB,aAAe5gB,EAAUtiB,MAAQ,YA4GXmyF,CAAe7vE,GAC/CmvE,EAYF,IAAIW,GAFFd,GAE0C,IAFlB,GAAM,IAPhC,SAA4BrV,GAC1BqV,GAAarV,GAAW,GAAO,IASNoW,CAAmB,IAP9C,SAAyBpW,GACvBqV,GAAarV,GAAW,GAAM,GAOXqW,CAAgB,I,20BCP7BC,G,YApRb,WAAYxzF,GAAQ,IAAD,SACjB,cAAMA,IAAN,MAsBFyzF,cAAgB,WACd,EAAKpzE,SAAS,CAACqzE,gBAAiB,MAxBf,EA0BnBC,YAAc,SAAC54F,EAAD,GAAqB,IAAZ8C,EAAW,EAAXA,MACrB+1F,EAAY,EAAK5zF,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAE8nF,KAAKh2F,MACjDi2F,EAAgB,GACpB,EAAK9zF,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAACC,EAAUtC,GAAX,OACvBi2F,EAAc93F,KAAK,CAAC+nE,MAAO5jE,EAAS4jE,MAAOhpE,MAAO64F,EAAU/1F,GAAOswB,OAGnE,EAAK9N,SAAS,CAAC0zE,eAAgBD,IAC/B,EAAKzzE,SAAS,CAACqzE,gBAAiB,EAAK1zF,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAE8nF,KAAKh2F,SAhCnE,EAAKiiB,MAAQ,CACX4zE,gBAAiB,GACjBK,eAAgB,GAChBh5F,OAAO,EACPi5F,UAAS,GANM,E,4CASnBC,kBAAA,WAGE,IAFA,IAEA,EAFIC,EAAO,GACPlvF,EAAI,EACR,KAAkB1K,KAAK0F,MAAMpE,QAA7B,aAAkC,CAAC,IAA1BsoE,EAAyB,QAChCgwB,EAAMl4F,KAAK,CAAC+nE,MAAOG,EAAMH,MAAOhf,KAAMmf,EAAM2vB,KAAK7uF,GAAGmpB,IACpDnpB,M,EAKJ8d,kBAAA,a,EAqBFI,OAAA,WAAU,IAAD,OAET,OAAO5oB,KAAK0F,MAAMpE,KAAKu4F,MACvB,IAAK,WACL,IAAK,MACL,IAAK,OAKL,eAAiB75F,KAAK0F,MAAMpE,KAAKi4F,QAAjC,aAAsC,CAAC,IAA9Bj4F,EAA6B,QAId,OAAnBA,EAAKw4F,gBAEiBzwF,IAAnB/H,EAAKw4F,YAELx4F,EAAKi4F,KAAOj4F,EAAKw4F,UAAU,GAAGP,MAOtC,OACE,6BACA,yBAAK5zF,UAAU,cAAc3F,KAAK0F,MAAMpE,KAAKmoE,OAC7C,kBAACsvB,GAAD,CAAqBpvD,UAAW,EAAGod,OAAQ,IAAKgiC,MAAM,UAAUtd,aAAczrE,KAAKm5F,eACjF,kBAAC,GAAD,MACA,kBAAC,GAAD,MAECn5F,KAAK0F,MAAMpE,KAAKi4F,KAAK,GAAGA,KAAK/3F,OAAQ,GAAM,kBAAC,GAAD,CAAOuwC,WAAY,SAAC5L,EAAGz7B,GACvD,OAAKA,EAAI,GAAKkD,KAAK6rB,MAAM,EAAK/zB,MAAMpE,KAAKi4F,KAAK,GAAGA,KAAK/3F,OAAO,KAAQ,EAE5D2kC,EAAE1b,MAAM,KAAK,QAEpB,KAGF,kBAAC,GAAD,MAGZ,kBAAC,GAAD,CAAQsvE,KAAM/5F,KAAK0F,MAAMpE,KAAK04F,QAE/Bh6F,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAACC,EAAUtC,GAAX,MAER,QAAlBsC,EAASg0F,KACP,kBAAC,GAAD,CAAmBlwD,WAAS,EAAC6d,WAAY,EAAK6xC,YAAanzF,MAAOL,EAASi0B,MAAO7zB,MAAO,CAAC2+B,QAAS,IAAMtjC,KAAMuE,EAAS0zF,OAIxH,kBAAC,GAAD,CAAY5vD,WAAS,EAAC1jC,MAAO,CAACsL,OAAQ1L,EAASi0B,MAAOizC,YAAa,EAAGktB,eAAgB,SAAUzyC,WAAY,EAAK6xC,YAAa/3F,KAAMuE,EAAS0zF,UAO/I,kBAAC,GAAD,CACOj2F,OAAQtD,KAAKwlB,MAAM4zE,gBACnBzzF,UAAW,kBACXmkE,YAAa,SAACr4D,GAAD,MAAQ,CAAChR,MAAO,EAAK+kB,MAAM4zE,gBAAgB,GAAGnvF,IAC3D4/D,YAAa,SAACp4D,GAAD,OAAO,EAAK+T,MAAMi0E,mBAMvC,kBAAC,GAAD,CAAqBxzF,MAAO,CAACi0F,WAAY,UAAWtwB,MAAO5pE,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAEg4D,SAAQ/iC,OAAQ1mC,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAEqoB,SAAQowC,YAAY,eAChK,yBAAKvkE,UAAU,gBAAf,KAAgC,kBAAC,IAAD,CAAe8U,OAAQza,KAAK0F,MAAMpE,KAAK64F,QAAS9hC,WAAW,aAOzF,IAAK,iBAWP,IARC,IAQD,EARK+hC,EAAc,GACdC,EAAc,GAEdC,EAAY,KAAMt6F,KAAK0F,MAAMpE,KAAKi4F,KAAK/3F,OAAOxB,KAAK0F,MAAMpE,KAAKi4F,KAAK,GAAGA,KAAK/3F,OAAQxB,KAAK0F,MAAMpE,KAAKi4F,KAAK/3F,QAItGkJ,EAAI,EACX,KAAgB1K,KAAK0F,MAAMpE,KAAKi4F,QAAhC,aAAsC,CAAC,IAA/B9uC,EAA8B,QAChC8vC,EAAc,GACT,IAAN7vF,GACS4vF,EAAUt6F,KAAK0F,MAAMpE,KAAKi4F,KAAK/3F,OAEhC84F,EAAUt6F,KAAK0F,MAAMpE,KAAKi4F,KAAK/3F,OAGxC,eAAiBipD,EAAK8uC,QAAtB,aAA2B,CAAC,IAAnBiB,EAAkB,QAC3BD,EAAY74F,KAAK,CAACmyB,EAAE2mE,EAAKvwF,EAAGA,EAAEuwF,EAAK3mE,EAAE6lD,MAAM8gB,EAAK3mE,IAEhDwmE,EAAa34F,KAAK,CAACmyB,EAAE2mE,EAAKvwF,EAAGA,EAAEuwF,EAAK3mE,EAAE6lD,MAAM9rE,KAAK6rB,MAAgB,GAAT+gE,EAAK3mE,GAAU,GAAG06C,QAAQ,EAAED,QAAQ,IAK9F5jE,IACA0vF,EAAa14F,KAAK64F,GAKpB,IAAI9gF,EAAQ,IAAQ,EAAG,IAAQ4gF,EAAc,KAAKpwF,GAAGzI,OAClCxB,KAAKwlB,MAAjBk0E,SAOL,OACE,6BACA,yBAAK/zF,UAAU,cAAc3F,KAAK0F,MAAMpE,KAAKmoE,OAC7C,kBAACsvB,GAAD,CAAqBjb,OAAQ,CAAC5sD,KAAM,IAAKyY,UAAW,EAAGod,OAAQ,IAAK6nC,MAAM,WAExE,kBAAC,GAAD,MACA,kBAAC,GAAD,MACCn1E,EAAQ,IAAQ,kBAAC,GAAD,CAAOs4B,WAAY,SAAC5L,EAAGz7B,GAC5B,OAAKA,EAAI,GAAK,GAAM,EACXy7B,OAEP,KAGF,kBAAC,GAAD,MAEZ,kBAAC,GAAD,CAAOv/B,SAAU,SAAU6iE,MAAOzpE,KAAK0F,MAAMpE,KAAK04F,QAEnDh6F,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAACC,EAAUtC,GAAX,OAGxB,kBAAC,GAAD,CAAqBomC,WAAS,EAACzjC,MAAOL,EAASi0B,MAAO7zB,MAAO,CAAC2+B,QAAS,IAAMtjC,KAAM84F,EAAa72F,QAItG,kBAAC,GAAD,CAAajC,KAAM+4F,EAAcxhB,yBAAyB,EAAOH,aAAc,SAAUzyE,MAAO,CAACkjF,SAAS,SAAUhgC,WAAW,OAAQsxC,WAAW,8CAA8CC,WAAW,QAIxM,kBAAC,GAAD,CAAqB9wB,MAAO5pE,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAEg4D,SAAQ/iC,OAAQ1mC,KAAK0F,MAAMpE,KAAKi4F,KAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAEqoB,SAAQowC,YAAY,eACjI,yBAAKvkE,UAAU,gBAAe,kBAAC,IAAD,CAAe8U,OAAQza,KAAK0F,MAAMpE,KAAK64F,QAAS9hC,WAAW,aAOvF,IAAK,MACL,IAAK,SACT,IAAO53D,EAAST,KAAKwlB,MAAd/kB,MACH84F,EAAO,GAEX,GAAwC,OAArCv5F,KAAK0F,MAAMpE,KAAKi4F,KAAK,GAAGoB,eAA0DtxF,IAArCrJ,KAAK0F,MAAMpE,KAAKi4F,KAAK,GAAGoB,SAClE,IAAI,IAAJ,OAAiB36F,KAAK0F,MAAMpE,KAAKi4F,QAAjC,aAAsC,CAAC,IAA/B71F,EAA8B,QACpC61F,EAAK73F,KAAK,CAAC6qD,MAAM7oD,EAAM6oD,MAAMrmD,MAAMxC,EAAMwC,MAAMS,KAAKjD,EAAMk3F,MAAMC,IAAIn3F,EAAMo3F,gBAMhF96F,KAAK0F,MAAMpE,KAAKi4F,KAAKxgE,QAAO,SAAA10B,GACvBA,EAAEs2F,UACHt2F,EAAEs2F,SAASlxF,SAAQ,SAAAnF,GACjBi1F,EAAK73F,KAAK,CAAC6qD,MAAMjoD,EAAEioD,MAAMrmD,MAAM5B,EAAE4B,MAAMS,KAAKrC,EAAEs2F,MAAMC,IAAIv2F,EAAEw2F,iBAO9D,IAAIC,EAAQ,EACRC,EAAQ,IASZ,MARwB,WAAzBh7F,KAAK0F,MAAMpE,KAAKu4F,OAChBkB,EAAQ,IACRC,EAAQ,KAOL,6BACA,yBAAKr1F,UAAU,cAAc3F,KAAK0F,MAAMpE,KAAKmoE,OAC7C,kBAAC,GAAD,CACDyf,UAAW,UACXjwD,OAAQ+hE,EACRvqC,YAAasqC,EACbjd,OAAQ,CAAC/zB,IAAK,KACd+uB,SAAU,SAAArnE,GAAC,OAAIA,EAAE9K,MACjBrF,KAAMi4F,EACN9O,uBAAwB,IACxBC,YAAa,CAACvB,SAAU,GAAI73E,KAAM,QAClCq5E,YAAY,EACZ1kF,MAAO,CAACsL,OAAQ,OAAQw7D,YAAa,GACrC/lB,iBAAkB,SAAAxnC,GAAC,OAAI,EAAKuG,SAAS,CAACtlB,MAAO+e,KAC7C6nC,iBAAkB,SAAA7nC,GAAC,OAAI,EAAKuG,SAAS,CAACtlB,OAAO,KAC7CwuC,MAAO,IACP8X,OAAQ,IACRkK,SAAU,MAGF,IAAVxwD,GAAmB,yBAAKwF,MAAO,CAACgpC,MAAM,QAAQroC,SAAS,WAAYmjD,IAAI,MAAO74B,KAAK,QACpF,uBAAGjrB,MAAO,CAACw0F,WAAW,8CAA8CQ,UAAU,SAASP,WAAW,IAAKvR,SAAS,OAAQjjF,MAAM,YAAazF,EAAMkG,MACjJ,uBAAGV,MAAO,CAACw0F,WAAW,kDAAkDQ,UAAU,SAAU9R,SAAS,OAAQjjF,MAAM,YAAazF,EAAMo6F,OAKvI,kBAAC,GAAD,CAAqBjxB,MAAO2vB,EAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAE9K,QAAO+/B,OAAQ6yD,EAAK3zF,KAAI,SAAA6L,GAAC,OAAIA,EAAEvL,SAAQgkE,YAAY,eAC5F,yBAAKvkE,UAAU,gBAAe,kBAAC,IAAD,CAAe8U,OAAQza,KAAK0F,MAAMpE,KAAK64F,QAAS9hC,WAAW,aAS3F,QAEF,OAAO,uC,GA7QapvC,a,sCCwCLiyE,GA1CH,SAAC,GAAqB,IAApB55F,EAAmB,EAAnBA,KAAmB,mBAKzB,OACQ,yBAAKqE,UAAU,gBACf,yBAAKA,UAAU,WACC,OAAfrE,EAAKmoE,OACN,yBAAKxjE,MAAO,CAACC,MAAO5E,EAAK65F,aAAc75F,EAAKmoE,OAE3C,yBAAK9jE,UAAU,kCACfrE,EAAK85F,YAAYx1F,KAAI,SAACC,EAAUtC,GAAX,OACjB,yBAAKoC,UAAyB,WAAdrE,EAAKwJ,KAAoB,kDAAoD,iDAEvE,OAAtBjF,EAASw1F,SACT,yBAAK11F,UAAyB,WAAdrE,EAAKwJ,KAAoB,mBAAqB,IAC9D,uBAAGjE,KAAMhB,EAASw1F,SAASC,UAAWv0F,OAAO,SAASd,MAAO,CAACC,MAAO5E,EAAK65F,WAAc50F,YAAYjF,EAAK65F,aAAct1F,EAAS4jE,QAKjI,yBAAK9jE,UAAyB,WAAdrE,EAAKwJ,KAAoB,mBAAqB,IAC9D,uBAAGjE,KAAMhB,EAASyyD,KAAMvxD,OAAO,SAASd,MAAO,CAACC,MAAO5E,EAAK65F,WAAc50F,YAAYjF,EAAK65F,aAAct1F,EAAS4jE,gB,UC2QvH8xB,IArRQ,SAAA71F,GACrB,GAA0B,OAAvBA,EAAMpE,KAAKk6F,QAGZ,MAAuB,YAApB91F,EAAMpE,KAAKu4F,KACL,yBAAKl0F,UAAU,UAAUM,MAAO,CAACw1F,gBAAgB/1F,EAAMo0B,MAAM4hE,uBAAuBx1F,MAAMR,EAAMo0B,MAAM6hE,oBAAtG,IAA2H,kBAAC,IAAD,CAAeC,YAAY,EAAOnhF,OAAQ/U,EAAMpE,KAAKk6F,QAASnjC,WAAW,YAChL,aAApB3yD,EAAMpE,KAAKu4F,KACX,yBAAKl0F,UAAU,YAAf,IAA2B,kBAAC,IAAD,CAAei2F,YAAY,EAAOnhF,OAAQ/U,EAAMpE,KAAKk6F,QAASnjC,WAAW,YAChF,UAApB3yD,EAAMpE,KAAKu4F,KAEhB,gCAAYl0F,UAAU,SACtB,yBAAKA,UAAU,uBAAuBk2F,cAAY,QAClD,yBAAK51F,MAAO,CAAEqL,KAAM5L,EAAMpE,KAAKw6F,iBAAkBvqF,OAAO7L,EAAMpE,KAAKw6F,kBAAoBzqF,MAAM,6BAA6BG,QAAQ,eAAc,0BAAMC,EAAE,uYAEtJ,yBAAK9L,UAAU,IAAG,kBAAC,IAAD,CAAe8U,OAAQ/U,EAAMpE,KAAKk6F,QAASI,YAAY,EAAOvjC,WAAW,YAC3F,yBAAK1yD,UAAU,0BAA0Bk2F,cAAY,QACvD,yBAAK51F,MAAO,CAAEqL,KAAM5L,EAAMpE,KAAKw6F,iBAAkBvqF,OAAO7L,EAAMpE,KAAKw6F,kBAAoBzqF,MAAM,6BAA6BG,QAAQ,eAAc,0BAAMC,EAAE,iYAMrJ,kBAAC,IAAD,CAAegJ,OAAQ/U,EAAMpE,KAAKk6F,QAASI,YAAY,EAAOvjC,WAAW,WAK5E,GAAwB,OAArB3yD,EAAMpE,KAAKy6F,MAChB,OACI,yBAAKp2F,UAAcD,EAAMpE,KAAKK,KAAhB,UAA8B+D,EAAMpE,KAAKsF,SAAzC,WAA+E,SAApBlB,EAAMpE,KAAK06F,OAAkB,cAAc,KAClH,gCACA,kBAACC,EAAA,EAAD,CAAaC,UAAWx2F,EAAMpE,KAAKy6F,QACnC,oCAAar2F,EAAMpE,KAAK64F,WAI5B,GAAwB,OAArBz0F,EAAMpE,KAAKgrF,MAEd,OAAO,kBAAC,GAAD,CAAOhrF,KAAMoE,EAAMpE,KAAKgrF,QAE/B,GAA4B,OAAzB5mF,EAAMpE,KAAK66F,UACd,OAAQ,kBAAC,KAAD,CAAOC,SAAU12F,EAAMpE,KAAK66F,UAAWE,YAAa32F,EAAMpE,KAAK4E,QACzE,GAAsB,OAAnBR,EAAMpE,KAAKg7F,IAClB,OACE,yBAAK32F,UAAU,eACf,4BAAKD,EAAMpE,KAAKmoE,OAChB,kBAAC,IAAD,CACE8yB,IAAK72F,EAAMpE,KAAKg7F,IAAIhB,UACpBkB,yBAA0B,GAC1BC,OAAQ,SAAAr3F,GAAC,MAAsB,oBAAXioB,QAA0BA,OAAOqvE,KAAK,QAAS,UAAW,CAAC,eAAiB,OAAQ,YAAcC,cAGxH,uBAAGC,IAAI,aAAa/1F,KAAMnB,EAAMpE,KAAKg3D,KAAMvxD,OAAO,UAAUrB,EAAMpE,KAAKu7F,SAErE,GAA+B,wBAA3Bn3F,EAAMpE,KAAKw7F,aAAoE,sBAA3Bp3F,EAAMpE,KAAKw7F,aAAkE,4BAA3Bp3F,EAAMpE,KAAKw7F,aAAwE,uBAA3Bp3F,EAAMpE,KAAKw7F,YAC7K,OACJ,yBAAKn3F,UAAU,eACL,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAE5D,yBAAKr3F,UAAU,qBACb,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oBAAoBM,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC5D,yBAAKl1F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC9B,kBAAC,IAAD,CAAe1gF,OAAQ/U,EAAMpE,KAAKu+D,KAAMxH,WAAW,SAASujC,YAAY,EAAOqB,UAAU,QAKjG,yBAAKt3F,UAAU,qBACb,kBAAC,IAAD,CAAarE,KAAMoE,EAAMpE,KAAM2E,MAAOP,EAAMpE,KAAKw7F,YAAal2F,SAAUlB,EAAMpE,KAAK47F,wBAM7F,GAA+B,yBAA3Bx3F,EAAMpE,KAAKw7F,YAEf,OACY,yBAAKn3F,UAAU,eACrB,yBAAKA,UAAU,gBAGb,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAE5D,yBAAKr3F,UAAU,qBACb,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oBAAoBM,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC5D,yBAAKl1F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC9B,kBAAC,IAAD,CAAe1gF,OAAQ/U,EAAMpE,KAAKu+D,KAAMxH,WAAW,SAASujC,YAAY,EAAOqB,UAAU,QAOjG,yBAAKt3F,UAAU,qBACb,kBAAC,IAAD,CAAarE,KAAMoE,EAAMpE,KAAM2E,MAAOP,EAAMpE,KAAKw7F,YAAal2F,SAAUlB,EAAMpE,KAAK47F,wBAUzF,GAA+B,mBAA3Bx3F,EAAMpE,KAAKw7F,YAEnB,OACM,yBAAKn3F,UAAU,gBAGb,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAE5D,yBAAKr3F,UAAU,sBACb,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oBAAoBM,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC5D,yBAAKl1F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC9B,kBAAC,IAAD,CAAe1gF,OAAQ/U,EAAMpE,KAAKu+D,KAAMxH,WAAW,SAASujC,YAAY,EAAOqB,UAAU,QAOjG,yBAAKt3F,UAAU,qBAEb,kBAAC,IAAD,CAAarE,KAAMoE,EAAMpE,KAAM2E,MAAM,qBAO3C,GAAkC,OAA9BP,EAAMpE,KAAK67F,gBACnB,GAAIz3F,EAAMpE,KAAK67F,eAAe37F,OAAS,EACrC,OAEM,yBAAKmE,UAAU,gBACb,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAE5D,yBAAKr3F,UAAU,kCACb,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oBAAoBM,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC5D,yBAAKl1F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC9B,kBAAC,IAAD,CAAe1gF,OAAQ/U,EAAMpE,KAAKu+D,KAAMxH,WAAW,SAASujC,YAAY,EAAOqB,UAAU,QAOjG,yBAAKt3F,UAAU,kCAEb,kBAAC,IAAD,CAAkBrE,KAAMoE,EAAMpE,aAQtC,IAA+B,OAA3BoE,EAAMpE,KAAK87F,kBAAmD/zF,IAA3B3D,EAAMpE,KAAK87F,YAgClD,MAAwB,eAApB13F,EAAMpE,KAAKu4F,KAGb,yBAAKl0F,UAAU,wBACb,yBAAKA,UAAU,qBACb,kBAAC,IAAD,CAAiBW,IAAI,MAAMX,UAAU,SAASa,MAAO62F,YAAY33F,EAAMpE,KAAK+kD,WAAW3gD,EAAMpE,KAAKw6F,iBAAiBp2F,EAAMpE,KAAKg8F,iBAC5H,yBAAK33F,UAAU,wBACb,yBAAKA,UAAU,8DACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAiBr3F,EAAMpE,KAAK07F,OAC3D,uBAAG/2F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAAgBz1F,EAAMpE,KAAKu+D,MACzD,yBAAKl6D,UAAU,aAAaM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAiBr3F,EAAMpE,KAAKi8F,WAAW,yBAAKlsF,MAAM,6BAA6BG,QAAQ,aAAY,0BAAMvL,MAAO,CAACqL,KAAM5L,EAAMpE,KAAKy7F,aAAetrF,EAAE,0KAE5M,uBAAG9L,UAAU,aAAakB,KAAMnB,EAAMpE,KAAKg3D,KAAMvxD,OAAO,eAW9C,SAApBrB,EAAMpE,KAAKu4F,KAIT,yBAAKl0F,UAAU,wBACb,yBAAKA,UAAU,qBACb,kBAAC,IAAD,CAAiBW,IAAI,MAAMX,UAAU,cAAca,MAAO62F,YAAY33F,EAAMpE,KAAK+kD,WAAW3gD,EAAMpE,KAAKw6F,iBAAiBp2F,EAAMpE,KAAKg8F,iBACjI,yBAAK33F,UAAU,wBACb,yBAAKA,UAAU,qDACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAiBr3F,EAAMpE,KAAK07F,OAC3D,uBAAG/2F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAAez1F,EAAMpE,KAAKu+D,OAE1D,yBAAKl6D,UAAU,2EACT,yBAAKA,UAAU,aAAaM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAiBr3F,EAAMpE,KAAKi8F,WAAW,yBAAKlsF,MAAM,6BAA6BG,QAAQ,aAAY,0BAAMvL,MAAO,CAACqL,KAAM5L,EAAMpE,KAAKy7F,aAAetrF,EAAE,0KAEhN,uBAAG9L,UAAU,aAAakB,KAAMnB,EAAMpE,KAAKg3D,KAAMvxD,OAAO,eAa1C,WAApBrB,EAAMpE,KAAKwJ,MAAyC,SAApBpF,EAAMpE,KAAKwJ,KAIjD,yBAAKnF,UAAU,gBAGf,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAG5D,yBAAKr3F,UAAU,qBAEf,kBAAC,GAAD,CAAKrE,KAAMoE,EAAMpE,SASd,qCAxGL,GAAIoE,EAAMpE,KAAK87F,YAAY57F,OAAS,EAElC,OAEM,yBAAKmE,UAAU,gBACb,yBAAKA,UAAU,oCACb,wBAAIM,MAAO,CAAEC,MAAOR,EAAMpE,KAAKy7F,cAAgBr3F,EAAMpE,KAAK07F,QAE5D,yBAAKr3F,UAAU,mCACb,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,oBAAoBM,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC5D,yBAAKl1F,MAAO,CAAEC,MAAOR,EAAMpE,KAAK65F,aAC9B,kBAAC,IAAD,CAAe1gF,OAAQ/U,EAAMpE,KAAKu+D,KAAMxH,WAAW,SAASujC,YAAY,EAAOqB,UAAU,QAOjG,yBAAKt3F,UAAU,kCAEb,kBAAC,IAAD,CAAerE,KAAMoE,EAAMpE,Y,mBC5L7CzB,EAAOC,QAJP,SAAkBW,GAChB,OAAOA,I,qBCjBT,IAAIqE,EAAS,EAAQ,QACjB04F,EAAW,EAAQ,QACnB/0F,EAAU,EAAQ,QAClBkC,EAAW,EAAQ,QAMnBuJ,EAAcpP,EAASA,EAAOjE,eAAYwI,EAC1Co0F,EAAiBvpF,EAAcA,EAAYnR,cAAWsG,EA0B1DxJ,EAAOC,QAhBP,SAAS2c,EAAahc,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIgI,EAAQhI,GAEV,OAAO+8F,EAAS/8F,EAAOgc,GAAgB,GAEzC,GAAI9R,EAASlK,GACX,OAAOg9F,EAAiBA,EAAev8F,KAAKT,GAAS,GAEvD,IAAIgH,EAAUhH,EAAQ,GACtB,MAAkB,KAAVgH,GAAkB,EAAIhH,IA3BjB,IA2BwC,KAAOgH","file":"3b4af28b456faba6bc8b17a7f26296afb0fa5348-13c699b75744e2be183c.js","sourcesContent":["var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","'use strict';\n\nvar callBound = require('call-bind/callBound');\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n has = callBound('Object.prototype.hasOwnProperty');\n $exec = callBound('RegExp.prototype.exec');\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n $exec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || typeof value !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return $toString(value) === regexClass;\n};","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","import React from 'react';\nimport { Link } from 'gatsby'\nimport BackgroundImage from 'gatsby-background-image'\n\nimport LinkedIn from \"./Linkedin.js\"\nimport Mail from \"./email.js\"\n\n\n\n\nconst ContactObject = props => {\n return(\n
\n
\n {props.data !== null ?\n props.data.map((document, index) => (\n document.showBioPage ?\n
\n \n
\n
\n
\n
\n \n
\n\n
\n
\n
\n {document.name}\n
\n
\n {document.position}\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n \n
\n\n :\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n
\n {document.name}\n
\n
\n {document.position}\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n\n
\n\n
\n
\n\n ))\n :<>}\n
\n\n
\n\n )\n\n}\n\nexport default ContactObject;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","'use strict';\n\nrequire(\"core-js/modules/es.typed-array.sort.js\");\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function getEvalledConstructor(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function throwTypeError() {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","import React from 'react';\n\n\nconst Email = props => {\n return(\n <>\n\n\n\n )\n\n\n}\nexport default Email;\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n};","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\n\nvar tryDateObject = function tryDateGetDayCall(value) {\n try {\n getDay.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar getPolyfill = require('./polyfill');\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n if (!supportsDescriptors || !getProto) {\n throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n var polyfill = getPolyfill();\n var proto = getProto(regex);\n var descriptor = gOPD(proto, 'flags');\n\n if (!descriptor || descriptor.get !== polyfill) {\n defineProperty(proto, 'flags', {\n configurable: true,\n enumerable: false,\n get: polyfill\n });\n }\n\n return polyfill;\n};","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n if (!supportsDescriptors) {\n throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n }\n\n if (/a/mig.flags === 'gim') {\n var descriptor = $gOPD(RegExp.prototype, 'flags');\n\n if (descriptor && typeof descriptor.get === 'function' && typeof /a/.dotAll === 'boolean') {\n return descriptor.get;\n }\n }\n\n return implementation;\n};","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n if (this != null && this !== $Object(this)) {\n throw new $TypeError('RegExp.prototype.flags getter called on non-object');\n }\n\n var result = '';\n\n if (this.global) {\n result += 'g';\n }\n\n if (this.ignoreCase) {\n result += 'i';\n }\n\n if (this.multiline) {\n result += 'm';\n }\n\n if (this.dotAll) {\n result += 's';\n }\n\n if (this.unicode) {\n result += 'u';\n }\n\n if (this.sticky) {\n result += 'y';\n }\n\n return result;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n return typeof Object.is === 'function' ? Object.is : implementation;\n};","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","require(\"core-js/modules/es.array.sort.js\");\n\nvar objectKeys = require('object-keys');\n\nvar isArguments = require('is-arguments');\n\nvar is = require('object-is');\n\nvar isRegex = require('is-regex');\n\nvar flags = require('regexp.prototype.flags');\n\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n } // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n\n\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n\n\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) {\n return false;\n } // an identical 'prototype' property.\n\n\n if (a.prototype !== b.prototype) {\n return false;\n }\n\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) {\n // happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates hasOwnProperty)\n\n\n if (ka.length !== kb.length) {\n return false;\n } // the same set of keys (although not necessarily the same order),\n\n\n ka.sort();\n kb.sort(); // ~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n }\n } // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n\n if (!deepEqual(a[key], b[key], opts)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import React from 'react';\n\n\nconst LinkedIn = props => {\n return(\n <>\n\n )\n\n\n}\n\nexport default LinkedIn;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nrequire(\"core-js/modules/es.array.sort.js\");\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}(); // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\n\nvar _React$version$split = React.version.split('.'),\n _React$version$split2 = _slicedToArray(_React$version$split, 2),\n major = _React$version$split2[0],\n minor = _React$version$split2[1];\n\nvar versionHigherThanThirteen = Number(minor) > 13 || Number(major) > 13;\nexport var isReactDOMSupported = function isReactDOMSupported() {\n return versionHigherThanThirteen;\n};\n/**\n * Support React 0.13 and greater where refs are React components, not DOM\n * nodes.\n * @param {*} ref React's ref.\n * @returns {Element} DOM element.\n */\n\nexport var getDOMNode = function getDOMNode(ref) {\n if (!isReactDOMSupported()) {\n return ref && ref.getDOMNode();\n }\n\n return ref;\n};\nvar USED_MESSAGES = {};\nvar HIDDEN_PROCESSES = {\n test: true,\n production: true\n};\n/**\n * Warn the user about something\n * @param {String} message - the message to be shown\n * @param {Boolean} onlyShowMessageOnce - whether or not we allow the\n - message to be show multiple times\n */\n\nexport function warning(message) {\n var onlyShowMessageOnce = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n /* eslint-disable no-undef, no-process-env */\n\n if (global.process && HIDDEN_PROCESSES[process.env.NODE_ENV]) {\n return;\n }\n /* eslint-enable no-undef, no-process-env */\n\n\n if (!onlyShowMessageOnce || !USED_MESSAGES[message]) {\n /* eslint-disable no-console */\n console.warn(message);\n /* eslint-enable no-console */\n\n USED_MESSAGES[message] = true;\n }\n}\n/**\n * Convience wrapper for warning\n * @param {String} message - the message to be shown\n */\n\nexport function warnOnce(message) {\n warning(message, true);\n}","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","'use strict';\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\n\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define(Object, {\n is: polyfill\n }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","export default function (x) {\n return function () {\n return x;\n };\n}","export function x(d) {\n return d[0];\n}\nexport function y(d) {\n return d[1];\n}","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n insert: function insert(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n\n if (after.R) {\n after = after.R;\n\n while (after.L) {\n after = after.L;\n }\n\n after.L = node;\n } else {\n after.R = node;\n }\n\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n\n while (parent && parent.C) {\n grandpa = parent.U;\n\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n\n parent = after.U;\n }\n\n this._.C = false;\n },\n remove: function remove(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n if (!left) next = right;else if (!right) next = left;else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n\n if (node && node.C) {\n node.C = false;\n return;\n }\n\n do {\n if (node === this._) break;\n\n if (node === parent.L) {\n sibling = parent.R;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) {\n node = node.L;\n }\n\n return node;\n}\n\nexport default RedBlackTree;","import { cells, edges, epsilon } from \"./Diagram\";\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n} // Liang–Barsky line clipping.\n\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1) || !clipEdge(edge, x0, y0, x1, y1) || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}","import \"core-js/modules/es.array.sort.js\";\nimport { createBorderEdge } from \"./Edge\";\nimport { cells, edges, epsilon } from \"./Diagram\";\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n\n for (j = 0; j < m; ++j) {\n index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n }\n\n index.sort(function (i, j) {\n return array[j] - array[i];\n });\n\n for (j = 0; j < m; ++j) {\n array[j] = halfedges[index[j]];\n }\n\n for (j = 0; j < m; ++j) {\n halfedges[j] = array[j];\n }\n }\n }\n}\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length; // Remove any dangling clipped edges.\n\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n } // Insert any border edges as necessary.\n\n\n iHalfedge = 0, nHalfedges = halfedges.length;\n\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end, Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1] : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1] : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0] : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0] : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n } // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n\n\n if (cover) {\n var dx,\n dy,\n d2,\n dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0],\n v01 = [x0, y1],\n v11 = [x1, y1],\n v10 = [x1, y0];\n cover.halfedges.push(edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1, edges.push(createBorderEdge(site, v01, v11)) - 1, edges.push(createBorderEdge(site, v11, v10)) - 1, edges.push(createBorderEdge(site, v10, v00)) - 1);\n }\n } // Lastly delete any cells with no edges; these were entirely clipped.\n\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { circles, epsilon2 } from \"./Diagram\";\nvar circlePool = [];\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n var circle = circlePool.pop() || new Circle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;else {\n before = node;\n break;\n }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\nexport function detachCircle(arc) {\n var circle = arc.circle;\n\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { createCell } from \"./Cell\";\nimport { attachCircle, detachCircle } from \"./Circle\";\nimport { createEdge, setEdgeEnd } from \"./Edge\";\nimport { beaches, epsilon } from \"./Diagram\";\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge = this.site = this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach();\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n detachBeach(beach);\n var lArc = previous;\n\n while (lArc.circle && Math.abs(x - lArc.circle.x) < epsilon && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n var rArc = next;\n\n while (rArc.circle && Math.abs(x - rArc.circle.x) < epsilon && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n var nArcs = disappearing.length,\n iArc;\n\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L;else {\n dxr = x - rightBreakPoint(node, directrix);\n\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) {\n // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n } // else lArc !== rArc\n\n\n detachCircle(lArc);\n detachCircle(rArc);\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}","import \"core-js/modules/es.array.sort.js\";\nimport { addBeach, removeBeach } from \"./Beach\";\nimport { sortCellHalfedges, cellHalfedgeStart, clipCells } from \"./Cell\";\nimport { firstCircle } from \"./Circle\";\nimport { clipEdges } from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1] || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree();\n circles = new RedBlackTree();\n\n while (true) {\n circle = firstCircle;\n\n if (site && (!circle || site[1] < circle.y || site[1] === circle.y && site[0] < circle.x)) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n beaches = circles = edges = cells = null;\n}\nDiagram.prototype = {\n constructor: Diagram,\n polygons: function polygons() {\n var edges = this.edges;\n return this.cells.map(function (cell) {\n var polygon = cell.halfedges.map(function (i) {\n return cellHalfedgeStart(cell, edges[i]);\n });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n triangles: function triangles() {\n var triangles = [],\n edges = this.edges;\n this.cells.forEach(function (cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n return triangles;\n },\n links: function links() {\n return this.edges.filter(function (edge) {\n return edge.right;\n }).map(function (edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n find: function find(x, y, radius) {\n var that = this,\n i0,\n i1 = that._found || 0,\n n = that.cells.length,\n cell; // Use the previously-found cell, or start with an arbitrary one.\n\n while (!(cell = that.cells[i1])) {\n if (++i1 >= n) return null;\n }\n\n var dx = x - cell.site[0],\n dy = y - cell.site[1],\n d2 = dx * dx + dy * dy; // Traverse the half-edges to find a closer cell, if any.\n\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function (e) {\n var edge = that.edges[e],\n v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0],\n vy = y - v[1],\n v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n};","import constant from \"./constant\";\nimport { x as pointX, y as pointY } from \"./point\";\nimport Diagram, { epsilon } from \"./Diagram\";\nexport default function () {\n var x = pointX,\n y = pointY,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function (d, i) {\n var s = [Math.round(x(d, i, data) / epsilon) * epsilon, Math.round(y(d, i, data) / epsilon) * epsilon];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function (data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function (data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function (data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), voronoi) : x;\n };\n\n voronoi.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), voronoi) : y;\n };\n\n voronoi.extent = function (_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function (_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function 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: function 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: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function 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: function 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: function 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(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\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 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,\n color;\n\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\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);","import { basis } from \"./basis.js\";\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}","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) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\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) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\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}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\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) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import number from \"./number.js\";\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,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\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\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","import \"core-js/modules/es.array.reduce.js\";\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { interpolate } from 'd3-interpolate';\nimport { spring, Motion, presets } from 'react-motion';\nvar ANIMATION_PROPTYPES = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n stiffness: PropTypes.number,\n nonAnimatedProps: PropTypes.arrayOf(PropTypes.string),\n damping: PropTypes.number\n}), PropTypes.bool]);\n\n/**\n * Format the animation style object\n * @param {Object|String} animationStyle - The animation style property, either the name of a\n * presets are one of noWobble, gentle, wobbly, stiff\n */\nfunction getAnimationStyle() {\n var animationStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : presets.noWobble;\n\n if (typeof animationStyle === 'string') {\n return presets[animationStyle] || presets.noWobble;\n }\n\n var damping = animationStyle.damping,\n stiffness = animationStyle.stiffness;\n return _extends({\n damping: damping || presets.noWobble.damping,\n stiffness: stiffness || presets.noWobble.stiffness\n }, animationStyle);\n}\n/**\n * Extract the animated props from the entire props object.\n * @param {Object} props Props.\n * @returns {Object} Object of animated props.\n */\n\n\nexport function extractAnimatedPropValues(props) {\n var animatedProps = props.animatedProps,\n otherProps = _objectWithoutProperties(props, ['animatedProps']);\n\n return animatedProps.reduce(function (result, animatedPropName) {\n if (otherProps.hasOwnProperty(animatedPropName)) {\n result[animatedPropName] = otherProps[animatedPropName];\n }\n\n return result;\n }, {});\n}\n\nvar Animation = function (_PureComponent) {\n _inherits(Animation, _PureComponent);\n\n function Animation(props) {\n _classCallCheck(this, Animation);\n\n var _this = _possibleConstructorReturn(this, (Animation.__proto__ || Object.getPrototypeOf(Animation)).call(this, props));\n\n _this._motionEndHandler = function () {\n if (_this.props.onEnd) {\n _this.props.onEnd();\n }\n };\n\n _this._renderChildren = function (_ref) {\n var i = _ref.i;\n var children = _this.props.children;\n var interpolator = _this._interpolator;\n var child = React.Children.only(children);\n var interpolatedProps = interpolator ? interpolator(i) : interpolator; // interpolator doesnt play nice with deeply nested objected\n // so we expose an additional prop for situations like these, soit _data,\n // which stores the full tree and can be recombined with the sanitized version\n // after interpolation\n\n var data = interpolatedProps && interpolatedProps.data || null;\n\n if (data && child.props._data) {\n data = data.map(function (row, index) {\n var correspondingCell = child.props._data[index];\n return _extends({}, row, {\n parent: correspondingCell.parent,\n children: correspondingCell.children\n });\n });\n }\n\n return React.cloneElement(child, _extends({}, child.props, interpolatedProps, {\n data: data || child.props.data || null,\n // enforce re-rendering\n _animation: Math.random()\n }));\n };\n\n _this._updateInterpolator(props);\n\n return _this;\n }\n\n _createClass(Animation, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(props) {\n this._updateInterpolator(this.props, props);\n\n if (props.onStart) {\n props.onStart();\n }\n }\n /**\n * Render the child into the parent.\n * @param {Number} i Number generated by the spring.\n * @returns {React.Component} Rendered react element.\n * @private\n */\n\n }, {\n key: '_updateInterpolator',\n\n /**\n * Update the interpolator function and assign it to this._interpolator.\n * @param {Object} oldProps Old props.\n * @param {Object} newProps New props.\n * @private\n */\n value: function _updateInterpolator(oldProps, newProps) {\n this._interpolator = interpolate(extractAnimatedPropValues(oldProps), newProps ? extractAnimatedPropValues(newProps) : null);\n }\n }, {\n key: 'render',\n value: function render() {\n var animationStyle = getAnimationStyle(this.props.animation);\n var defaultStyle = {\n i: 0\n };\n var style = {\n i: spring(1, animationStyle)\n }; // In order to make Motion re-run animations each time, the random key is\n // always passed.\n // TODO: find a better solution for the spring.\n\n var key = Math.random();\n return React.createElement(Motion, _extends({\n defaultStyle: defaultStyle,\n style: style,\n key: key\n }, {\n onRest: this._motionEndHandler\n }), this._renderChildren);\n }\n }]);\n\n return Animation;\n}(PureComponent);\n\nAnimation.displayName = 'Animation';\nexport default Animation;\nexport var AnimationPropType = ANIMATION_PROPTYPES;","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","export default function (start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\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}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","export default function (values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n } else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function has(key) {\n return prefix + key in this;\n },\n get: function get(key) {\n return this[prefix + key];\n },\n set: function set(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function remove(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function clear() {\n for (var property in this) {\n if (property[0] === prefix) delete this[property];\n }\n },\n keys: function keys() {\n var keys = [];\n\n for (var property in this) {\n if (property[0] === prefix) keys.push(property.slice(1));\n }\n\n return keys;\n },\n values: function values() {\n var values = [];\n\n for (var property in this) {\n if (property[0] === prefix) values.push(this[property]);\n }\n\n return values;\n },\n entries: function entries() {\n var entries = [];\n\n for (var property in this) {\n if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n }\n\n return entries;\n },\n size: function size() {\n var size = 0;\n\n for (var property in this) {\n if (property[0] === prefix) ++size;\n }\n\n return size;\n },\n empty: function empty() {\n for (var property in this) {\n if (property[0] === prefix) return false;\n }\n\n return true;\n },\n each: function each(f) {\n for (var property in this) {\n if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n }\n};\n\nfunction map(object, f) {\n var map = new Map(); // Copy constructor.\n\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\n }); // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n if (f == null) while (++i < n) {\n map.set(i, object[i]);\n } else while (++i < n) {\n map.set(f(o = object[i], i, object), o);\n }\n } // Convert object to map.\n else if (object) for (var key in object) {\n map.set(key, object[key]);\n }\n return map;\n}\n\nexport default map;","import \"core-js/modules/es.array.sort.js\";\nimport map from \"./map\";\nexport default function () {\n var keys = [],\n _sortKeys = [],\n _sortValues,\n _rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (_sortValues != null) array.sort(_sortValues);\n return _rollup != null ? _rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function (values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n return result;\n }\n\n function _entries(map, depth) {\n if (++depth > keys.length) return map;\n var array,\n sortKey = _sortKeys[depth - 1];\n if (_rollup != null && depth >= keys.length) array = map.entries();else array = [], map.each(function (v, k) {\n array.push({\n key: k,\n values: _entries(v, depth)\n });\n });\n return sortKey != null ? array.sort(function (a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n\n return nest = {\n object: function object(array) {\n return apply(array, 0, createObject, setObject);\n },\n map: function map(array) {\n return apply(array, 0, createMap, setMap);\n },\n entries: function entries(array) {\n return _entries(apply(array, 0, createMap, setMap), 0);\n },\n key: function key(d) {\n keys.push(d);\n return nest;\n },\n sortKeys: function sortKeys(order) {\n _sortKeys[keys.length - 1] = order;\n return nest;\n },\n sortValues: function sortValues(order) {\n _sortValues = order;\n return nest;\n },\n rollup: function rollup(f) {\n _rollup = f;\n return nest;\n }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}","import { default as map, prefix } from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function add(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set(); // Copy constructor.\n\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\n }); // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1,\n n = object.length;\n if (f == null) while (++i < n) {\n set.add(object[i]);\n } else while (++i < n) {\n set.add(f(object[i], i, object));\n }\n }\n return set;\n}\n\nexport default set;","var array = Array.prototype;\nexport var map = array.map;\nexport var slice = array.slice;","import { map } from \"d3-collection\";\nimport { slice } from \"./array\";\nexport var implicit = {\n name: \"implicit\"\n};\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1,\n n = _.length,\n d,\n key;\n\n while (++i < n) {\n if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), 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(domain).range(range).unknown(unknown);\n };\n\n return scale;\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}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function (x) {\n return +x;\n}","import { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateRound } from \"d3-interpolate\";\nimport { map, slice } from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\nvar unit = [0, 1];\nexport function deinterpolateLinear(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function (a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function (x) {\n return x <= a ? 0 : x >= b ? 1 : d(x);\n };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function (a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function (t) {\n return t <= 0 ? a : t >= 1 ? b : r(t);\n };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1; // Reverse descending domains.\n\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] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(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.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp());\n} // deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\n\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function (y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\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}\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 + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\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].\n\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // 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\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\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 i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\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 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\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\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n 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; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // 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\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // 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\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\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 } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n\n return numerals(value);\n }\n\n format.toString = function () {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","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}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import exponent from \"./exponent.js\";\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}","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function (domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\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\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\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\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return format(specifier);\n}","import exponent from \"./exponent.js\";\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}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\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 return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}","export default function (domain, interval) {\n domain = domain.slice();\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}","import { ticks } from \"d3-array\";\nimport { format } from \"d3-format\";\nimport constant from \"./constant\";\nimport nice from \"./nice\";\nimport { default as continuous, copy } from \"./continuous\";\n\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a)) ? function (x) {\n return Math.log(x / a) / b;\n } : constant(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0 ? function (t) {\n return -Math.pow(-b, t) * Math.pow(-a, 1 - t);\n } : function (t) {\n return Math.pow(b, t) * Math.pow(a, 1 - t);\n };\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 : base === Math.E ? Math.exp : function (x) {\n return Math.pow(base, x);\n };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function (x) {\n return Math.log(x) / base;\n });\n}\n\nfunction reflect(f) {\n return function (x) {\n return -f(-x);\n };\n}\n\nexport default function log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\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 = function (count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n if (r = v < u) i = u, u = v, v = i;\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\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, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function (count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n\n return function (d) {\n var 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 = function () {\n return domain(nice(domain(), {\n floor: function floor(x) {\n return pows(Math.floor(logs(x)));\n },\n ceil: function ceil(x) {\n return pows(Math.ceil(logs(x)));\n }\n }));\n };\n\n scale.copy = function () {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}","import constant from \"./constant\";\nimport { linearish } from \"./linear\";\nimport { default as continuous, copy } from \"./continuous\";\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nexport default function pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent))) ? function (x) {\n return (raise(x, exponent) - a) / b;\n } : constant(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function (t) {\n return raise(a + b * t, 1 / exponent);\n };\n }\n\n scale.exponent = function (_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function () {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\nexport function sqrt() {\n return pow().exponent(0.5);\n}","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\n }\n }\n });\n };\n\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n}); // An optimized implementation for this simple case.\n\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nvar hour = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getHours();\n});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","import interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n}); // An optimized implementation for this simple case.\n\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } 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\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\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 {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\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 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 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 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 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 }; // These recursive directive definitions must be deferred.\n\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 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);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,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\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)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\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 } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\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\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction 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, \"+\")) + pad(z / 60 | 0, \"0\", 2) + 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}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\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});\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}","import { bisector, tickStep } from \"d3-array\";\nimport { interpolateNumber as reinterpolate } from \"d3-interpolate\";\nimport { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport { map } from \"./array\";\nimport { default as continuous, copy, deinterpolateLinear as deinterpolate } from \"./continuous\";\nimport nice from \"./nice\";\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\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(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\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 var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10; // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function (i) {\n return i[2];\n }).right(tickIntervals, target);\n\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step)) ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\nexport default function () {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","export default function (s) {\n return s.match(/.{6}/g).map(function (x) {\n return \"#\" + x;\n });\n}","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;","import colors from \"./colors\";\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");","import colors from \"./colors\";\nexport default colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");","import colors from \"./colors\";\nexport default colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");","import colors from \"./colors\";\nexport default colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");","import define, { extend } from \"./define.js\";\nimport { Color, rgbConvert, Rgb, darker as _darker, brighter as _brighter } from \"./color.js\";\nimport { deg2rad, rad2deg } from \"./math.js\";\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)),\n // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity);\n }\n}));","import { cubehelix as colorCubehelix } from \"d3-color\";\nimport color, { hue } from \"./color.js\";\n\nfunction cubehelix(hue) {\n return function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function (t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n return cubehelix;\n }(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));","import { cubehelix } from \"d3-color\";\nimport { interpolateCubehelixLong } from \"d3-interpolate\";\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\nvar rainbow = cubehelix();\nexport default function (t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}","import colors from \"./colors\";\n\nfunction ramp(range) {\n var n = range.length;\n return function (t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/**\n * Get unique property values from an array.\n * @param {Array} arr Array of data.\n * @param {string} propertyName Prop name.\n * @returns {Array} Array of unique values.\n */\nexport function getUniquePropertyValues(arr, accessor) {\n var setOfValues = new Set(arr.map(accessor));\n return Array.from(setOfValues);\n}\n/**\n * Add zero to the domain.\n * @param {Array} arr Add zero to the domain.\n * @param {Number} value Add zero to domain.\n * @returns {Array} Adjusted domain.\n */\n\nexport function addValueToArray(arr, value) {\n var result = [].concat(arr);\n\n if (result[0] > value) {\n result[0] = value;\n }\n\n if (result[result.length - 1] < value) {\n result[result.length - 1] = value;\n }\n\n return result;\n}\n/**\n * Transforms a value ( number or date ) to a string.\n * @param {Date | number} value The value as date or number.\n * @returns {string | number} The value as string.\n */\n\nexport function transformValueToString(value) {\n return Object.prototype.toString.call(value) === '[object Date]' ? value.toDateString() : value;\n}","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nvar _SCALE_FUNCTIONS;\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport { scaleLinear, scalePoint, scaleOrdinal, scaleLog, scaleTime, scaleUtc } from 'd3-scale';\nimport { extent } from 'd3-array';\nimport { set } from 'd3-collection';\nimport { hsl } from 'd3-color';\nimport PropTypes from 'prop-types';\nimport { warning } from './react-utils';\nimport { getUniquePropertyValues, addValueToArray } from './data-utils';\n/**\n * Linear scale name.\n * @type {string}\n * @const\n */\n\nvar LINEAR_SCALE_TYPE = 'linear';\n/**\n * Ordinal scale name.\n * @type {string}\n * @const\n */\n\nvar ORDINAL_SCALE_TYPE = 'ordinal';\n/**\n * Category scale.\n * @type {string}\n * @const\n */\n\nvar CATEGORY_SCALE_TYPE = 'category';\n/**\n * Literal scale.\n * Differs slightly from d3's identity scale in that it does not coerce value\n * into numbers, it simply returns exactly what you give it\n * @type {string}\n * @const\n */\n\nvar LITERAL_SCALE_TYPE = 'literal';\n/**\n * Log scale name.\n * @type {string}\n * @const\n */\n\nvar LOG_SCALE_TYPE = 'log';\n/**\n * Time scale name.\n * @type {string}\n * @const\n */\n\nvar TIME_SCALE_TYPE = 'time';\n/**\n * Time UTC scale name.\n * @type {string}\n * @const\n */\n\nvar TIME_UTC_SCALE_TYPE = 'time-utc';\n/**\n * Scale functions that are supported in the library.\n * @type {Object}\n * @const\n */\n\nvar SCALE_FUNCTIONS = (_SCALE_FUNCTIONS = {}, _defineProperty(_SCALE_FUNCTIONS, LINEAR_SCALE_TYPE, scaleLinear), _defineProperty(_SCALE_FUNCTIONS, ORDINAL_SCALE_TYPE, scalePoint), _defineProperty(_SCALE_FUNCTIONS, CATEGORY_SCALE_TYPE, scaleOrdinal), _defineProperty(_SCALE_FUNCTIONS, LITERAL_SCALE_TYPE, literalScale), _defineProperty(_SCALE_FUNCTIONS, LOG_SCALE_TYPE, scaleLog), _defineProperty(_SCALE_FUNCTIONS, TIME_SCALE_TYPE, scaleTime), _defineProperty(_SCALE_FUNCTIONS, TIME_UTC_SCALE_TYPE, scaleUtc), _SCALE_FUNCTIONS);\n/**\n * Attrs for which a scale can be set up at XYPlot level\n * @type {Array}\n * @const\n */\n\nvar XYPLOT_ATTR = ['color', 'fill', 'opacity', 'stroke'];\n/**\n * Title case a given string\n * @param {String} str Array of values.\n * @returns {String} titlecased string\n */\n\nfunction toTitleCase(str) {\n return '' + str[0].toUpperCase() + str.slice(1);\n}\n/**\n * Find the smallest distance between the values on a given scale and return\n * the index of the element, where the smallest distance was found.\n * It returns the first occurrence of i where\n * `scale(value[i]) - scale(value[i - 1])` is minimal\n * @param {Array} values Array of values.\n * @param {Object} scaleObject Scale object.\n * @returns {number} Index of an element where the smallest distance was found.\n * @private\n */\n\n\nexport function _getSmallestDistanceIndex(values, scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var result = 0;\n\n if (scaleFn) {\n var nextValue = void 0;\n var currentValue = scaleFn(values[0]);\n var distance = Infinity;\n var nextDistance = void 0;\n\n for (var i = 1; i < values.length; i++) {\n nextValue = scaleFn(values[i]);\n nextDistance = Math.abs(nextValue - currentValue);\n\n if (nextDistance < distance) {\n distance = nextDistance;\n result = i;\n }\n\n currentValue = nextValue;\n }\n }\n\n return result;\n}\n/**\n * This is a workaround for issue that ordinal scale\n * does not have invert method implemented in d3-scale.\n * @param {Object} Ordinal d3-scale object.\n * @returns {void}\n * @private\n */\n\nfunction addInvertFunctionToOrdinalScaleObject(scale) {\n if (scale.invert) {\n return;\n }\n\n scale.invert = function invert(value) {\n var _scale$range = scale.range(),\n _scale$range2 = _slicedToArray(_scale$range, 2),\n lower = _scale$range2[0],\n upper = _scale$range2[1];\n\n var start = Math.min(lower, upper);\n var stop = Math.max(lower, upper);\n\n if (value < start + scale.padding() * scale.step()) {\n return scale.domain()[0];\n }\n\n if (value > stop - scale.padding() * scale.step()) {\n return scale.domain()[scale.domain().length - 1];\n }\n\n var index = Math.floor((value - start - scale.padding() * scale.step()) / scale.step());\n return scale.domain()[index];\n };\n}\n/**\n * Crate a scale function from the scale object.\n * @param {Object} scaleObject Scale object.\n - scaleObject.domain {Array}\n - scaleObject.range {Array}\n - scaleObject.type {string}\n - scaleObject.attr {string}\n * @returns {*} Scale function.\n * @private\n */\n\n\nexport function getScaleFnFromScaleObject(scaleObject) {\n if (!scaleObject) {\n return null;\n }\n\n var type = scaleObject.type,\n domain = scaleObject.domain,\n range = scaleObject.range;\n var modDomain = domain[0] === domain[1] ? domain[0] === 0 ? [-1, 0] : [-domain[0], domain[0]] : domain;\n\n if (type === LITERAL_SCALE_TYPE) {\n return literalScale(range[0]);\n }\n\n var scale = SCALE_FUNCTIONS[type]().domain(modDomain).range(range);\n\n if (type === ORDINAL_SCALE_TYPE) {\n scale.padding(0.5);\n addInvertFunctionToOrdinalScaleObject(scale);\n }\n\n return scale;\n}\n/**\n * Get the domain from the array of data.\n * @param {Array} allData All data.\n * @param {function} accessor - accessor for main value.\n * @param {function} accessor0 - accessor for the naught value.\n * @param {string} type Scale type.\n * @returns {Array} Domain.\n * @private\n */\n\nexport function getDomainByAccessor(allData, accessor, accessor0, type) {\n var domain = void 0; // Collect both attr and available attr0 values from the array of data.\n\n var values = allData.reduce(function (data, d) {\n var value = accessor(d);\n var value0 = accessor0(d);\n\n if (_isDefined(value)) {\n data.push(value);\n }\n\n if (_isDefined(value0)) {\n data.push(value0);\n }\n\n return data;\n }, []);\n\n if (!values.length) {\n return [];\n } // Create proper domain depending on the type of the scale.\n\n\n if (type !== ORDINAL_SCALE_TYPE && type !== CATEGORY_SCALE_TYPE) {\n domain = extent(values);\n } else {\n domain = set(values).values();\n }\n\n return domain;\n}\n/**\n * Create custom scale object from the value. When the scale is created from\n * this object, it should return the same value all time.\n * @param {string} attr Attribute.\n * @param {*} value Value.\n * @param {string} type - the type of scale being used\n * @param {function} accessor - the accessor function\n * @param {function} accessor0 - the accessor function for the potential naught value\n * @returns {Object} Custom scale object.\n * @private\n */\n\nfunction _createScaleObjectForValue(attr, value, type, accessor, accessor0) {\n if (type === LITERAL_SCALE_TYPE) {\n return {\n type: LITERAL_SCALE_TYPE,\n domain: [],\n range: [value],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n }\n\n if (typeof value === 'undefined') {\n return null;\n }\n\n return {\n type: CATEGORY_SCALE_TYPE,\n range: [value],\n domain: [],\n distance: 0,\n attr: attr,\n baseValue: undefined,\n isValue: true,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n/**\n * Create a regular scale object for a further use from the existing parameters.\n * @param {Array} domain - Domain.\n * @param {Array} range - Range.\n * @param {string} type - Type.\n * @param {number} distance - Distance.\n * @param {string} attr - Attribute.\n * @param {number} baseValue - Base value.\n * @param {function} accessor - Attribute accesor\n * @param {function} accessor0 - Attribute accesor for potential naught value\n * @returns {Object} Scale object.\n * @private\n */\n\n\nfunction _createScaleObjectForFunction(_ref) {\n var domain = _ref.domain,\n range = _ref.range,\n type = _ref.type,\n distance = _ref.distance,\n attr = _ref.attr,\n baseValue = _ref.baseValue,\n accessor = _ref.accessor,\n accessor0 = _ref.accessor0;\n return {\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n isValue: false,\n accessor: accessor,\n accessor0: accessor0\n };\n}\n/**\n * Get scale object from props. E. g. object like {xRange, xDomain, xDistance,\n * xType} is transformed into {range, domain, distance, type}.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {*} Null or an object with the scale.\n * @private\n */\n\n\nfunction _collectScaleObjectFromProps(props, attr) {\n var value = props[attr],\n fallbackValue = props['_' + attr + 'Value'],\n range = props[attr + 'Range'],\n _props$ = props[attr + 'Distance'],\n distance = _props$ === undefined ? 0 : _props$,\n baseValue = props[attr + 'BaseValue'],\n _props$2 = props[attr + 'Type'],\n type = _props$2 === undefined ? LINEAR_SCALE_TYPE : _props$2,\n noFallBack = props[attr + 'NoFallBack'],\n _props$3 = props['get' + toTitleCase(attr)],\n accessor = _props$3 === undefined ? function (d) {\n return d[attr];\n } : _props$3,\n _props$4 = props['get' + toTitleCase(attr) + '0'],\n accessor0 = _props$4 === undefined ? function (d) {\n return d[attr + '0'];\n } : _props$4;\n var domain = props[attr + 'Domain']; // Return value-based scale if the value is assigned.\n\n if (!noFallBack && typeof value !== 'undefined') {\n return _createScaleObjectForValue(attr, value, props[attr + 'Type'], accessor, accessor0);\n } // Pick up the domain from the properties and create a new one if it's not\n // available.\n\n\n if (typeof baseValue !== 'undefined') {\n domain = addValueToArray(domain, baseValue);\n } // Make sure that the minimum necessary properties exist.\n\n\n if (!range || !domain || !domain.length) {\n // Try to use the fallback value if it is available.\n return _createScaleObjectForValue(attr, fallbackValue, props[attr + 'Type'], accessor, accessor0);\n }\n\n return _createScaleObjectForFunction({\n domain: domain,\n range: range,\n type: type,\n distance: distance,\n attr: attr,\n baseValue: baseValue,\n accessor: accessor,\n accessor0: accessor0\n });\n}\n/**\n * Compute left domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\n\n\nfunction _computeLeftDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[1] - values[0]) / 2;\n }\n\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n\n return 0;\n}\n/**\n * Compute right domain adjustment for the given values.\n * @param {Array} values Array of values.\n * @returns {number} Domain adjustment.\n * @private\n */\n\n\nfunction _computeRightDomainAdjustment(values) {\n if (values.length > 1) {\n return (values[values.length - 1] - values[values.length - 2]) / 2;\n }\n\n if (values.length === 1) {\n return values[0] - 0.5;\n }\n\n return 0;\n}\n/**\n * Compute distance for the given values.\n * @param {Array} values Array of values.\n * @param {Array} domain Domain.\n * @param {number} bestDistIndex Index of a best distance found.\n * @param {function} scaleFn Scale function.\n * @returns {number} Domain adjustment.\n * @private\n */\n\n\nfunction _computeScaleDistance(values, domain, bestDistIndex, scaleFn) {\n if (values.length > 1) {\n // Avoid zero indexes.\n var i = Math.max(bestDistIndex, 1);\n return Math.abs(scaleFn(values[i]) - scaleFn(values[i - 1]));\n }\n\n if (values.length === 1) {\n return Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n }\n\n return 0;\n}\n/**\n * Normilize array of values with a single value.\n * @param {Array} arr Array of data.\n * @param {Array} values Array of values.\n * @param {string} attr Attribute.\n * @param {string} type Type.\n * @private\n */\n\n\nfunction _normalizeValues(data, values, accessor0, type) {\n if (type === TIME_SCALE_TYPE && values.length === 1) {\n var attr0 = accessor0(data[0]);\n return [attr0].concat(_toConsumableArray(values));\n }\n\n return values;\n}\n/**\n * Get the distance, the smallest and the largest value of the domain.\n * @param {Array} data Array of data for the single series.\n * @param {Object} scaleObject Scale object.\n * @returns {{domain0: number, domainN: number, distance: number}} Result.\n * @private\n */\n\n\nexport function _getScaleDistanceAndAdjustedDomain(data, scaleObject) {\n var domain = scaleObject.domain,\n type = scaleObject.type,\n accessor = scaleObject.accessor,\n accessor0 = scaleObject.accessor0;\n var uniqueValues = getUniquePropertyValues(data, accessor); // Fix time scale if a data has only one value.\n\n var values = _normalizeValues(data, uniqueValues, accessor0, type);\n\n var index = _getSmallestDistanceIndex(values, scaleObject);\n\n var adjustedDomain = [].concat(domain);\n adjustedDomain[0] -= _computeLeftDomainAdjustment(values);\n adjustedDomain[domain.length - 1] += _computeRightDomainAdjustment(values); // Fix log scale if it's too small.\n\n if (type === LOG_SCALE_TYPE && domain[0] <= 0) {\n adjustedDomain[0] = Math.min(domain[1] / 10, 1);\n }\n\n var adjustedScaleFn = getScaleFnFromScaleObject(_extends({}, scaleObject, {\n domain: adjustedDomain\n }));\n\n var distance = _computeScaleDistance(values, adjustedDomain, index, adjustedScaleFn);\n\n return {\n domain0: adjustedDomain[0],\n domainN: adjustedDomain[adjustedDomain.length - 1],\n distance: distance\n };\n}\n/**\n * Returns true if scale adjustments are possible for a given scale.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {boolean} True if scale adjustments possible.\n * @private\n */\n\nfunction _isScaleAdjustmentPossible(props, scaleObject) {\n var attr = scaleObject.attr;\n var _props$_adjustBy = props._adjustBy,\n adjustBy = _props$_adjustBy === undefined ? [] : _props$_adjustBy,\n _props$_adjustWhat = props._adjustWhat,\n adjustWhat = _props$_adjustWhat === undefined ? [] : _props$_adjustWhat; // The scale cannot be adjusted if there's no attributes to adjust, no\n // suitable values\n\n return adjustWhat.length && adjustBy.length && adjustBy.indexOf(attr) !== -1;\n}\n/**\n * Adjust continuous scales (e.g. 'linear', 'log' and 'time') by adding the\n * space from the left and right of them and by computing the best distance.\n * @param {Object} props Props.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\n\n\nfunction _adjustContinuousScale(props, scaleObject) {\n var allSeriesData = props._allData,\n _props$_adjustWhat2 = props._adjustWhat,\n adjustWhat = _props$_adjustWhat2 === undefined ? [] : _props$_adjustWhat2; // Assign the initial values.\n\n var domainLength = scaleObject.domain.length;\n var domain = scaleObject.domain;\n var scaleDomain0 = domain[0];\n var scaleDomainN = domain[domainLength - 1];\n var scaleDistance = scaleObject.distance; // Find the smallest left position of the domain, the largest right position\n // of the domain and the best distance for them.\n\n allSeriesData.forEach(function (data, index) {\n if (adjustWhat.indexOf(index) === -1) {\n return;\n }\n\n if (data && data.length) {\n var _getScaleDistanceAndA = _getScaleDistanceAndAdjustedDomain(data, scaleObject),\n domain0 = _getScaleDistanceAndA.domain0,\n domainN = _getScaleDistanceAndA.domainN,\n distance = _getScaleDistanceAndA.distance;\n\n scaleDomain0 = Math.min(scaleDomain0, domain0);\n scaleDomainN = Math.max(scaleDomainN, domainN);\n scaleDistance = Math.max(scaleDistance, distance);\n }\n });\n scaleObject.domain = [scaleDomain0].concat(_toConsumableArray(domain.slice(1, -1)), [scaleDomainN]);\n scaleObject.distance = scaleDistance;\n return scaleObject;\n}\n/**\n * Get an adjusted scale. Suitable for 'category' and 'ordinal' scales.\n * @param {Object} scaleObject Scale object.\n * @returns {*} Scale object with adjustments.\n * @private\n */\n\n\nexport function _adjustCategoricalScale(scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n var domain = scaleObject.domain,\n range = scaleObject.range;\n\n if (domain.length > 1) {\n scaleObject.distance = Math.abs(scaleFn(domain[1]) - scaleFn(domain[0]));\n } else {\n scaleObject.distance = Math.abs(range[1] - range[0]);\n }\n\n return scaleObject;\n}\n/**\n * Retrieve a scale object or a value from the properties passed.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute.\n * @returns {*} Scale object, value or null.\n */\n\nexport function getScaleObjectFromProps(props, attr) {\n // Create the initial scale object.\n var scaleObject = _collectScaleObjectFromProps(props, attr);\n\n if (!scaleObject) {\n return null;\n } // Make sure if it's possible to add space to the scale object. If not,\n // return the object immediately.\n\n\n if (!_isScaleAdjustmentPossible(props, scaleObject)) {\n return scaleObject;\n }\n\n var type = scaleObject.type; // Depending on what type the scale is, apply different adjustments. Distances\n // for the ordinal and category scales are even, equal domains cannot be\n // adjusted.\n\n if (type === ORDINAL_SCALE_TYPE || type === CATEGORY_SCALE_TYPE) {\n return _adjustCategoricalScale(scaleObject);\n }\n\n return _adjustContinuousScale(props, scaleObject);\n}\n/**\n * Get d3 scale for a given prop.\n * @param {Object} props Props.\n * @param {string} attr Attribute.\n * @returns {function} d3 scale function.\n */\n\nexport function getAttributeScale(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return getScaleFnFromScaleObject(scaleObject);\n}\n/**\n * Get the value of `attr` from the object.\n * @param {Object} d - data Object.\n * @param {Function} accessor - accessor function.\n * @returns {*} Value of the point.\n * @private\n */\n\nfunction _getAttrValue(d, accessor) {\n return accessor(d.data ? d.data : d);\n}\n\nfunction _isDefined(value) {\n return typeof value !== 'undefined';\n}\n/*\n * Adds a percentage of padding to a given domain\n * @param {Array} domain X or Y domain to pad.\n * @param {Number} padding Percentage of padding to add to domain\n * @returns {Array} Padded Domain\n */\n\n\nfunction _padDomain(domain, padding) {\n if (!domain) {\n return domain;\n }\n\n if (isNaN(parseFloat(domain[0])) || isNaN(parseFloat(domain[1]))) {\n return domain;\n }\n\n var _domain = _slicedToArray(domain, 2),\n min = _domain[0],\n max = _domain[1];\n\n var domainPadding = (max - min) * (padding * 0.01);\n return [min - domainPadding, max + domainPadding];\n}\n/**\n * Get prop functor (either a value or a function) for a given attribute.\n * @param {Object} props Series props.\n * @param {Function} accessor - Property accessor.\n * @returns {*} Function or value.\n */\n\n\nexport function getAttributeFunctor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\n if (scaleObject) {\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n return scaleFn(_getAttrValue(d, scaleObject.accessor));\n };\n }\n\n return null;\n}\n/**\n * Get the functor which extracts value form [attr]0 property. Use baseValue if\n * no attr0 property for a given object is defined. Fall back to domain[0] if no\n * base value is available.\n * @param {Object} props Object of props.\n * @param {string} attr Attribute name.\n * @returns {*} Function which returns value or null if no values available.\n */\n\nexport function getAttr0Functor(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\n if (scaleObject) {\n var domain = scaleObject.domain;\n var _scaleObject$baseValu = scaleObject.baseValue,\n baseValue = _scaleObject$baseValu === undefined ? domain[0] : _scaleObject$baseValu;\n var scaleFn = getScaleFnFromScaleObject(scaleObject);\n return function (d) {\n var value = _getAttrValue(d, scaleObject.accessor0);\n\n return scaleFn(_isDefined(value) ? value : baseValue);\n };\n }\n\n return null;\n}\n/**\n * Tries to get the string|number value of the attr and falls back to\n * a fallback property in case if the value is a scale.\n * @param {Object} props Series props.\n * @param {string} attr Property name.\n * @returns {*} Function or value.\n */\n\nexport function getAttributeValue(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n\n if (scaleObject) {\n if (!scaleObject.isValue && props['_' + attr + 'Value'] === undefined) {\n warning('[React-vis] Cannot use data defined ' + attr + ' for this ' + 'series type. Using fallback value instead.');\n }\n\n return props['_' + attr + 'Value'] || scaleObject.range[0];\n }\n\n return null;\n}\n/**\n * Get prop types by the attribute.\n * @param {string} attr Attribute.\n * @returns {Object} Object of xDomain, xRange, xType, xDistance and _xValue,\n * where x is an attribute passed to the function.\n */\n\nexport function getScalePropTypesByAttribute(attr) {\n var _ref2;\n\n return _ref2 = {}, _defineProperty(_ref2, '_' + attr + 'Value', PropTypes.any), _defineProperty(_ref2, attr + 'Domain', PropTypes.array), _defineProperty(_ref2, 'get' + toTitleCase(attr), PropTypes.func), _defineProperty(_ref2, 'get' + toTitleCase(attr) + '0', PropTypes.func), _defineProperty(_ref2, attr + 'Range', PropTypes.array), _defineProperty(_ref2, attr + 'Type', PropTypes.oneOf(Object.keys(SCALE_FUNCTIONS))), _defineProperty(_ref2, attr + 'Distance', PropTypes.number), _defineProperty(_ref2, attr + 'BaseValue', PropTypes.any), _ref2;\n}\n/**\n * Extract the list of scale properties from the entire props object.\n * @param {Object} props Props.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\n\nexport function extractScalePropsFromProps(props, attributes) {\n var result = {};\n Object.keys(props).forEach(function (key) {\n // this filtering is critical for extracting the correct accessors!\n var attr = attributes.find(function (a) {\n // width\n var isPlainSet = key.indexOf(a) === 0; // Ex: _data\n\n var isUnderscoreSet = key.indexOf('_' + a) === 0; // EX: getX\n\n var usesGet = key.indexOf('get' + toTitleCase(a)) === 0;\n return isPlainSet || isUnderscoreSet || usesGet;\n });\n\n if (!attr) {\n return;\n }\n\n result[key] = props[key];\n });\n return result;\n}\n/**\n * Extract the missing scale props from the given data and return them as\n * an object.\n * @param {Object} props Props.\n * @param {Array} data Array of all data.\n * @param {Array} attributes Array of attributes for the given\n * components (for instance, `['x', 'y', 'color']`).\n * @returns {Object} Collected props.\n */\n\nexport function getMissingScaleProps(props, data, attributes) {\n var result = {}; // Make sure that the domain is set pad it if specified\n\n attributes.forEach(function (attr) {\n if (!props['get' + toTitleCase(attr)]) {\n result['get' + toTitleCase(attr)] = function (d) {\n return d[attr];\n };\n }\n\n if (!props['get' + toTitleCase(attr) + '0']) {\n result['get' + toTitleCase(attr) + '0'] = function (d) {\n return d[attr + '0'];\n };\n }\n\n if (!props[attr + 'Domain']) {\n result[attr + 'Domain'] = getDomainByAccessor(data, props['get' + toTitleCase(attr)] || result['get' + toTitleCase(attr)], props['get' + toTitleCase(attr) + '0'] || result['get' + toTitleCase(attr) + '0'], props[attr + 'Type']);\n\n if (props[attr + 'Padding']) {\n result[attr + 'Domain'] = _padDomain(result[attr + 'Domain'], props[attr + 'Padding']);\n }\n }\n });\n return result;\n}\n/**\n * Return a d3 scale that returns the literal value that was given to it\n * @returns {function} literal scale.\n */\n\nexport function literalScale(defaultValue) {\n function scale(d) {\n if (d === undefined) {\n return defaultValue;\n }\n\n return d;\n }\n\n function response() {\n return scale;\n }\n\n scale.domain = response;\n scale.range = response;\n scale.unknown = response;\n scale.copy = response;\n return scale;\n}\nexport function getFontColorFromBackground(background) {\n if (background) {\n return hsl(background).l > 0.57 ? '#222' : '#fff';\n }\n\n return null;\n}\n/**\n * Creates fallback values for series from scales defined at XYPlot level.\n * @param {Object} props Props of the XYPlot object.\n * @param {Array} children Array of components, children of XYPlot\n * @returns {Array} Collected props.\n */\n\nexport function getXYPlotValues(props, children) {\n var XYPlotScales = XYPLOT_ATTR.reduce(function (prev, attr) {\n var domain = props[attr + 'Domain'],\n range = props[attr + 'Range'],\n type = props[attr + 'Type'];\n\n if (domain && range && type) {\n return _extends({}, prev, _defineProperty({}, attr, SCALE_FUNCTIONS[type]().domain(domain).range(range)));\n }\n\n return prev;\n }, {});\n return children.map(function (child) {\n return XYPLOT_ATTR.reduce(function (prev, attr) {\n if (child.props && child.props[attr] !== undefined) {\n var scaleInput = child.props[attr];\n var scale = XYPlotScales[attr];\n var fallbackValue = scale ? scale(scaleInput) : scaleInput;\n return _extends({}, prev, _defineProperty({}, '_' + attr + 'Value', fallbackValue));\n }\n\n return prev;\n }, {});\n });\n}\nvar OPTIONAL_SCALE_PROPS = ['Padding'];\nvar OPTIONAL_SCALE_PROPS_REGS = OPTIONAL_SCALE_PROPS.map(function (str) {\n return new RegExp(str + '$', 'i');\n});\n/**\n * Get the list of optional scale-related settings for XYPlot\n * mostly just used to find padding properties\n * @param {Object} props Object of props.\n * @returns {Object} Optional Props.\n * @private\n */\n\nexport function getOptionalScaleProps(props) {\n return Object.keys(props).reduce(function (acc, prop) {\n var propIsNotOptional = OPTIONAL_SCALE_PROPS_REGS.every(function (reg) {\n return !prop.match(reg);\n });\n\n if (propIsNotOptional) {\n return acc;\n }\n\n acc[prop] = props[prop];\n return acc;\n }, {});\n}\nexport default {\n extractScalePropsFromProps: extractScalePropsFromProps,\n getAttributeScale: getAttributeScale,\n getAttributeFunctor: getAttributeFunctor,\n getAttr0Functor: getAttr0Functor,\n getAttributeValue: getAttributeValue,\n getDomainByAccessor: getDomainByAccessor,\n getFontColorFromBackground: getFontColorFromBackground,\n getMissingScaleProps: getMissingScaleProps,\n getOptionalScaleProps: getOptionalScaleProps,\n getScaleObjectFromProps: getScaleObjectFromProps,\n getScalePropTypesByAttribute: getScalePropTypesByAttribute,\n getXYPlotValues: getXYPlotValues,\n literalScale: literalScale\n};","import { range as sequence } from \"d3-array\";\nimport ordinal from \"./ordinal\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\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) {\n return start + step * i;\n });\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 ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = [+_[0], +_[1]], 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 = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), 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(domain()).range(range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\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().paddingInner(1));\n}","import { calendar } from \"./time\";\nimport { utcFormat } from \"d3-time-format\";\nimport { utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond } from \"d3-time\";\nexport default function () {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport PropTypes from 'prop-types';\nimport { voronoi } from 'd3-voronoi';\nimport { PureComponent } from 'react';\nimport { AnimationPropType } from '../../animation';\nimport { getAttributeFunctor, getAttr0Functor, getAttributeValue, getScaleObjectFromProps, getScalePropTypesByAttribute } from '../../utils/scales-utils';\n\nvar propTypes = _extends({}, getScalePropTypesByAttribute('x'), getScalePropTypesByAttribute('y'), getScalePropTypesByAttribute('size'), getScalePropTypesByAttribute('opacity'), getScalePropTypesByAttribute('color'), {\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.array])),\n onValueMouseOver: PropTypes.func,\n onValueMouseOut: PropTypes.func,\n onValueClick: PropTypes.func,\n onValueRightClick: PropTypes.func,\n onSeriesMouseOver: PropTypes.func,\n onSeriesMouseOut: PropTypes.func,\n onSeriesClick: PropTypes.func,\n onSeriesRightClick: PropTypes.func,\n onNearestX: PropTypes.func,\n onNearestXY: PropTypes.func,\n style: PropTypes.object,\n animation: AnimationPropType,\n stack: PropTypes.bool\n});\n\nvar defaultProps = {\n className: '',\n stack: false,\n style: {}\n};\n\nvar AbstractSeries = function (_PureComponent) {\n _inherits(AbstractSeries, _PureComponent);\n\n function AbstractSeries() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, AbstractSeries);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AbstractSeries.__proto__ || Object.getPrototypeOf(AbstractSeries)).call.apply(_ref, [this].concat(args))), _this), _this._seriesClickHandler = function (event) {\n var onSeriesClick = _this.props.onSeriesClick;\n\n if (onSeriesClick) {\n onSeriesClick({\n event: event\n });\n }\n }, _this._seriesMouseOutHandler = function (event) {\n var onSeriesMouseOut = _this.props.onSeriesMouseOut;\n\n if (onSeriesMouseOut) {\n onSeriesMouseOut({\n event: event\n });\n }\n }, _this._seriesMouseOverHandler = function (event) {\n var onSeriesMouseOver = _this.props.onSeriesMouseOver;\n\n if (onSeriesMouseOver) {\n onSeriesMouseOver({\n event: event\n });\n }\n }, _this._seriesRightClickHandler = function (event) {\n var onSeriesRightClick = _this.props.onSeriesRightClick;\n\n if (onSeriesRightClick) {\n onSeriesRightClick({\n event: event\n });\n }\n }, _this._valueClickHandler = function (d, event) {\n var _this$props = _this.props,\n onValueClick = _this$props.onValueClick,\n onSeriesClick = _this$props.onSeriesClick;\n\n if (onValueClick) {\n onValueClick(d, {\n event: event\n });\n }\n\n if (onSeriesClick) {\n onSeriesClick({\n event: event\n });\n }\n }, _this._valueMouseOutHandler = function (d, event) {\n var _this$props2 = _this.props,\n onValueMouseOut = _this$props2.onValueMouseOut,\n onSeriesMouseOut = _this$props2.onSeriesMouseOut;\n\n if (onValueMouseOut) {\n onValueMouseOut(d, {\n event: event\n });\n }\n\n if (onSeriesMouseOut) {\n onSeriesMouseOut({\n event: event\n });\n }\n }, _this._valueMouseOverHandler = function (d, event) {\n var _this$props3 = _this.props,\n onValueMouseOver = _this$props3.onValueMouseOver,\n onSeriesMouseOver = _this$props3.onSeriesMouseOver;\n\n if (onValueMouseOver) {\n onValueMouseOver(d, {\n event: event\n });\n }\n\n if (onSeriesMouseOver) {\n onSeriesMouseOver({\n event: event\n });\n }\n }, _this._valueRightClickHandler = function (d, event) {\n var _this$props4 = _this.props,\n onValueRightClick = _this$props4.onValueRightClick,\n onSeriesRightClick = _this$props4.onSeriesRightClick;\n\n if (onValueRightClick) {\n onValueRightClick(d, {\n event: event\n });\n }\n\n if (onSeriesRightClick) {\n onSeriesRightClick({\n event: event\n });\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(AbstractSeries, [{\n key: 'onParentMouseMove',\n value: function onParentMouseMove(event) {\n var _props = this.props,\n onNearestX = _props.onNearestX,\n onNearestXY = _props.onNearestXY,\n data = _props.data;\n\n if (!onNearestX && !onNearestXY || !data) {\n return;\n }\n\n if (onNearestXY) {\n this._handleNearestXY(event);\n } else {\n this._handleNearestX(event);\n }\n }\n }, {\n key: 'onParentTouchMove',\n value: function onParentTouchMove(e) {\n e.preventDefault();\n this.onParentMouseMove(e);\n }\n }, {\n key: 'onParentTouchStart',\n value: function onParentTouchStart(e) {\n // prevent mouse event emulation\n e.preventDefault();\n }\n /**\n * Get the attr0 functor.\n * @param {string} attr Attribute name.\n * @returns {*} Functor.\n * @private\n */\n\n }, {\n key: '_getAttr0Functor',\n value: function _getAttr0Functor(attr) {\n return getAttr0Functor(this.props, attr);\n }\n /**\n * Get attribute functor.\n * @param {string} attr Attribute name\n * @returns {*} Functor.\n * @protected\n */\n\n }, {\n key: '_getAttributeFunctor',\n value: function _getAttributeFunctor(attr) {\n return getAttributeFunctor(this.props, attr);\n }\n /**\n * Get the attribute value if it is available.\n * @param {string} attr Attribute name.\n * @returns {*} Attribute value if available, fallback value or undefined\n * otherwise.\n * @protected\n */\n\n }, {\n key: '_getAttributeValue',\n value: function _getAttributeValue(attr) {\n return getAttributeValue(this.props, attr);\n }\n /**\n * Get the scale object distance by the attribute from the list of properties.\n * @param {string} attr Attribute name.\n * @returns {number} Scale distance.\n * @protected\n */\n\n }, {\n key: '_getScaleDistance',\n value: function _getScaleDistance(attr) {\n var scaleObject = getScaleObjectFromProps(this.props, attr);\n return scaleObject ? scaleObject.distance : 0;\n }\n }, {\n key: '_getXYCoordinateInContainer',\n value: function _getXYCoordinateInContainer(event) {\n var _props2 = this.props,\n _props2$marginTop = _props2.marginTop,\n marginTop = _props2$marginTop === undefined ? 0 : _props2$marginTop,\n _props2$marginLeft = _props2.marginLeft,\n marginLeft = _props2$marginLeft === undefined ? 0 : _props2$marginLeft;\n var evt = event.nativeEvent,\n currentTarget = event.currentTarget;\n var rect = currentTarget.getBoundingClientRect();\n var x = evt.clientX;\n var y = evt.clientY;\n\n if (evt.type === 'touchmove') {\n x = evt.touches[0].pageX;\n y = evt.touches[0].pageY;\n }\n\n return {\n x: x - rect.left - currentTarget.clientLeft - marginLeft,\n y: y - rect.top - currentTarget.clientTop - marginTop\n };\n }\n }, {\n key: '_handleNearestX',\n value: function _handleNearestX(event) {\n var _props3 = this.props,\n onNearestX = _props3.onNearestX,\n data = _props3.data;\n var minDistance = Number.POSITIVE_INFINITY;\n var value = null;\n var valueIndex = null;\n\n var coordinate = this._getXYCoordinateInContainer(event);\n\n var xScaleFn = this._getAttributeFunctor('x');\n\n data.forEach(function (item, i) {\n var currentCoordinate = xScaleFn(item);\n var newDistance = Math.abs(coordinate.x - currentCoordinate);\n\n if (newDistance < minDistance) {\n minDistance = newDistance;\n value = item;\n valueIndex = i;\n }\n });\n\n if (!value) {\n return;\n }\n\n onNearestX(value, {\n innerX: xScaleFn(value),\n index: valueIndex,\n event: event.nativeEvent\n });\n }\n }, {\n key: '_handleNearestXY',\n value: function _handleNearestXY(event) {\n var _props4 = this.props,\n onNearestXY = _props4.onNearestXY,\n data = _props4.data;\n\n var coordinate = this._getXYCoordinateInContainer(event);\n\n var xScaleFn = this._getAttributeFunctor('x');\n\n var yScaleFn = this._getAttributeFunctor('y'); // Create a voronoi with each node center points\n\n\n var voronoiInstance = voronoi().x(xScaleFn).y(yScaleFn);\n var foundPoint = voronoiInstance(data).find(coordinate.x, coordinate.y);\n var value = foundPoint.data;\n\n if (!value) {\n return;\n }\n\n onNearestXY(value, {\n innerX: foundPoint[0],\n innerY: foundPoint[1],\n index: foundPoint.index,\n event: event.nativeEvent\n });\n }\n /**\n * Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse out handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse over handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Right Click handler for the entire series.\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Click handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse out handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Mouse over handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n /**\n * Right Click handler for the specific series' value.\n * @param {Object} d Value object\n * @param {Object} event Event.\n * @protected\n */\n\n }], [{\n key: 'getParentConfig',\n\n /**\n * Get a default config for the parent.\n * @returns {Object} Empty config.\n */\n value: function getParentConfig() {\n return {};\n }\n /**\n * Tells the rest of the world that it requires SVG to work.\n * @returns {boolean} Result.\n */\n\n }, {\n key: 'requiresSVG',\n get: function get() {\n return true;\n }\n }]);\n\n return AbstractSeries;\n}(PureComponent);\n\nAbstractSeries.displayName = 'AbstractSeries';\nAbstractSeries.propTypes = propTypes;\nAbstractSeries.defaultProps = defaultProps;\nexport default AbstractSeries;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nexport var DISCRETE_COLOR_RANGE = ['#12939A', '#79C7E3', '#1A3177', '#FF9833', '#EF5D28'];\nexport var EXTENDED_DISCRETE_COLOR_RANGE = ['#19CDD7', '#DDB27C', '#88572C', '#FF991F', '#F15C17', '#223F9A', '#DA70BF', '#125C77', '#4DC19C', '#776E57', '#12939A', '#17B8BE', '#F6D18A', '#B7885E', '#FFCB99', '#F89570', '#829AE3', '#E79FD5', '#1E96BE', '#89DAC1', '#B3AD9E'];\nexport var CONTINUOUS_COLOR_RANGE = ['#EF5D28', '#FF9833'];\nexport var SIZE_RANGE = [1, 10];\nexport var OPACITY_RANGE = [0.1, 1];\nexport var OPACITY_TYPE = 'literal';\nexport var DEFAULT_OPACITY = 1;\nexport var DEFAULT_SIZE = 5;\nexport var DEFAULT_COLOR = DISCRETE_COLOR_RANGE[0];\nexport var DEFAULT_TICK_SIZE = 7;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from '../plot/series/abstract-series';\nimport { DISCRETE_COLOR_RANGE, DEFAULT_OPACITY } from '../theme';\n/**\n * Check if the component is series or not.\n * @param {React.Component} child Component.\n * @returns {boolean} True if the child is series, false otherwise.\n */\n\nexport function isSeriesChild(child) {\n var prototype = child.type.prototype;\n return prototype instanceof AbstractSeries;\n}\n/**\n * Get all series from the 'children' object of the component.\n * @param {Object} children Children.\n * @returns {Array} Array of children.\n */\n\nexport function getSeriesChildren(children) {\n return React.Children.toArray(children).filter(function (child) {\n return child && isSeriesChild(child);\n });\n}\n/**\n * Collect the map of repetitions of the series type for all children.\n * @param {Array} children Array of children.\n * @returns {{}} Map of repetitions where sameTypeTotal is the total amount and\n * sameTypeIndex is always 0.\n */\n\nfunction collectSeriesTypesInfo(children) {\n var result = {};\n children.filter(isSeriesChild).forEach(function (child) {\n var displayName = child.type.displayName;\n var cluster = child.props.cluster;\n\n if (!result[displayName]) {\n result[displayName] = {\n sameTypeTotal: 0,\n sameTypeIndex: 0,\n clusters: new Set()\n };\n }\n\n result[displayName].clusters.add(cluster);\n result[displayName].sameTypeTotal++;\n });\n return result;\n}\n/**\n * Check series to see if it has angular data that needs to be converted\n * @param {Array} data - an array of objects to check\n * @returns {Boolean} whether or not this series contains polar configuration\n */\n\n\nfunction seriesHasAngleRadius() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (!data) {\n return false;\n }\n\n return data.some(function (row) {\n return row.radius && row.angle;\n });\n}\n/**\n * Possibly convert polar coordinates to x/y for computing domain\n * @param {Array} data - an array of objects to check\n * @param {String} attr - the property being checked\n * @returns {Boolean} whether or not this series contains polar configuration\n */\n\n\nfunction prepareData(data) {\n if (!seriesHasAngleRadius(data)) {\n return data;\n }\n\n return data.map(function (row) {\n return _extends({}, row, {\n x: row.radius * Math.cos(row.angle),\n y: row.radius * Math.sin(row.angle)\n });\n });\n}\n/**\n * Collect the stacked data for all children in use. If the children don't have\n * the data (e.g. the child is invalid series or something else), then the child\n * is skipped.\n * Each next value of attr is equal to the previous value plus the difference\n * between attr0 and attr.\n * @param {Array} children Array of children.\n * @param {string} attr Attribute to stack by.\n * @returns {Array} New array of children for the series.\n */\n\n\nexport function getStackedData(children, attr) {\n var areSomeSeriesStacked = children.some(function (series) {\n return series && series.props.stack;\n }); // It stores the last segment position added to each bar, separated by cluster.\n\n var latestAttrPositions = {};\n return children.reduce(function (accumulator, series, seriesIndex) {\n // Skip the children that are not series (e.g. don't have any data).\n if (!series) {\n accumulator.push(null);\n return accumulator;\n }\n\n var seriesType = series.type.displayName;\n var _series$props = series.props,\n data = _series$props.data,\n _series$props$cluster = _series$props.cluster,\n cluster = _series$props$cluster === undefined ? 'default' : _series$props$cluster,\n stack = _series$props.stack;\n var preppedData = prepareData(data, attr);\n\n if (!attr || !preppedData || !preppedData.length || areSomeSeriesStacked && !stack) {\n accumulator.push(preppedData);\n return accumulator;\n }\n\n var attr0 = attr + '0';\n var baseAttr = attr === 'y' ? 'x' : 'y';\n accumulator.push(preppedData.map(function (d, dIndex) {\n var _extends2, _latestAttrPositions$2;\n\n if (!latestAttrPositions[cluster]) {\n latestAttrPositions[cluster] = {};\n }\n\n if (!latestAttrPositions[cluster][seriesType]) {\n latestAttrPositions[cluster][seriesType] = {};\n }\n\n var prevD = latestAttrPositions[cluster][seriesType][d[baseAttr]]; // It is the first segment of a bar.\n\n if (!prevD) {\n var _latestAttrPositions$;\n\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$ = {}, _defineProperty(_latestAttrPositions$, attr0, d[attr0]), _defineProperty(_latestAttrPositions$, attr, d[attr]), _latestAttrPositions$);\n return _extends({}, d);\n } // Calculate the position of the next segment in a bar.\n\n\n var nextD = _extends({}, d, (_extends2 = {}, _defineProperty(_extends2, attr0, prevD[attr]), _defineProperty(_extends2, attr, prevD[attr] + d[attr] - (d[attr0] || 0)), _extends2));\n\n latestAttrPositions[cluster][seriesType][d[baseAttr]] = (_latestAttrPositions$2 = {}, _defineProperty(_latestAttrPositions$2, attr0, nextD[attr0]), _defineProperty(_latestAttrPositions$2, attr, nextD[attr]), _latestAttrPositions$2);\n return nextD;\n }));\n return accumulator;\n }, []);\n}\n/**\n * Get the list of series props for a child.\n * @param {Array} children Array of all children.\n * @returns {Array} Array of series props for each child. If a child is not a\n * series, than it's undefined.\n */\n\nexport function getSeriesPropsFromChildren(children) {\n var result = [];\n var seriesTypesInfo = collectSeriesTypesInfo(children);\n var seriesIndex = 0;\n var _opacityValue = DEFAULT_OPACITY;\n children.forEach(function (child) {\n var props = void 0;\n\n if (isSeriesChild(child)) {\n var seriesTypeInfo = seriesTypesInfo[child.type.displayName];\n var _colorValue = DISCRETE_COLOR_RANGE[seriesIndex % DISCRETE_COLOR_RANGE.length];\n props = _extends({}, seriesTypeInfo, {\n seriesIndex: seriesIndex,\n _colorValue: _colorValue,\n _opacityValue: _opacityValue\n });\n seriesTypeInfo.sameTypeIndex++;\n seriesIndex++;\n\n if (child.props.cluster) {\n props.cluster = child.props.cluster; // Using Array.from() so we can use .indexOf\n\n props.clusters = Array.from(seriesTypeInfo.clusters);\n props.sameTypeTotal = props.clusters.length;\n props.sameTypeIndex = props.clusters.indexOf(child.props.cluster);\n }\n }\n\n result.push(props);\n });\n return result;\n}\n/**\n * Find the max radius value from the nodes to be rendered after they have been\n * transformed into an array\n * @param {Array} data - the tree data after it has been broken into a iterable\n * it is an array of objects!\n * @returns {number} the maximum value in coordinates for the radial variable\n */\n\nexport function getRadialDomain(data) {\n return data.reduce(function (res, row) {\n return Math.max(row.radius, res);\n }, 0);\n}\nexport var ANIMATED_SERIES_PROPS = ['xRange', 'xDomain', 'x', 'yRange', 'yDomain', 'y', 'colorRange', 'colorDomain', 'color', 'opacityRange', 'opacityDomain', 'opacity', 'strokeRange', 'strokeDomain', 'stroke', 'fillRange', 'fillDomain', 'fill', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'data', 'angleDomain', 'angleRange', 'angle', 'radiusDomain', 'radiusRange', 'radius', 'innerRadiusDomain', 'innerRadiusRange', 'innerRadius'];\nexport function getStackParams(props) {\n var _stackBy = props._stackBy,\n valuePosAttr = props.valuePosAttr,\n cluster = props.cluster;\n var _props$sameTypeTotal = props.sameTypeTotal,\n sameTypeTotal = _props$sameTypeTotal === undefined ? 1 : _props$sameTypeTotal,\n _props$sameTypeIndex = props.sameTypeIndex,\n sameTypeIndex = _props$sameTypeIndex === undefined ? 0 : _props$sameTypeIndex; // If bars are stacked, but not clustering, override `sameTypeTotal` and\n // `sameTypeIndex` such that bars are stacked and not staggered.\n\n if (_stackBy === valuePosAttr && !cluster) {\n sameTypeTotal = 1;\n sameTypeIndex = 0;\n }\n\n return {\n sameTypeTotal: sameTypeTotal,\n sameTypeIndex: sameTypeIndex\n };\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","export default function (x) {\n return function constant() {\n return x;\n };\n}","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport { abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau } from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0,\n y10 = y1 - y0,\n x32 = x3 - x2,\n y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n} // Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\n\n\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00; // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function () {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n if (!context) context = buffer = path(); // Ensure that the outer radius is always larger than the inner radius.\n\n if (r1 < r0) r = r1, r1 = r0, r0 = r; // Is it a point?\n\n if (!(r1 > epsilon)) context.moveTo(0, 0); // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n } // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1; // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10); // Apply rounded corners?\n\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc; // Restrict the corner radius according to the sector angle.\n\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n } // Is the sector collapsed to a line?\n\n\n if (!(da1 > epsilon)) context.moveTo(x01, y01); // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function () {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n\n return arc;\n}","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { arc as arcBuilder } from 'd3-shape';\nimport AbstractSeries from './abstract-series';\nimport { getAttributeFunctor, getAttr0Functor, extractScalePropsFromProps, getMissingScaleProps, getScalePropTypesByAttribute } from '../../utils/scales-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--arc';\nvar ATTRIBUTES = ['radius', 'angle'];\n\nvar defaultProps = _extends({}, AbstractSeries.defaultProps, {\n center: {\n x: 0,\n y: 0\n },\n arcClassName: '',\n className: '',\n style: {},\n padAngle: 0\n});\n/**\n * Prepare the internal representation of row for real use.\n * This is necessary because d3 insists on starting at 12 oclock and moving\n * clockwise, rather than starting at 3 oclock and moving counter clockwise\n * as one might expect from polar\n * @param {Object} row - coordinate object to be modifed\n * @return {Object} angle corrected object\n */\n\n\nfunction modifyRow(row) {\n var radius = row.radius,\n angle = row.angle,\n angle0 = row.angle0;\n var truedAngle = -1 * angle + Math.PI / 2;\n var truedAngle0 = -1 * angle0 + Math.PI / 2;\n return _extends({}, row, {\n x: radius * Math.cos(truedAngle),\n y: radius * Math.sin(truedAngle),\n angle: truedAngle,\n angle0: truedAngle0\n });\n}\n\nvar ArcSeries = function (_AbstractSeries) {\n _inherits(ArcSeries, _AbstractSeries);\n\n function ArcSeries(props) {\n _classCallCheck(this, ArcSeries);\n\n var _this = _possibleConstructorReturn(this, (ArcSeries.__proto__ || Object.getPrototypeOf(ArcSeries)).call(this, props));\n\n var scaleProps = _this._getAllScaleProps(props);\n\n _this.state = {\n scaleProps: scaleProps\n };\n return _this;\n }\n\n _createClass(ArcSeries, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState({\n scaleProps: this._getAllScaleProps(nextProps)\n });\n }\n /**\n * Get the map of scales from the props.\n * @param {Object} props Props.\n * @param {Array} data Array of all data.\n * @returns {Object} Map of scales.\n * @private\n */\n\n }, {\n key: '_getAllScaleProps',\n value: function _getAllScaleProps(props) {\n var defaultScaleProps = this._getDefaultScaleProps(props);\n\n var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, userScaleProps), props.data, ATTRIBUTES);\n return _extends({}, defaultScaleProps, userScaleProps, missingScaleProps);\n }\n /**\n * Get the list of scale-related settings that should be applied by default.\n * @param {Object} props Object of props.\n * @returns {Object} Defaults.\n * @private\n */\n\n }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var innerWidth = props.innerWidth,\n innerHeight = props.innerHeight;\n var radius = Math.min(innerWidth / 2, innerHeight / 2);\n return {\n radiusRange: [0, radius],\n _radiusValue: radius,\n angleType: 'literal'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n arcClassName = _props.arcClassName,\n animation = _props.animation,\n className = _props.className,\n center = _props.center,\n data = _props.data,\n disableSeries = _props.disableSeries,\n hideSeries = _props.hideSeries,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n padAngle = _props.padAngle,\n style = _props.style;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n var cloneData = data.map(function (d) {\n return _extends({}, d);\n });\n return React.createElement('g', {\n className: 'rv-xy-plot__series--arc__animation-wrapper'\n }, React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS,\n data: cloneData\n }), React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n disableSeries: true,\n data: cloneData\n }))), React.createElement(ArcSeries, _extends({}, this.props, {\n animation: null,\n hideSeries: true,\n style: {\n stroke: 'red'\n }\n })));\n }\n\n var scaleProps = this.state.scaleProps;\n var radiusDomain = scaleProps.radiusDomain; // need to generate our own functors as abstract series doesnt have anythign for us\n\n var radius = getAttributeFunctor(scaleProps, 'radius');\n var radius0 = getAttr0Functor(scaleProps, 'radius');\n var angle = getAttributeFunctor(scaleProps, 'angle');\n var angle0 = getAttr0Functor(scaleProps, 'angle'); // but it does have good color support!\n\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacity = this._getAttributeFunctor('opacity');\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n opacity: hideSeries ? 0 : 1,\n pointerEvents: disableSeries ? 'none' : 'all',\n transform: 'translate(' + (marginLeft + x(center)) + ',' + (marginTop + y(center)) + ')'\n }, data.map(function (row, i) {\n var noRadius = radiusDomain[1] === radiusDomain[0];\n var arcArg = {\n innerRadius: noRadius ? 0 : radius0(row),\n outerRadius: radius(row),\n startAngle: angle0(row) || 0,\n endAngle: angle(row)\n };\n var arcedData = arcBuilder().padAngle(padAngle);\n var rowStyle = row.style || {};\n var rowClassName = row.className || '';\n return React.createElement('path', {\n style: _extends({\n opacity: opacity && opacity(row),\n stroke: stroke && stroke(row),\n fill: fill && fill(row)\n }, style, rowStyle),\n onClick: function onClick(e) {\n return _this2._valueClickHandler(modifyRow(row), e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(modifyRow(row), e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(modifyRow(row), e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(modifyRow(row), e);\n },\n key: i,\n className: predefinedClassName + '-path ' + arcClassName + ' ' + rowClassName,\n d: arcedData(arcArg)\n });\n }));\n }\n }]);\n\n return ArcSeries;\n}(AbstractSeries);\n\nArcSeries.defaultProps = defaultProps;\nArcSeries.displayName = 'ArcSeries';\nexport default ArcSeries;","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\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();else output.lineEnd();\n }\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}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(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\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n\n output.lineEnd();\n output.areaEnd();\n }\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 = 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}","export default function (a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","export default function (d) {\n return d;\n}","import \"core-js/modules/es.array.sort.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport { tau } from \"./math.js\";\nexport default function () {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n } // Optionally sort the arcs by previously-computed values or by data.\n\n\n if (sortValues != null) index.sort(function (i, j) {\n return sortValues(arcs[i], arcs[j]);\n });else if (sort != null) index.sort(function (i, j) {\n return sort(data[i], data[j]);\n }); // Compute the arcs! They are stored in the original data's order.\n\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}","import curveLinear from \"./linear.js\";\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function areaStart() {\n this._curve.areaStart();\n },\n areaEnd: function areaEnd() {\n this._curve.areaEnd();\n },\n lineStart: function lineStart() {\n this._curve.lineStart();\n },\n lineEnd: function lineEnd() {\n this._curve.lineEnd();\n },\n point: function point(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\nexport default function curveRadial(curve) {\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n return radial;\n}","import curveRadial, { curveRadialLinear } from \"./curve/radial.js\";\nimport line from \"./line.js\";\nexport function lineRadial(l) {\n var c = l.curve;\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\nexport default function () {\n return lineRadial(line().curve(curveRadialLinear));\n}","import curveRadial, { curveRadialLinear } from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport { lineRadial } from \"./lineRadial.js\";\nexport default function () {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function () {\n return lineRadial(x0());\n }, delete a.lineX0;\n a.lineEndAngle = function () {\n return lineRadial(x1());\n }, delete a.lineX1;\n a.lineInnerRadius = function () {\n return lineRadial(y0());\n }, delete a.lineY0;\n a.lineOuterRadius = function () {\n return lineRadial(y1());\n }, delete a.lineY1;\n\n a.curve = function (_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}","export default function (x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}","export var slice = Array.prototype.slice;","import { path } from \"d3-path\";\nimport { slice } from \"../array.js\";\nimport constant from \"../constant.js\";\nimport { x as pointX, y as pointY } from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer,\n argv = slice.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function (_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function (_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\nexport function linkVertical() {\n return link(curveVertical);\n}\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}","import { pi, tau } from \"../math.js\";\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};","export default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\nexport default {\n draw: function draw(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};","import { pi, tau } from \"../math.js\";\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n\n context.closePath();\n }\n};","export default {\n draw: function draw(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};","var sqrt3 = Math.sqrt(3);\nexport default {\n draw: function draw(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\nexport default {\n draw: function draw(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};","import { path } from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\nexport var symbols = [circle, cross, diamond, square, star, triangle, wye];\nexport default function () {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function (_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function (_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}","export default function () {}","function _point(that, x, y) {\n that._context.bezierCurveTo((2 * that._x0 + that._x1) / 3, (2 * that._y0 + that._y1) / 3, (that._x0 + 2 * that._x1) / 3, (that._y0 + 2 * that._y1) / 3, (that._x0 + 4 * that._x1 + x) / 6, (that._y0 + 4 * that._y1 + y) / 6);\n}\n\nexport { _point as point };\nexport function Basis(context) {\n this._context = context;\n}\nBasis.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 3:\n _point(this, this._x1, this._y1);\n\n // proceed\n\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new Basis(context);\n}","import noop from \"../noop.js\";\nimport { point as _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 lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x2, this._y2);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\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 point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x, this._y2 = y;\n break;\n\n case 1:\n this._point = 2;\n this._x3 = x, this._y3 = y;\n break;\n\n case 2:\n this._point = 3;\n this._x4 = x, this._y4 = y;\n\n this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6);\n\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisClosed(context);\n}","import { point as _point } from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x) / 6,\n y0 = (this._y0 + 4 * this._y1 + y) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\nexport default function (context) {\n return new BasisOpen(context);\n}","import { Basis } from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n\n this._basis.lineStart();\n },\n lineEnd: function lineEnd() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n\n this._basis.point(this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), this._beta * y[i] + (1 - this._beta) * (y0 + t * dy));\n }\n }\n\n this._x = this._y = null;\n\n this._basis.lineEnd();\n },\n point: function point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n};\nexport default (function custom(beta) {\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function (beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);","function _point(that, x, y) {\n that._context.bezierCurveTo(that._x1 + that._k * (that._x2 - that._x0), that._y1 + that._k * (that._y2 - that._y0), that._x2 + that._k * (that._x1 - x), that._y2 + that._k * (that._y1 - y), that._x2, that._y2);\n}\n\nexport { _point as point };\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinal.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n _point(this, this._x1, this._y1);\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n this._x1 = x, this._y1 = y;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import noop from \"../noop.js\";\nimport { point as _point } from \"./cardinal.js\";\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { point as _point } from \"./cardinal.js\";\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\nCardinalOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(tension) {\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function (tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);","import { epsilon } from \"../math.js\";\nimport { Cardinal } from \"./cardinal.js\";\n\nfunction _point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nexport { _point as point };\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n\n break;\n\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalClosed } from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 1:\n {\n this._context.moveTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 2:\n {\n this._context.lineTo(this._x3, this._y3);\n\n this._context.closePath();\n\n break;\n }\n\n case 3:\n {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x, this._y3 = y;\n break;\n\n case 1:\n this._point = 2;\n\n this._context.moveTo(this._x4 = x, this._y4 = y);\n\n break;\n\n case 2:\n this._point = 3;\n this._x5 = x, this._y5 = y;\n break;\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","import { CardinalOpen } from \"./cardinalOpen.js\";\nimport { point as _point } from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n\n case 3:\n this._point = 4;\n // proceed\n\n default:\n _point(this, x, y);\n\n break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\nexport default (function custom(alpha) {\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function (alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);","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 lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._point) this._context.closePath();\n },\n point: function point(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);else this._point = 1, this._context.moveTo(x, y);\n }\n};\nexport default function (context) {\n return new LinearClosed(context);\n}","function sign(x) {\n return x < 0 ? -1 : 1;\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.\n\n\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} // Calculate a one-sided slope.\n\n\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\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\".\n\n\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\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 areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n\n break;\n\n case 3:\n _point(this, this._t0, slope2(this, this._t0));\n\n break;\n }\n\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n var t1 = NaN;\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n break;\n\n case 2:\n this._point = 3;\n\n _point(this, slope2(this, t1 = slope3(this, x, y)), t1);\n\n break;\n\n default:\n _point(this, this._t0, t1 = slope3(this, x, y));\n\n 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 moveTo(x, y) {\n this._context.moveTo(y, x);\n },\n closePath: function closePath() {\n this._context.closePath();\n },\n lineTo: function lineTo(x, y) {\n this._context.lineTo(y, x);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y, x);\n }\n};\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function lineEnd() {\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\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n\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 point(x, y) {\n this._x.push(+x);\n\n this._y.push(+y);\n }\n}; // See https://www.particleincell.com/2012/bezier-splines/ for derivation.\n\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\n for (i = 1; i < n - 1; ++i) {\n a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n }\n\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n\n for (i = 1; i < n; ++i) {\n m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n }\n\n a[n - 1] = r[n - 1] / b[n - 1];\n\n for (i = n - 2; i >= 0; --i) {\n a[i] = (r[i] - a[i + 1]) / b[i];\n }\n\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n\n for (i = 0; i < n - 1; ++i) {\n b[i] = 2 * x[i + 1] - a[i + 1];\n }\n\n return [a, b];\n}\n\nexport default function (context) {\n return new Natural(context);\n}","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function lineEnd() {\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 point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n\n this._context.lineTo(x1, this._y);\n\n this._context.lineTo(x1, y);\n }\n\n break;\n }\n }\n\n this._x = x, this._y = y;\n }\n};\nexport default function (context) {\n return new Step(context, 0.5);\n}\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\nexport function stepAfter(context) {\n return new Step(context, 1);\n}","export default function (series, order) {\n if (!((n = series.length) > 1)) return;\n\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\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}","export default function (series) {\n var n = series.length,\n o = new Array(n);\n\n while (--n >= 0) {\n o[n] = n;\n }\n\n return o;\n}","import { slice } 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\nexport default function () {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n\n si.key = ki;\n }\n\n for (i = 0, oz = 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(slice.call(_)), 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(slice.call(_)), stack) : order;\n };\n\n stack.offset = function (_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) {\n y += series[i][j][1] || 0;\n }\n\n if (y) for (i = 0; i < n; ++i) {\n series[i][j][1] /= y;\n }\n }\n\n none(series, order);\n}","export default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0)) return;\n\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) {\n y += series[i][j][1] || 0;\n }\n\n s0[j][1] += s0[j][0] = -y / 2;\n }\n\n none(series, order);\n}","import none from \"./none.js\";\nexport default function (series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n\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\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\n s1 += sij0, s2 += s3 * sij0;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var peaks = series.map(peak);\n return none(series).sort(function (a, b) {\n return peaks[a] - peaks[b];\n });\n}\n\nfunction peak(series) {\n var i = -1,\n j = 0,\n n = series.length,\n vi,\n vj = -Infinity;\n\n while (++i < n) {\n if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n }\n\n return j;\n}","import \"core-js/modules/es.array.sort.js\";\nimport none from \"./none.js\";\nexport default function (series) {\n var sums = series.map(sum);\n return none(series).sort(function (a, b) {\n return sums[a] - sums[b];\n });\n}\nexport function sum(series) {\n var s = 0,\n i = -1,\n n = series.length,\n v;\n\n while (++i < n) {\n if (v = +series[i][1]) s += v;\n }\n\n return s;\n}","import ascending from \"./ascending.js\";\nexport default function (series) {\n return ascending(series).reverse();\n}","import appearance from \"./appearance.js\";\nimport { sum } from \"./ascending.js\";\nexport default function (series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}","import none from \"./none.js\";\nexport default function (series) {\n return none(series).reverse();\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport * as d3Shape from 'd3-shape';\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--line';\n\nvar AreaSeries = function (_AbstractSeries) {\n _inherits(AreaSeries, _AbstractSeries);\n\n function AreaSeries() {\n _classCallCheck(this, AreaSeries);\n\n return _possibleConstructorReturn(this, (AreaSeries.__proto__ || Object.getPrototypeOf(AreaSeries)).apply(this, arguments));\n }\n\n _createClass(AreaSeries, [{\n key: '_renderArea',\n value: function _renderArea(data, x, y0, y, curve, getNull) {\n var area = d3Shape.area();\n\n if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n area = area.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n area = area.curve(curve);\n }\n }\n\n area = area.defined(getNull);\n area = area.x(x).y0(y0).y1(y);\n return area(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n curve = _props.curve,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(AreaSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var y0 = this._getAttr0Functor('y');\n\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n\n var fill = this._getAttributeValue('fill') || this._getAttributeValue('color');\n\n var newOpacity = this._getAttributeValue('opacity');\n\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n var d = this._renderArea(data, x, y0, y, curve, getNull);\n\n return React.createElement('path', {\n d: d,\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n style: _extends({\n opacity: opacity,\n stroke: stroke,\n fill: fill\n }, style)\n });\n }\n }]);\n\n return AreaSeries;\n}(AbstractSeries);\n\nAreaSeries.displayName = 'AreaSeries';\nAreaSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n getNull: function getNull() {\n return true;\n }\n});\nexport default AreaSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nvar CLASSES = {\n bottom: 'rv-xy-plot__borders-bottom',\n container: 'rv-xy-plot__borders',\n left: 'rv-xy-plot__borders-left',\n right: 'rv-xy-plot__borders-right',\n top: 'rv-xy-plot__borders-top'\n};\n\nfunction Borders(props) {\n var marginTop = props.marginTop,\n marginBottom = props.marginBottom,\n marginLeft = props.marginLeft,\n marginRight = props.marginRight,\n innerWidth = props.innerWidth,\n innerHeight = props.innerHeight,\n style = props.style,\n className = props.className;\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n return React.createElement('g', {\n className: CLASSES.container + ' ' + className\n }, React.createElement('rect', {\n className: CLASSES.bottom + ' ' + className + '-bottom',\n style: _extends({}, style.all, style.bottom),\n x: 0,\n y: height - marginBottom,\n width: width,\n height: marginBottom\n }), React.createElement('rect', {\n className: CLASSES.left + ' ' + className + '-left',\n style: _extends({}, style.all, style.left),\n x: 0,\n y: 0,\n width: marginLeft,\n height: height\n }), React.createElement('rect', {\n className: CLASSES.right + ' ' + className + '-right',\n style: _extends({}, style.all, style.right),\n x: width - marginRight,\n y: 0,\n width: marginRight,\n height: height\n }), React.createElement('rect', {\n className: CLASSES.top + ' ' + className + '-top',\n style: _extends({}, style.all, style.top),\n x: 0,\n y: 0,\n width: width,\n height: marginTop\n }));\n}\n\nBorders.displayName = 'Borders';\nBorders.defaultProps = {\n className: '',\n style: {\n all: {},\n bottom: {},\n left: {},\n right: {},\n top: {}\n }\n};\nBorders.requiresSVG = true;\nexport default Borders;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2018 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\n\nvar ChartLabel = function (_React$PureComponent) {\n _inherits(ChartLabel, _React$PureComponent);\n\n function ChartLabel() {\n _classCallCheck(this, ChartLabel);\n\n return _possibleConstructorReturn(this, (ChartLabel.__proto__ || Object.getPrototypeOf(ChartLabel)).apply(this, arguments));\n }\n\n _createClass(ChartLabel, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginTop = _props.marginTop,\n className = _props.className,\n includeMargin = _props.includeMargin,\n style = _props.style,\n text = _props.text,\n xPercent = _props.xPercent,\n yPercent = _props.yPercent;\n var width = innerWidth + (includeMargin ? marginLeft + marginRight : 0);\n var height = innerHeight + (includeMargin ? marginTop + marginBottom : 0);\n var xPos = width * xPercent + (includeMargin ? 0 : marginLeft);\n var yPos = height * yPercent + (includeMargin ? marginLeft : 0);\n return React.createElement('g', {\n transform: 'translate(' + xPos + ', ' + yPos + ')',\n className: 'rv-xy-plot__axis__title ' + className\n }, React.createElement('text', style, text));\n }\n }], [{\n key: 'requiresSVG',\n get: function get() {\n return true;\n }\n }]);\n\n return ChartLabel;\n}(React.PureComponent);\n\nChartLabel.displayName = 'ChartLabel';\nChartLabel.defaultProps = {\n className: '',\n includeMargin: true,\n text: '',\n xPercent: 0,\n yPercent: 0,\n style: {}\n};\nexport default ChartLabel;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport { range } from 'd3-array';\nimport { scaleLinear } from 'd3-scale';\nexport var ORIENTATION = {\n TOP: 'top',\n LEFT: 'left',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\nexport var DIRECTION = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal'\n};\n/**\n * Get total amount of ticks from a given size in pixels.\n * @param {number} size Size of the axis in pixels.\n * @returns {number} Total amount of ticks.\n */\n\nexport function getTicksTotalFromSize(size) {\n if (size < 700) {\n if (size > 300) {\n return 10;\n }\n\n return 5;\n }\n\n return 20;\n}\n/**\n * Get the tick values from a given d3 scale.\n * @param {d3.scale} scale Scale function.\n * @param {number} tickTotal Total number of ticks\n * @param {Array} tickValues Array of tick values if they exist.\n * @returns {Array} Array of tick values.\n */\n\nexport function getTickValues(scale, tickTotal, tickValues) {\n return !tickValues ? scale.ticks ? scale.ticks(tickTotal) : scale.domain() : tickValues;\n}\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Object describing each the line in coordinates\n */\n\nexport function generateFit(axisStart, axisEnd) {\n // address the special case when the slope is infinite\n if (axisStart.x === axisEnd.x) {\n return {\n left: axisStart.y,\n right: axisEnd.y,\n slope: 0,\n offset: axisStart.x\n };\n }\n\n var slope = (axisStart.y - axisEnd.y) / (axisStart.x - axisEnd.x);\n return {\n left: axisStart.x,\n right: axisEnd.x,\n // generate the linear projection of the axis direction\n slope: slope,\n offset: axisStart.y - slope * axisStart.x\n };\n}\n/**\n * Generate a description of a decorative axis in terms of a linear equation\n * y = slope * x + offset in coordinates\n * @param props\n * props.@param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * props.@param {Number} numberOfTicks The number of ticks on the axis\n * props.@param {Array.Numbers} axisDomain The values to be interpolated across for the axis\n * @returns {Number} Object describing the slope and the specific coordinates of the points\n */\n\nexport function generatePoints(_ref) {\n var axisStart = _ref.axisStart,\n axisEnd = _ref.axisEnd,\n numberOfTicks = _ref.numberOfTicks,\n axisDomain = _ref.axisDomain;\n\n var _generateFit = generateFit(axisStart, axisEnd),\n left = _generateFit.left,\n right = _generateFit.right,\n slope = _generateFit.slope,\n offset = _generateFit.offset; // construct a linear band of points, then map them\n\n\n var pointSlope = (right - left) / numberOfTicks;\n var axisScale = scaleLinear().domain([left, right]).range(axisDomain);\n var slopeVertical = axisStart.x === axisEnd.x;\n return {\n slope: slopeVertical ? Infinity : slope,\n points: range(left, right + pointSlope, pointSlope).map(function (val) {\n if (slopeVertical) {\n return {\n y: val,\n x: slope * val + offset,\n text: axisScale(val)\n };\n }\n\n return {\n x: val,\n y: slope * val + offset,\n text: axisScale(val)\n };\n }).slice(0, numberOfTicks + 1)\n };\n}\n/**\n * Compute the angle (in radians) of a decorative axis\n * @param {Object} axisStart Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @param {Object} axisEnd Object of format {x, y} describing in coordinates\n * the start position of the decorative axis\n * @returns {Number} Angle in radials\n */\n\nexport function getAxisAngle(axisStart, axisEnd) {\n if (axisStart.x === axisEnd.x) {\n return axisEnd.y > axisStart.y ? Math.PI / 2 : 3 * Math.PI / 2;\n }\n\n return Math.atan((axisEnd.y - axisStart.y) / (axisEnd.x - axisStart.x));\n}\nexport default {\n DIRECTION: DIRECTION,\n ORIENTATION: ORIENTATION,\n getTicksTotalFromSize: getTicksTotalFromSize,\n getTickValues: getTickValues\n};","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { PureComponent } from 'react';\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getTicksTotalFromSize, getTickValues } from '../utils/axis-utils';\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickTotal'];\n\nvar CircularGridLines = function (_PureComponent) {\n _inherits(CircularGridLines, _PureComponent);\n\n function CircularGridLines() {\n _classCallCheck(this, CircularGridLines);\n\n return _possibleConstructorReturn(this, (CircularGridLines.__proto__ || Object.getPrototypeOf(CircularGridLines)).apply(this, arguments));\n }\n\n _createClass(CircularGridLines, [{\n key: '_getDefaultProps',\n value: function _getDefaultProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginLeft = _props.marginLeft;\n return {\n left: marginLeft,\n top: marginTop,\n width: innerWidth,\n height: innerHeight,\n style: {},\n tickTotal: getTicksTotalFromSize(Math.min(innerWidth, innerHeight))\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n animation = _props2.animation,\n centerX = _props2.centerX,\n centerY = _props2.centerY;\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(CircularGridLines, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var props = _extends({}, this._getDefaultProps(), this.props);\n\n var tickTotal = props.tickTotal,\n tickValues = props.tickValues,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n rRange = props.rRange,\n style = props.style;\n var xScale = getAttributeScale(props, 'x');\n var yScale = getAttributeScale(props, 'y');\n var values = getTickValues(xScale, tickTotal, tickValues);\n return React.createElement('g', {\n transform: 'translate(' + (xScale(centerX) + marginLeft) + ',' + (yScale(centerY) + marginTop) + ')',\n className: 'rv-xy-plot__circular-grid-lines'\n }, values.reduce(function (res, value, index) {\n var radius = xScale(value);\n\n if (rRange && (radius < rRange[0] || radius > rRange[1])) {\n return res;\n }\n\n return res.concat([React.createElement('circle', _extends({\n cx: 0,\n cy: 0,\n r: radius\n }, {\n key: index,\n className: 'rv-xy-plot__circular-grid-lines__line',\n style: style\n }))]);\n }, []));\n }\n }]);\n\n return CircularGridLines;\n}(PureComponent);\n\nCircularGridLines.displayName = 'CircularGridLines';\nCircularGridLines.defaultProps = {\n centerX: 0,\n centerY: 0\n};\nCircularGridLines.requiresSVG = true;\nexport default CircularGridLines;","var array = Array.prototype;\nexport var slice = array.slice;","export default function (a, b) {\n return a - b;\n}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function (ring, hole) {\n var i = -1,\n n = hole.length,\n c;\n\n while (++i < n) {\n if (c = ringContains(ring, hole[i])) return c;\n }\n\n return 0;\n}\n\nfunction ringContains(ring, point) {\n var x = point[0],\n y = point[1],\n contains = -1;\n\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i],\n xi = pi[0],\n yi = pi[1],\n pj = ring[j],\n xj = pj[0],\n yj = pj[1];\n if (segmentContains(pi, pj, point)) return 0;\n if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = -contains;\n }\n\n return contains;\n}\n\nfunction segmentContains(a, b, c) {\n var i;\n return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n return p <= q && q <= r || r <= q && q <= p;\n}","export default function () {}","import \"core-js/modules/es.array.sort.js\";\nimport { extent, thresholdSturges, tickStep, range } from \"d3-array\";\nimport { slice } from \"./array\";\nimport ascending from \"./ascending\";\nimport area from \"./area\";\nimport constant from \"./constant\";\nimport contains from \"./contains\";\nimport noop from \"./noop\";\nvar cases = [[], [[[1.0, 1.5], [0.5, 1.0]]], [[[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [0.5, 1.0]]], [[[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 0.5], [1.0, 1.5]]], [[[1.0, 0.5], [0.5, 1.0]]], [[[0.5, 1.0], [1.0, 0.5]]], [[[1.0, 1.5], [1.0, 0.5]]], [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [1.0, 0.5]]], [[[0.5, 1.0], [1.5, 1.0]]], [[[1.0, 1.5], [1.5, 1.0]]], [[[0.5, 1.0], [1.0, 1.5]]], []];\nexport default function () {\n var dx = 1,\n dy = 1,\n threshold = thresholdSturges,\n smooth = smoothLinear;\n\n function contours(values) {\n var tz = threshold(values); // Convert number of thresholds into uniform thresholds.\n\n if (!Array.isArray(tz)) {\n var domain = extent(values),\n start = domain[0],\n stop = domain[1];\n tz = tickStep(start, stop, tz);\n tz = range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);\n } else {\n tz = tz.slice().sort(ascending);\n }\n\n return tz.map(function (value) {\n return contour(values, value);\n });\n } // Accumulate, smooth contour rings, assign holes to exterior rings.\n // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n\n\n function contour(values, value) {\n var polygons = [],\n holes = [];\n isorings(values, value, function (ring) {\n smooth(ring, values, value);\n if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);\n });\n holes.forEach(function (hole) {\n for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n if (contains((polygon = polygons[i])[0], hole) !== -1) {\n polygon.push(hole);\n return;\n }\n }\n });\n return {\n type: \"MultiPolygon\",\n value: value,\n coordinates: polygons\n };\n } // Marching squares with isolines stitched into rings.\n // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n\n\n function isorings(values, value, callback) {\n var fragmentByStart = new Array(),\n fragmentByEnd = new Array(),\n x,\n y,\n t0,\n t1,\n t2,\n t3; // Special case for the first row (y = -1, t2 = t3 = 0).\n\n x = y = -1;\n t1 = values[0] >= value;\n cases[t1 << 1].forEach(stitch);\n\n while (++x < dx - 1) {\n t0 = t1, t1 = values[x + 1] >= value;\n cases[t0 | t1 << 1].forEach(stitch);\n }\n\n cases[t1 << 0].forEach(stitch); // General case for the intermediate rows.\n\n while (++y < dy - 1) {\n x = -1;\n t1 = values[y * dx + dx] >= value;\n t2 = values[y * dx] >= value;\n cases[t1 << 1 | t2 << 2].forEach(stitch);\n\n while (++x < dx - 1) {\n t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n }\n\n cases[t1 | t2 << 3].forEach(stitch);\n } // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n\n\n x = -1;\n t2 = values[y * dx] >= value;\n cases[t2 << 2].forEach(stitch);\n\n while (++x < dx - 1) {\n t3 = t2, t2 = values[y * dx + x + 1] >= value;\n cases[t2 << 2 | t3 << 3].forEach(stitch);\n }\n\n cases[t2 << 3].forEach(stitch);\n\n function stitch(line) {\n var start = [line[0][0] + x, line[0][1] + y],\n end = [line[1][0] + x, line[1][1] + y],\n startIndex = index(start),\n endIndex = index(end),\n f,\n g;\n\n if (f = fragmentByEnd[startIndex]) {\n if (g = fragmentByStart[endIndex]) {\n delete fragmentByEnd[f.end];\n delete fragmentByStart[g.start];\n\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[f.start] = fragmentByEnd[g.end] = {\n start: f.start,\n end: g.end,\n ring: f.ring.concat(g.ring)\n };\n }\n } else {\n delete fragmentByEnd[f.end];\n f.ring.push(end);\n fragmentByEnd[f.end = endIndex] = f;\n }\n } else if (f = fragmentByStart[endIndex]) {\n if (g = fragmentByEnd[startIndex]) {\n delete fragmentByStart[f.start];\n delete fragmentByEnd[g.end];\n\n if (f === g) {\n f.ring.push(end);\n callback(f.ring);\n } else {\n fragmentByStart[g.start] = fragmentByEnd[f.end] = {\n start: g.start,\n end: f.end,\n ring: g.ring.concat(f.ring)\n };\n }\n } else {\n delete fragmentByStart[f.start];\n f.ring.unshift(start);\n fragmentByStart[f.start = startIndex] = f;\n }\n } else {\n fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {\n start: startIndex,\n end: endIndex,\n ring: [start, end]\n };\n }\n }\n }\n\n function index(point) {\n return point[0] * 2 + point[1] * (dx + 1) * 4;\n }\n\n function smoothLinear(ring, values, value) {\n ring.forEach(function (point) {\n var x = point[0],\n y = point[1],\n xt = x | 0,\n yt = y | 0,\n v0,\n v1 = values[yt * dx + xt];\n\n if (x > 0 && x < dx && xt === x) {\n v0 = values[yt * dx + xt - 1];\n point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n }\n\n if (y > 0 && y < dy && yt === y) {\n v0 = values[(yt - 1) * dx + xt];\n point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n }\n });\n }\n\n contours.contour = contour;\n\n contours.size = function (_) {\n if (!arguments.length) return [dx, dy];\n\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n\n if (!(_0 > 0) || !(_1 > 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, contours;\n };\n\n contours.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;\n };\n\n contours.smooth = function (_) {\n return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n };\n\n return contours;\n}","export default function (ring) {\n var i = 0,\n n = ring.length,\n area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n\n while (++i < n) {\n area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n }\n\n return area;\n}","// TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\nexport function blurX(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n\n for (var j = 0; j < m; ++j) {\n for (var i = 0, sr = 0; i < n + r; ++i) {\n if (i < n) {\n sr += source.data[i + j * n];\n }\n\n if (i >= r) {\n if (i >= w) {\n sr -= source.data[i - w + j * n];\n }\n\n target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n }\n }\n }\n} // TODO Optimize edge cases.\n// TODO Optimize index calculation.\n// TODO Optimize arguments.\n\nexport function blurY(source, target, r) {\n var n = source.width,\n m = source.height,\n w = (r << 1) + 1;\n\n for (var i = 0; i < n; ++i) {\n for (var j = 0, sr = 0; j < m + r; ++j) {\n if (j < m) {\n sr += source.data[i + j * n];\n }\n\n if (j >= r) {\n if (j >= w) {\n sr -= source.data[i + (j - w) * n];\n }\n\n target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n }\n }\n }\n}","import \"core-js/modules/es.typed-array.sort.js\";\nimport { max, range, tickStep } from \"d3-array\";\nimport { slice } from \"./array\";\nimport { blurX, blurY } from \"./blur\";\nimport constant from \"./constant\";\nimport contours from \"./contours\";\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction defaultWeight() {\n return 1;\n}\n\nexport default function () {\n var x = defaultX,\n y = defaultY,\n weight = defaultWeight,\n dx = 960,\n dy = 500,\n r = 20,\n // blur radius\n k = 2,\n // log2(grid cell size)\n o = r * 3,\n // grid offset, to pad for blur\n n = dx + o * 2 >> k,\n // grid width\n m = dy + o * 2 >> k,\n // grid height\n threshold = constant(20);\n\n function density(data) {\n var values0 = new Float32Array(n * m),\n values1 = new Float32Array(n * m);\n data.forEach(function (d, i, data) {\n var xi = +x(d, i, data) + o >> k,\n yi = +y(d, i, data) + o >> k,\n wi = +weight(d, i, data);\n\n if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n values0[xi + yi * n] += wi;\n }\n }); // TODO Optimize.\n\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n blurX({\n width: n,\n height: m,\n data: values0\n }, {\n width: n,\n height: m,\n data: values1\n }, r >> k);\n blurY({\n width: n,\n height: m,\n data: values1\n }, {\n width: n,\n height: m,\n data: values0\n }, r >> k);\n var tz = threshold(values0); // Convert number of thresholds into uniform thresholds.\n\n if (!Array.isArray(tz)) {\n var stop = max(values0);\n tz = tickStep(0, stop, tz);\n tz = range(0, Math.floor(stop / tz) * tz, tz);\n tz.shift();\n }\n\n return contours().thresholds(tz).size([n, m])(values0).map(transform);\n }\n\n function transform(geometry) {\n geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.\n\n geometry.coordinates.forEach(transformPolygon);\n return geometry;\n }\n\n function transformPolygon(coordinates) {\n coordinates.forEach(transformRing);\n }\n\n function transformRing(coordinates) {\n coordinates.forEach(transformPoint);\n } // TODO Optimize.\n\n\n function transformPoint(coordinates) {\n coordinates[0] = coordinates[0] * Math.pow(2, k) - o;\n coordinates[1] = coordinates[1] * Math.pow(2, k) - o;\n }\n\n function resize() {\n o = r * 3;\n n = dx + o * 2 >> k;\n m = dy + o * 2 >> k;\n return density;\n }\n\n density.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), density) : x;\n };\n\n density.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), density) : y;\n };\n\n density.weight = function (_) {\n return arguments.length ? (weight = typeof _ === \"function\" ? _ : constant(+_), density) : weight;\n };\n\n density.size = function (_) {\n if (!arguments.length) return [dx, dy];\n\n var _0 = Math.ceil(_[0]),\n _1 = Math.ceil(_[1]);\n\n if (!(_0 >= 0) && !(_0 >= 0)) throw new Error(\"invalid size\");\n return dx = _0, dy = _1, resize();\n };\n\n density.cellSize = function (_) {\n if (!arguments.length) return 1 << k;\n if (!((_ = +_) >= 1)) throw new Error(\"invalid cell size\");\n return k = Math.floor(Math.log(_) / Math.LN2), resize();\n };\n\n density.thresholds = function (_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;\n };\n\n density.bandwidth = function (_) {\n if (!arguments.length) return Math.sqrt(r * (r + 1));\n if (!((_ = +_) >= 0)) throw new Error(\"invalid bandwidth\");\n return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();\n };\n\n return density;\n}","export default function (x) {\n return x;\n}","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\n }\n};\nvar streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n}\n\nexport default function (object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\nexport default function () {\n return new Adder();\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function add(y) {\n _add(temp, y, this.t);\n\n _add(this, temp.s, this.s);\n\n if (this.s) this.t += temp.t;else this.s = temp.t;\n },\n valueOf: function valueOf() {\n return this.s;\n }\n};\nvar temp = new Adder();\n\nfunction _add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = a - av + (b - bv);\n}","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","export default function noop() {}","import adder from \"../adder.js\";\nimport { abs } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function result() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;","import noop from \"../noop.js\";\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;","import { sqrt } from \"../math.js\"; // TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function result() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2] : Z1 ? [X1 / Z1, Y1 / Z1] : Z0 ? [X0 / Z0, Y0 / Z0] : [NaN, NaN];\n X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;","import { tau } from \"../math.js\";\nimport noop from \"../noop.js\";\nexport default function PathContext(context) {\n this._context = context;\n}\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\n break;\n }\n }\n },\n result: noop\n};","import adder from \"../adder.js\";\nimport { sqrt } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\nvar lengthStream = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;","export default function PathString() {\n this._string = [];\n}\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n}","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\nexport default function (projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n\n return contextStream.result();\n }\n\n path.area = function (object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function (object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function (object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function (object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function (_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { contourDensity } from 'd3-contour';\nimport { geoPath } from 'd3-geo';\nimport { scaleLinear } from 'd3-scale';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--contour';\n\nfunction getDomain(data) {\n return data.reduce(function (acc, row) {\n return {\n min: Math.min(acc.min, row.value),\n max: Math.max(acc.max, row.value)\n };\n }, {\n min: Infinity,\n max: -Infinity\n });\n}\n\nvar ContourSeries = function (_AbstractSeries) {\n _inherits(ContourSeries, _AbstractSeries);\n\n function ContourSeries() {\n _classCallCheck(this, ContourSeries);\n\n return _possibleConstructorReturn(this, (ContourSeries.__proto__ || Object.getPrototypeOf(ContourSeries)).apply(this, arguments));\n }\n\n _createClass(ContourSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n bandwidth = _props.bandwidth,\n className = _props.className,\n colorRange = _props.colorRange,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(ContourSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var contouredData = contourDensity().x(function (d) {\n return x(d);\n }).y(function (d) {\n return y(d);\n }).size([innerWidth, innerHeight]).bandwidth(bandwidth)(data);\n var geo = geoPath();\n\n var _getDomain = getDomain(contouredData),\n min = _getDomain.min,\n max = _getDomain.max;\n\n var colorScale = scaleLinear().domain([min, max]).range(colorRange || CONTINUOUS_COLOR_RANGE);\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, contouredData.map(function (polygon, index) {\n return React.createElement('path', {\n className: 'rv-xy-plot__series--contour-line',\n key: 'rv-xy-plot__series--contour-line-' + index,\n d: geo(polygon),\n style: _extends({\n fill: colorScale(polygon.value)\n }, style)\n });\n }));\n }\n }]);\n\n return ContourSeries;\n}(AbstractSeries);\n\nContourSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n bandwidth: 40,\n style: {}\n});\nexport default ContourSeries;","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n/**\n * Format title by detault.\n * @param {Array} values List of values.\n * @returns {*} Formatted value or undefined.\n */\n\nfunction defaultTitleFormat(values) {\n var value = getFirstNonEmptyValue(values);\n\n if (value) {\n return {\n title: 'x',\n value: transformValueToString(value.x)\n };\n }\n}\n/**\n * Format items by default.\n * @param {Array} values Array of values.\n * @returns {*} Formatted list of items.\n */\n\n\nfunction defaultItemsFormat(values) {\n return values.map(function (v, i) {\n if (v) {\n return {\n value: v.y,\n title: i\n };\n }\n });\n}\n/**\n * Get the first non-empty item from an array.\n * @param {Array} values Array of values.\n * @returns {*} First non-empty value or undefined.\n */\n\n\nfunction getFirstNonEmptyValue(values) {\n return (values || []).find(function (v) {\n return Boolean(v);\n });\n}\n\nvar Crosshair = function (_PureComponent) {\n _inherits(Crosshair, _PureComponent);\n\n function Crosshair() {\n _classCallCheck(this, Crosshair);\n\n return _possibleConstructorReturn(this, (Crosshair.__proto__ || Object.getPrototypeOf(Crosshair)).apply(this, arguments));\n }\n\n _createClass(Crosshair, [{\n key: '_renderCrosshairItems',\n\n /**\n * Render crosshair items (title + value for each series).\n * @returns {*} Array of React classes with the crosshair values.\n * @private\n */\n value: function _renderCrosshairItems() {\n var _props = this.props,\n values = _props.values,\n itemsFormat = _props.itemsFormat;\n var items = itemsFormat(values);\n\n if (!items) {\n return null;\n }\n\n return items.filter(function (i) {\n return i;\n }).map(function renderValue(item, i) {\n return React.createElement('div', {\n className: 'rv-crosshair__item',\n key: 'item' + i\n }, React.createElement('span', {\n className: 'rv-crosshair__item__title'\n }, item.title), ': ', React.createElement('span', {\n className: 'rv-crosshair__item__value'\n }, item.value));\n });\n }\n /**\n * Render crosshair title.\n * @returns {*} Container with the crosshair title.\n * @private\n */\n\n }, {\n key: '_renderCrosshairTitle',\n value: function _renderCrosshairTitle() {\n var _props2 = this.props,\n values = _props2.values,\n titleFormat = _props2.titleFormat,\n style = _props2.style;\n var titleItem = titleFormat(values);\n\n if (!titleItem) {\n return null;\n }\n\n return React.createElement('div', {\n className: 'rv-crosshair__title',\n key: 'title',\n style: style.title\n }, React.createElement('span', {\n className: 'rv-crosshair__title__title'\n }, titleItem.title), ': ', React.createElement('span', {\n className: 'rv-crosshair__title__value'\n }, titleItem.value));\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n children = _props3.children,\n className = _props3.className,\n values = _props3.values,\n marginTop = _props3.marginTop,\n marginLeft = _props3.marginLeft,\n innerWidth = _props3.innerWidth,\n innerHeight = _props3.innerHeight,\n style = _props3.style;\n var value = getFirstNonEmptyValue(values);\n\n if (!value) {\n return null;\n }\n\n var x = getAttributeFunctor(this.props, 'x');\n var innerLeft = x(value);\n var _props$orientation = this.props.orientation,\n orientation = _props$orientation === undefined ? innerLeft > innerWidth / 2 ? 'left' : 'right' : _props$orientation;\n var left = marginLeft + innerLeft;\n var top = marginTop;\n var innerClassName = 'rv-crosshair__inner rv-crosshair__inner--' + orientation;\n return React.createElement('div', {\n className: 'rv-crosshair ' + className,\n style: {\n left: left + 'px',\n top: top + 'px'\n }\n }, React.createElement('div', {\n className: 'rv-crosshair__line',\n style: _extends({\n height: innerHeight + 'px'\n }, style.line)\n }), React.createElement('div', {\n className: innerClassName\n }, children ? children : React.createElement('div', {\n className: 'rv-crosshair__inner__content',\n style: style.box\n }, React.createElement('div', null, this._renderCrosshairTitle(), this._renderCrosshairItems()))));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n titleFormat: defaultTitleFormat,\n itemsFormat: defaultItemsFormat,\n style: {\n line: {},\n title: {},\n box: {}\n }\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n className: PropTypes.string,\n values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object])),\n series: PropTypes.object,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number,\n marginLeft: PropTypes.number,\n marginTop: PropTypes.number,\n orientation: PropTypes.oneOf(['left', 'right']),\n itemsFormat: PropTypes.func,\n titleFormat: PropTypes.func,\n style: PropTypes.shape({\n line: PropTypes.object,\n title: PropTypes.object,\n box: PropTypes.object\n })\n };\n }\n }]);\n\n return Crosshair;\n}(PureComponent);\n\nCrosshair.displayName = 'Crosshair';\nexport default Crosshair;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--custom-svg-wrapper';\nvar DEFAULT_STYLE = {\n stroke: 'blue',\n fill: 'blue'\n};\n\nfunction predefinedComponents(type) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_STYLE;\n\n switch (type) {\n case 'diamond':\n return React.createElement('polygon', {\n style: style,\n points: '0 0 ' + size / 2 + ' ' + size / 2 + ' 0 ' + size + ' ' + -size / 2 + ' ' + size / 2 + ' 0 0'\n });\n\n case 'star':\n var starPoints = [].concat(_toConsumableArray(new Array(5))).map(function (c, index) {\n var angle = index / 5 * Math.PI * 2;\n var innerAngle = angle + Math.PI / 10;\n var outerAngle = angle - Math.PI / 10; // ratio of inner polygon to outer polgyon\n\n var innerRadius = size / 2.61;\n return '\\n ' + Math.cos(outerAngle) * size + ' ' + Math.sin(outerAngle) * size + '\\n ' + Math.cos(innerAngle) * innerRadius + ' ' + Math.sin(innerAngle) * innerRadius + '\\n ';\n }).join(' ');\n return React.createElement('polygon', {\n points: starPoints,\n x: '0',\n y: '0',\n height: size,\n width: size,\n style: style\n });\n\n case 'square':\n return React.createElement('rect', {\n x: '' + -size / 2,\n y: '' + -size / 2,\n height: size,\n width: size,\n style: style\n });\n\n default:\n case 'circle':\n return React.createElement('circle', {\n cx: '0',\n cy: '0',\n r: size / 2,\n style: style\n });\n }\n}\n\nfunction getInnerComponent(_ref) {\n var customComponent = _ref.customComponent,\n defaultType = _ref.defaultType,\n positionInPixels = _ref.positionInPixels,\n positionFunctions = _ref.positionFunctions,\n style = _ref.style,\n propsSize = _ref.propsSize;\n var size = customComponent.size;\n\n var aggStyle = _extends({}, style, customComponent.style || {});\n\n var innerComponent = customComponent.customComponent;\n\n if (!innerComponent && typeof defaultType === 'string') {\n return predefinedComponents(defaultType, size || propsSize, aggStyle);\n } // if default component is a function\n\n\n if (!innerComponent) {\n return defaultType(customComponent, positionInPixels, aggStyle);\n }\n\n if (typeof innerComponent === 'string') {\n return predefinedComponents(innerComponent || defaultType, size, aggStyle);\n } // if inner component is a function\n\n\n return innerComponent(customComponent, positionInPixels, aggStyle);\n}\n\nvar CustomSVGSeries = function (_AbstractSeries) {\n _inherits(CustomSVGSeries, _AbstractSeries);\n\n function CustomSVGSeries() {\n _classCallCheck(this, CustomSVGSeries);\n\n return _possibleConstructorReturn(this, (CustomSVGSeries.__proto__ || Object.getPrototypeOf(CustomSVGSeries)).apply(this, arguments));\n }\n\n _createClass(CustomSVGSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n customComponent = _props.customComponent,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n size = _props.size;\n\n if (!data || !innerWidth || !innerHeight) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(CustomSVGSeries, _extends({}, this.props, {\n animation: false\n })));\n }\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var contents = data.map(function (seriesComponent, index) {\n var positionInPixels = {\n x: x(seriesComponent),\n y: y(seriesComponent)\n };\n var innerComponent = getInnerComponent({\n customComponent: seriesComponent,\n positionInPixels: positionInPixels,\n defaultType: customComponent,\n positionFunctions: {\n x: x,\n y: y\n },\n style: style,\n propsSize: size\n });\n return React.createElement('g', {\n className: 'rv-xy-plot__series--custom-svg',\n key: 'rv-xy-plot__series--custom-svg-' + index,\n transform: 'translate(' + positionInPixels.x + ',' + positionInPixels.y + ')',\n onMouseEnter: function onMouseEnter(e) {\n return _this2._valueMouseOverHandler(seriesComponent, e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _this2._valueMouseOutHandler(seriesComponent, e);\n }\n }, innerComponent);\n });\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, contents);\n }\n }]);\n\n return CustomSVGSeries;\n}(AbstractSeries);\n\nCustomSVGSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n customComponent: 'circle',\n style: {},\n size: 2\n});\nexport default CustomSVGSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { generatePoints, getAxisAngle } from '../../utils/axis-utils';\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.axisDomain {Array} a pair of values specifying the domain of the axis\n - props.numberOfTicks{Number} the number of ticks on the axis\n - props.axisStart {Object} a object specify in cartesian space the start of the axis\n example: {x: 0, y: 0}\n - props.axisEnd {Object} a object specify in cartesian space the start of the axis\n - props.tickValue {Func} a formatting function for the tick values\n - props.tickSize {Number} a pixel size of the axis\n - props.style {Object} The style object for the axis\n * @return {Component} the plotted axis\n */\n\nexport default function decorativeAxisTick(props) {\n var axisDomain = props.axisDomain,\n numberOfTicks = props.numberOfTicks,\n axisStart = props.axisStart,\n axisEnd = props.axisEnd,\n tickValue = props.tickValue,\n tickSize = props.tickSize,\n style = props.style;\n\n var _generatePoints = generatePoints({\n axisStart: axisStart,\n axisEnd: axisEnd,\n numberOfTicks: numberOfTicks,\n axisDomain: axisDomain\n }),\n points = _generatePoints.points; // add a quarter rotation to make ticks orthogonal to axis\n\n\n var tickAngle = getAxisAngle(axisStart, axisEnd) + Math.PI / 2;\n return points.map(function (point, index) {\n var tickProps = _extends({\n x1: 0,\n y1: 0,\n x2: tickSize * Math.cos(tickAngle),\n y2: tickSize * Math.sin(tickAngle)\n }, style.ticks);\n\n var textProps = _extends({\n x: tickSize * Math.cos(tickAngle),\n y: tickSize * Math.sin(tickAngle),\n textAnchor: 'start'\n }, style.text);\n\n return React.createElement('g', {\n key: index,\n transform: 'translate(' + point.x + ', ' + point.y + ')',\n className: 'rv-xy-plot__axis__tick'\n }, React.createElement('line', _extends({}, tickProps, {\n className: 'rv-xy-plot__axis__tick__line'\n })), React.createElement('text', _extends({}, textProps, {\n className: 'rv-xy-plot__axis__tick__text'\n }), tickValue(point.text)));\n });\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { format } from 'd3-format';\nimport AbstractSeries from '../series/abstract-series';\nimport DecorativeAxisTicks from './decorative-axis-ticks';\nimport Animation from '../../animation';\nvar predefinedClassName = 'rv-xy-manipulable-axis rv-xy-plot__axis';\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickSize', 'tickTotal', 'tickSizeInner', 'tickSizeOuter'];\n\nvar DecorativeAxis = function (_AbstractSeries) {\n _inherits(DecorativeAxis, _AbstractSeries);\n\n function DecorativeAxis() {\n _classCallCheck(this, DecorativeAxis);\n\n return _possibleConstructorReturn(this, (DecorativeAxis.__proto__ || Object.getPrototypeOf(DecorativeAxis)).apply(this, arguments));\n }\n\n _createClass(DecorativeAxis, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n axisStart = _props.axisStart,\n axisEnd = _props.axisEnd,\n axisDomain = _props.axisDomain,\n numberOfTicks = _props.numberOfTicks,\n tickValue = _props.tickValue,\n tickSize = _props.tickSize,\n style = _props.style;\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(DecorativeAxis, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, React.createElement('line', _extends({}, _extends({\n x1: x({\n x: axisStart.x\n }),\n x2: x({\n x: axisEnd.x\n }),\n y1: y({\n y: axisStart.y\n }),\n y2: y({\n y: axisEnd.y\n })\n }, style.line), {\n className: 'rv-xy-plot__axis__line'\n })), React.createElement('g', {\n className: 'rv-xy-manipulable-axis__ticks'\n }, DecorativeAxisTicks({\n axisDomain: axisDomain,\n axisEnd: {\n x: x(axisEnd),\n y: y(axisEnd)\n },\n axisStart: {\n x: x(axisStart),\n y: y(axisStart)\n },\n numberOfTicks: numberOfTicks,\n tickValue: tickValue,\n tickSize: tickSize,\n style: style\n })));\n }\n }]);\n\n return DecorativeAxis;\n}(AbstractSeries);\n\nvar DEFAULT_FORMAT = format('.2r');\nDecorativeAxis.defaultProps = {\n className: '',\n numberOfTicks: 10,\n tickValue: function tickValue(d) {\n return DEFAULT_FORMAT(d);\n },\n tickSize: 5,\n style: {\n line: {\n strokeWidth: 1\n },\n ticks: {\n strokeWidth: 2\n },\n text: {}\n }\n};\nDecorativeAxis.displayName = 'DecorativeAxis';\nexport default DecorativeAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nvar predefinedClassName = 'rv-gradient-defs';\n\nfunction GradientDefs(props) {\n var className = props.className;\n return React.createElement('defs', {\n className: predefinedClassName + ' ' + className\n }, props.children);\n}\n\nGradientDefs.displayName = 'GradientDefs';\nGradientDefs.requiresSVG = true;\nGradientDefs.defaultProps = {\n className: ''\n};\nexport default GradientDefs;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { PureComponent } from 'react';\nimport { getAttributeScale } from '../utils/scales-utils';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getTicksTotalFromSize, getTickValues, DIRECTION } from '../utils/axis-utils';\nvar VERTICAL = DIRECTION.VERTICAL;\nvar defaultProps = {\n direction: VERTICAL\n};\nvar animatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickTotal'];\n\nvar GridLines = function (_PureComponent) {\n _inherits(GridLines, _PureComponent);\n\n function GridLines() {\n _classCallCheck(this, GridLines);\n\n return _possibleConstructorReturn(this, (GridLines.__proto__ || Object.getPrototypeOf(GridLines)).apply(this, arguments));\n }\n\n _createClass(GridLines, [{\n key: '_getDefaultProps',\n value: function _getDefaultProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginLeft = _props.marginLeft,\n direction = _props.direction;\n return {\n left: marginLeft,\n top: marginTop,\n width: innerWidth,\n height: innerHeight,\n tickTotal: getTicksTotalFromSize(direction === VERTICAL ? innerWidth : innerHeight)\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n animation = _props2.animation,\n className = _props2.className;\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(GridLines, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var props = _extends({}, this._getDefaultProps(), this.props);\n\n var attr = props.attr,\n direction = props.direction,\n width = props.width,\n height = props.height,\n style = props.style,\n tickTotal = props.tickTotal,\n tickValues = props.tickValues,\n top = props.top,\n left = props.left;\n var isVertical = direction === VERTICAL;\n var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var length = isVertical ? height : width;\n var scale = getAttributeScale(props, attr);\n var values = getTickValues(scale, tickTotal, tickValues);\n return React.createElement('g', {\n transform: 'translate(' + left + ',' + top + ')',\n className: 'rv-xy-plot__grid-lines ' + className\n }, values.map(function (v, i) {\n var _pathProps;\n\n var pos = scale(v);\n var pathProps = (_pathProps = {}, _defineProperty(_pathProps, tickYAttr + '1', pos), _defineProperty(_pathProps, tickYAttr + '2', pos), _defineProperty(_pathProps, tickXAttr + '1', 0), _defineProperty(_pathProps, tickXAttr + '2', length), _pathProps);\n return React.createElement('line', _extends({}, pathProps, {\n key: i,\n className: 'rv-xy-plot__grid-lines__line',\n style: style\n }));\n }));\n }\n }]);\n\n return GridLines;\n}(PureComponent);\n\nGridLines.displayName = 'GridLines';\nGridLines.defaultProps = defaultProps;\nGridLines.requiresSVG = true;\nexport default GridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--heatmap';\n\nvar HeatmapSeries = function (_AbstractSeries) {\n _inherits(HeatmapSeries, _AbstractSeries);\n\n function HeatmapSeries() {\n _classCallCheck(this, HeatmapSeries);\n\n return _possibleConstructorReturn(this, (HeatmapSeries.__proto__ || Object.getPrototypeOf(HeatmapSeries)).apply(this, arguments));\n }\n\n _createClass(HeatmapSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(HeatmapSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var _rectStyle$style = _extends({\n rectStyle: {}\n }, style),\n rectStyle = _rectStyle$style.rectStyle;\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var opacity = this._getAttributeFunctor('opacity');\n\n var fill = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var stroke = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var xDistance = this._getScaleDistance('x');\n\n var yDistance = this._getScaleDistance('y');\n\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var attrs = _extends({\n style: _extends({\n stroke: stroke && stroke(d),\n fill: fill && fill(d),\n opacity: opacity && opacity(d)\n }, style)\n }, rectStyle, {\n x: x(d) - xDistance / 2,\n y: y(d) - yDistance / 2,\n width: xDistance,\n height: yDistance,\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n });\n\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x' || attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded\n };\n }\n }]);\n\n return HeatmapSeries;\n}(AbstractSeries);\n\nHeatmapSeries.displayName = 'HeatmapSeries';\nexport default HeatmapSeries;","var thirdPi = Math.PI / 3,\n angles = [0, thirdPi, 2 * thirdPi, 3 * thirdPi, 4 * thirdPi, 5 * thirdPi];\n\nfunction pointX(d) {\n return d[0];\n}\n\nfunction pointY(d) {\n return d[1];\n}\n\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n x = pointX,\n y = pointY,\n r,\n dx,\n dy;\n\n function hexbin(points) {\n var binsById = {},\n bins = [],\n i,\n n = points.length;\n\n for (i = 0; i < n; ++i) {\n if (isNaN(px = +x.call(null, point = points[i], i, points)) || isNaN(py = +y.call(null, point, i, points))) continue;\n var point,\n px,\n py,\n pj = Math.round(py = py / dy),\n pi = Math.round(px = px / dx - (pj & 1) / 2),\n py1 = py - pj;\n\n if (Math.abs(py1) * 3 > 1) {\n var px1 = px - pi,\n pi2 = pi + (px < pi ? -1 : 1) / 2,\n pj2 = pj + (py < pj ? -1 : 1),\n px2 = px - pi2,\n py2 = py - pj2;\n if (px1 * px1 + py1 * py1 > px2 * px2 + py2 * py2) pi = pi2 + (pj & 1 ? 1 : -1) / 2, pj = pj2;\n }\n\n var id = pi + \"-\" + pj,\n bin = binsById[id];\n if (bin) bin.push(point);else {\n bins.push(bin = binsById[id] = [point]);\n bin.x = (pi + (pj & 1) / 2) * dx;\n bin.y = pj * dy;\n }\n }\n\n return bins;\n }\n\n function hexagon(radius) {\n var x0 = 0,\n y0 = 0;\n return angles.map(function (angle) {\n var x1 = Math.sin(angle) * radius,\n y1 = -Math.cos(angle) * radius,\n dx = x1 - x0,\n dy = y1 - y0;\n x0 = x1, y0 = y1;\n return [dx, dy];\n });\n }\n\n hexbin.hexagon = function (radius) {\n return \"m\" + hexagon(radius == null ? r : +radius).join(\"l\") + \"z\";\n };\n\n hexbin.centers = function () {\n var centers = [],\n j = Math.round(y0 / dy),\n i = Math.round(x0 / dx);\n\n for (var y = j * dy; y < y1 + r; y += dy, ++j) {\n for (var x = i * dx + (j & 1) * dx / 2; x < x1 + dx / 2; x += dx) {\n centers.push([x, y]);\n }\n }\n\n return centers;\n };\n\n hexbin.mesh = function () {\n var fragment = hexagon(r).slice(0, 4).join(\"l\");\n return hexbin.centers().map(function (p) {\n return \"M\" + p + \"m\" + fragment;\n }).join(\"\");\n };\n\n hexbin.x = function (_) {\n return arguments.length ? (x = _, hexbin) : x;\n };\n\n hexbin.y = function (_) {\n return arguments.length ? (y = _, hexbin) : y;\n };\n\n hexbin.radius = function (_) {\n return arguments.length ? (r = +_, dx = r * 2 * Math.sin(thirdPi), dy = r * 1.5, hexbin) : r;\n };\n\n hexbin.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], hexbin) : [x1 - x0, y1 - y0];\n };\n\n hexbin.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], hexbin) : [[x0, y0], [x1, y1]];\n };\n\n return hexbin.radius(1);\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { hexbin } from 'd3-hexbin';\nimport { scaleLinear } from 'd3-scale';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { CONTINUOUS_COLOR_RANGE } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--hexbin';\n\nfunction getColorDomain(_ref, hexes) {\n var countDomain = _ref.countDomain;\n\n if (countDomain) {\n return countDomain;\n }\n\n return [0, Math.max.apply(Math, _toConsumableArray(hexes.map(function (row) {\n return row.length;\n })))];\n}\n\nvar HexbinSeries = function (_AbstractSeries) {\n _inherits(HexbinSeries, _AbstractSeries);\n\n function HexbinSeries() {\n _classCallCheck(this, HexbinSeries);\n\n return _possibleConstructorReturn(this, (HexbinSeries.__proto__ || Object.getPrototypeOf(HexbinSeries)).apply(this, arguments));\n }\n\n _createClass(HexbinSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n colorRange = _props.colorRange,\n data = _props.data,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n radius = _props.radius,\n sizeHexagonsWithCount = _props.sizeHexagonsWithCount,\n style = _props.style,\n xOffset = _props.xOffset,\n yOffset = _props.yOffset;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(HexbinSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var hex = hexbin().x(function (d) {\n return x(d) + xOffset;\n }).y(function (d) {\n return y(d) + yOffset;\n }).radius(radius).size([innerWidth, innerHeight]);\n var hexagonPath = hex.hexagon();\n var hexes = hex(data);\n var countDomain = getColorDomain(this.props, hexes);\n var color = scaleLinear().domain(countDomain).range(colorRange);\n var size = scaleLinear().domain(countDomain).range([0, radius]);\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, hexes.map(function (d, i) {\n var attrs = {\n style: style,\n d: sizeHexagonsWithCount ? hex.hexagon(size(d.length)) : hexagonPath,\n fill: color(d.length),\n transform: 'translate(' + d.x + ', ' + d.y + ')',\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n };\n return React.createElement('path', attrs);\n }));\n }\n }]);\n\n return HexbinSeries;\n}(AbstractSeries);\n\nHexbinSeries.defaultProps = {\n radius: 20,\n colorRange: CONTINUOUS_COLOR_RANGE,\n xOffset: 0,\n yOffset: 0\n};\nHexbinSeries.displayName = 'HexbinSeries';\nexport default HexbinSeries;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport React from 'react';\nimport AbstractSeries from './series/abstract-series';\nimport { getAttributeScale } from '../utils/scales-utils';\n\nfunction getLocs(evt) {\n var xLoc = evt.type === 'touchstart' ? evt.pageX : evt.offsetX;\n var yLoc = evt.type === 'touchstart' ? evt.pageY : evt.offsetY;\n return {\n xLoc: xLoc,\n yLoc: yLoc\n };\n}\n\nvar Highlight = function (_AbstractSeries) {\n _inherits(Highlight, _AbstractSeries);\n\n function Highlight() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Highlight);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Highlight.__proto__ || Object.getPrototypeOf(Highlight)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n dragging: false,\n brushArea: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n brushing: false,\n startLocX: 0,\n startLocY: 0,\n dragArea: null\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Highlight, [{\n key: '_getDrawArea',\n value: function _getDrawArea(xLoc, yLoc) {\n var _state = this.state,\n startLocX = _state.startLocX,\n startLocY = _state.startLocY;\n var _props = this.props,\n enableX = _props.enableX,\n enableY = _props.enableY,\n highlightWidth = _props.highlightWidth,\n highlightHeight = _props.highlightHeight,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginBottom = _props.marginBottom,\n marginTop = _props.marginTop;\n var plotHeight = innerHeight + marginTop + marginBottom;\n var plotWidth = innerWidth + marginLeft + marginRight;\n var touchWidth = highlightWidth || plotWidth;\n var touchHeight = highlightHeight || plotHeight;\n return {\n bottom: enableY ? Math.max(startLocY, yLoc) : touchHeight,\n right: enableX ? Math.max(startLocX, xLoc) : touchWidth,\n left: enableX ? Math.min(xLoc, startLocX) : 0,\n top: enableY ? Math.min(yLoc, startLocY) : 0\n };\n }\n }, {\n key: '_getDragArea',\n value: function _getDragArea(xLoc, yLoc) {\n var _props2 = this.props,\n enableX = _props2.enableX,\n enableY = _props2.enableY;\n var _state2 = this.state,\n startLocX = _state2.startLocX,\n startLocY = _state2.startLocY,\n dragArea = _state2.dragArea;\n return {\n bottom: dragArea.bottom + (enableY ? yLoc - startLocY : 0),\n left: dragArea.left + (enableX ? xLoc - startLocX : 0),\n right: dragArea.right + (enableX ? xLoc - startLocX : 0),\n top: dragArea.top + (enableY ? yLoc - startLocY : 0)\n };\n }\n }, {\n key: '_clickedOutsideDrag',\n value: function _clickedOutsideDrag(xLoc, yLoc) {\n var _props3 = this.props,\n enableX = _props3.enableX,\n enableY = _props3.enableY;\n var _state3 = this.state,\n dragArea = _state3.dragArea,\n _state3$brushArea = _state3.brushArea,\n left = _state3$brushArea.left,\n right = _state3$brushArea.right,\n top = _state3$brushArea.top,\n bottom = _state3$brushArea.bottom;\n var clickedOutsideDragX = dragArea && (xLoc < left || xLoc > right);\n var clickedOutsideDragY = dragArea && (yLoc < top || yLoc > bottom);\n\n if (enableX && enableY) {\n return clickedOutsideDragX || clickedOutsideDragY;\n }\n\n if (enableX) {\n return clickedOutsideDragX;\n }\n\n if (enableY) {\n return clickedOutsideDragY;\n }\n\n return true;\n }\n }, {\n key: '_convertAreaToCoordinates',\n value: function _convertAreaToCoordinates(brushArea) {\n // NOTE only continuous scales are supported for brushing/getting coordinates back\n var _props4 = this.props,\n enableX = _props4.enableX,\n enableY = _props4.enableY,\n marginLeft = _props4.marginLeft,\n marginTop = _props4.marginTop;\n var xScale = getAttributeScale(this.props, 'x');\n var yScale = getAttributeScale(this.props, 'y'); // Ensure that users wishes are being respected about which scales are evaluated\n // this is specifically enabled to ensure brushing on mixed categorical and linear\n // charts will run as expected\n\n if (enableX && enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom),\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft),\n top: yScale.invert(brushArea.top)\n };\n }\n\n if (enableY) {\n return {\n bottom: yScale.invert(brushArea.bottom - marginTop),\n top: yScale.invert(brushArea.top - marginTop)\n };\n }\n\n if (enableX) {\n return {\n left: xScale.invert(brushArea.left - marginLeft),\n right: xScale.invert(brushArea.right - marginLeft)\n };\n }\n\n return {};\n }\n }, {\n key: 'startBrushing',\n value: function startBrushing(e) {\n var _this2 = this;\n\n var _props5 = this.props,\n onBrushStart = _props5.onBrushStart,\n onDragStart = _props5.onDragStart,\n drag = _props5.drag;\n var dragArea = this.state.dragArea;\n\n var _getLocs = getLocs(e.nativeEvent),\n xLoc = _getLocs.xLoc,\n yLoc = _getLocs.yLoc;\n\n var startArea = function startArea(dragging, resetDrag) {\n var emptyBrush = {\n bottom: yLoc,\n left: xLoc,\n right: xLoc,\n top: yLoc\n };\n\n _this2.setState({\n dragging: dragging,\n brushArea: dragArea && !resetDrag ? dragArea : emptyBrush,\n brushing: !dragging,\n startLocX: xLoc,\n startLocY: yLoc\n });\n };\n\n var clickedOutsideDrag = this._clickedOutsideDrag(xLoc, yLoc);\n\n if (drag && !dragArea || !drag || clickedOutsideDrag) {\n startArea(false, clickedOutsideDrag);\n\n if (onBrushStart) {\n onBrushStart(e);\n }\n\n return;\n }\n\n if (drag && dragArea) {\n startArea(true, clickedOutsideDrag);\n\n if (onDragStart) {\n onDragStart(e);\n }\n }\n }\n }, {\n key: 'stopBrushing',\n value: function stopBrushing(e) {\n var _state4 = this.state,\n brushing = _state4.brushing,\n dragging = _state4.dragging,\n brushArea = _state4.brushArea; // Quickly short-circuit if the user isn't brushing in our component\n\n if (!brushing && !dragging) {\n return;\n }\n\n var _props6 = this.props,\n onBrushEnd = _props6.onBrushEnd,\n onDragEnd = _props6.onDragEnd,\n drag = _props6.drag;\n var noHorizontal = Math.abs(brushArea.right - brushArea.left) < 5;\n var noVertical = Math.abs(brushArea.top - brushArea.bottom) < 5; // Invoke the callback with null if the selected area was < 5px\n\n var isNulled = noVertical || noHorizontal; // Clear the draw area\n\n this.setState({\n brushing: false,\n dragging: false,\n brushArea: drag ? brushArea : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n startLocX: 0,\n startLocY: 0,\n dragArea: drag && !isNulled && brushArea\n });\n\n if (brushing && onBrushEnd) {\n onBrushEnd(!isNulled ? this._convertAreaToCoordinates(brushArea) : null);\n }\n\n if (drag && onDragEnd) {\n onDragEnd(!isNulled ? this._convertAreaToCoordinates(brushArea) : null);\n }\n }\n }, {\n key: 'onBrush',\n value: function onBrush(e) {\n var _props7 = this.props,\n onBrush = _props7.onBrush,\n onDrag = _props7.onDrag,\n drag = _props7.drag;\n var _state5 = this.state,\n brushing = _state5.brushing,\n dragging = _state5.dragging;\n\n var _getLocs2 = getLocs(e.nativeEvent),\n xLoc = _getLocs2.xLoc,\n yLoc = _getLocs2.yLoc;\n\n if (brushing) {\n var brushArea = this._getDrawArea(xLoc, yLoc);\n\n this.setState({\n brushArea: brushArea\n });\n\n if (onBrush) {\n onBrush(this._convertAreaToCoordinates(brushArea));\n }\n }\n\n if (drag && dragging) {\n var _brushArea = this._getDragArea(xLoc, yLoc);\n\n this.setState({\n brushArea: _brushArea\n });\n\n if (onDrag) {\n onDrag(this._convertAreaToCoordinates(_brushArea));\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props8 = this.props,\n color = _props8.color,\n className = _props8.className,\n highlightHeight = _props8.highlightHeight,\n highlightWidth = _props8.highlightWidth,\n highlightX = _props8.highlightX,\n highlightY = _props8.highlightY,\n innerWidth = _props8.innerWidth,\n innerHeight = _props8.innerHeight,\n marginLeft = _props8.marginLeft,\n marginRight = _props8.marginRight,\n marginTop = _props8.marginTop,\n marginBottom = _props8.marginBottom,\n opacity = _props8.opacity;\n var _state$brushArea = this.state.brushArea,\n left = _state$brushArea.left,\n right = _state$brushArea.right,\n top = _state$brushArea.top,\n bottom = _state$brushArea.bottom;\n var leftPos = 0;\n\n if (highlightX) {\n var xScale = getAttributeScale(this.props, 'x');\n leftPos = xScale(highlightX);\n }\n\n var topPos = 0;\n\n if (highlightY) {\n var yScale = getAttributeScale(this.props, 'y');\n topPos = yScale(highlightY);\n }\n\n var plotWidth = marginLeft + marginRight + innerWidth;\n var plotHeight = marginTop + marginBottom + innerHeight;\n var touchWidth = highlightWidth || plotWidth;\n var touchHeight = highlightHeight || plotHeight;\n return React.createElement('g', {\n transform: 'translate(' + leftPos + ', ' + topPos + ')',\n className: className + ' rv-highlight-container'\n }, React.createElement('rect', {\n className: 'rv-mouse-target',\n fill: 'black',\n opacity: '0',\n x: '0',\n y: '0',\n width: Math.max(touchWidth, 0),\n height: Math.max(touchHeight, 0),\n onMouseDown: function onMouseDown(e) {\n return _this3.startBrushing(e);\n },\n onMouseMove: function onMouseMove(e) {\n return _this3.onBrush(e);\n },\n onMouseUp: function onMouseUp(e) {\n return _this3.stopBrushing(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _this3.stopBrushing(e);\n } // preventDefault() so that mouse event emulation does not happen\n ,\n onTouchEnd: function onTouchEnd(e) {\n e.preventDefault();\n\n _this3.stopBrushing(e);\n },\n onTouchCancel: function onTouchCancel(e) {\n e.preventDefault();\n\n _this3.stopBrushing(e);\n },\n onContextMenu: function onContextMenu(e) {\n return e.preventDefault();\n },\n onContextMenuCapture: function onContextMenuCapture(e) {\n return e.preventDefault();\n }\n }), React.createElement('rect', {\n className: 'rv-highlight',\n pointerEvents: 'none',\n opacity: opacity,\n fill: color,\n x: left,\n y: top,\n width: Math.min(Math.max(0, right - left), touchWidth),\n height: Math.min(Math.max(0, bottom - top), touchHeight)\n }));\n }\n }]);\n\n return Highlight;\n}(AbstractSeries);\n\nHighlight.displayName = 'HighlightOverlay';\nHighlight.defaultProps = {\n color: 'rgb(77, 182, 172)',\n className: '',\n enableX: true,\n enableY: true,\n opacity: 0.3\n};\nexport default Highlight;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { transformValueToString } from '../utils/data-utils';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n/*\n * Hint provides two options for placement of hint:\n * a) around a data point in one of four quadrants (imagine the point bisected\n * by two axes -vertical, horizontal- creating 4 quadrants around a data\n * point).\n * b) **New** pin to an edge of chart/plot area and position along that edge\n * using data point's other dimension value.\n *\n * To support these two options, deprecate one Hint props (orientation) with two\n * new Hint align prop object (horizontal, vertical) with following values:\n *\n * horizontal: auto, left, right, leftEdge, rightEdge\n * vertical: auto, bottom, top, bottomEdge, topEdge\n *\n * Thus, the following ALIGN constants are the values for horizontal\n * and vertical\n */\n\nvar ALIGN = {\n AUTO: 'auto',\n LEFT: 'left',\n RIGHT: 'right',\n LEFT_EDGE: 'leftEdge',\n RIGHT_EDGE: 'rightEdge',\n BOTTOM: 'bottom',\n TOP: 'top',\n BOTTOM_EDGE: 'bottomEdge',\n TOP_EDGE: 'topEdge'\n};\n/**\n * For backwards support, retain the ORIENTATION prop constants\n */\n\nvar ORIENTATION = {\n BOTTOM_LEFT: 'bottomleft',\n BOTTOM_RIGHT: 'bottomright',\n TOP_LEFT: 'topleft',\n TOP_RIGHT: 'topright'\n};\n/**\n * Default format function for the value.\n * @param {Object} value Value.\n * @returns {Array} title-value pairs.\n */\n\nfunction defaultFormat(value) {\n return Object.keys(value).map(function getProp(key) {\n return {\n title: key,\n value: transformValueToString(value[key])\n };\n });\n}\n\nvar Hint = function (_PureComponent) {\n _inherits(Hint, _PureComponent);\n\n function Hint() {\n _classCallCheck(this, Hint);\n\n return _possibleConstructorReturn(this, (Hint.__proto__ || Object.getPrototypeOf(Hint)).apply(this, arguments));\n }\n\n _createClass(Hint, [{\n key: '_getAlign',\n\n /**\n * Obtain align object with horizontal and vertical settings\n * but convert any AUTO values to the non-auto ALIGN depending on the\n * values of x and y.\n * @param {number} x X value.\n * @param {number} y Y value.\n * @returns {Object} Align object w/ horizontal, vertical prop strings.\n * @private\n */\n value: function _getAlign(x, y) {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n orientation = _props.orientation,\n _props$align = _props.align,\n horizontal = _props$align.horizontal,\n vertical = _props$align.vertical;\n var align = orientation ? this._mapOrientationToAlign(orientation) : {\n horizontal: horizontal,\n vertical: vertical\n };\n\n if (horizontal === ALIGN.AUTO) {\n align.horizontal = x > innerWidth / 2 ? ALIGN.LEFT : ALIGN.RIGHT;\n }\n\n if (vertical === ALIGN.AUTO) {\n align.vertical = y > innerHeight / 2 ? ALIGN.TOP : ALIGN.BOTTOM;\n }\n\n return align;\n }\n /**\n * Get the class names from align values.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @returns {string} Class names.\n * @private\n */\n\n }, {\n key: '_getAlignClassNames',\n value: function _getAlignClassNames(align) {\n var orientation = this.props.orientation;\n var orientationClass = orientation ? 'rv-hint--orientation-' + orientation : '';\n return orientationClass + ' rv-hint--horizontalAlign-' + align.horizontal + '\\n rv-hint--verticalAlign-' + align.vertical;\n }\n /**\n * Get a CSS mixin for a proper positioning of the element.\n * @param {Object} align object with horizontal and vertical prop strings.\n * @param {number} x X position.\n * @param {number} y Y position.\n * @returns {Object} Object, that may contain `left` or `right, `top` or\n * `bottom` properties.\n * @private\n */\n\n }, {\n key: '_getAlignStyle',\n value: function _getAlignStyle(align, x, y) {\n return _extends({}, this._getXCSS(align.horizontal, x), this._getYCSS(align.vertical, y));\n }\n /**\n * Get the bottom coordinate of the hint.\n * When y undefined or null, edge case, pin bottom.\n * @param {number} y Y.\n * @returns {{bottom: *}} Mixin.\n * @private\n */\n\n }, {\n key: '_getCSSBottom',\n value: function _getCSSBottom(y) {\n if (y === undefined || y === null) {\n return {\n bottom: 0\n };\n }\n\n var _props2 = this.props,\n innerHeight = _props2.innerHeight,\n marginBottom = _props2.marginBottom;\n return {\n bottom: marginBottom + innerHeight - y\n };\n }\n /**\n * Get the left coordinate of the hint.\n * When x undefined or null, edge case, pin left.\n * @param {number} x X.\n * @returns {{left: *}} Mixin.\n * @private\n */\n\n }, {\n key: '_getCSSLeft',\n value: function _getCSSLeft(x) {\n if (x === undefined || x === null) {\n return {\n left: 0\n };\n }\n\n var marginLeft = this.props.marginLeft;\n return {\n left: marginLeft + x\n };\n }\n /**\n * Get the right coordinate of the hint.\n * When x undefined or null, edge case, pin right.\n * @param {number} x X.\n * @returns {{right: *}} Mixin.\n * @private\n */\n\n }, {\n key: '_getCSSRight',\n value: function _getCSSRight(x) {\n if (x === undefined || x === null) {\n return {\n right: 0\n };\n }\n\n var _props3 = this.props,\n innerWidth = _props3.innerWidth,\n marginRight = _props3.marginRight;\n return {\n right: marginRight + innerWidth - x\n };\n }\n /**\n * Get the top coordinate of the hint.\n * When y undefined or null, edge case, pin top.\n * @param {number} y Y.\n * @returns {{top: *}} Mixin.\n * @private\n */\n\n }, {\n key: '_getCSSTop',\n value: function _getCSSTop(y) {\n if (y === undefined || y === null) {\n return {\n top: 0\n };\n }\n\n var marginTop = this.props.marginTop;\n return {\n top: marginTop + y\n };\n }\n /**\n * Get the position for the hint and the appropriate class name.\n * @returns {{style: Object, positionClassName: string}} Style and className for the\n * hint.\n * @private\n */\n\n }, {\n key: '_getPositionInfo',\n value: function _getPositionInfo() {\n var _props4 = this.props,\n value = _props4.value,\n getAlignStyle = _props4.getAlignStyle;\n var x = getAttributeFunctor(this.props, 'x')(value);\n var y = getAttributeFunctor(this.props, 'y')(value);\n\n var align = this._getAlign(x, y);\n\n return {\n position: getAlignStyle ? getAlignStyle(align, x, y) : this._getAlignStyle(align, x, y),\n positionClassName: this._getAlignClassNames(align)\n };\n }\n }, {\n key: '_getXCSS',\n value: function _getXCSS(horizontal, x) {\n // obtain xCSS\n switch (horizontal) {\n case ALIGN.LEFT_EDGE:\n // this pins x to left edge\n return this._getCSSLeft(null);\n\n case ALIGN.RIGHT_EDGE:\n // this pins x to left edge\n return this._getCSSRight(null);\n\n case ALIGN.LEFT:\n // this places hint text to the left of center, so set its right edge\n return this._getCSSRight(x);\n\n case ALIGN.RIGHT:\n default:\n // this places hint text to the right of center, so set its left edge\n // default case should not be possible but if it happens set to RIGHT\n return this._getCSSLeft(x);\n }\n }\n }, {\n key: '_getYCSS',\n value: function _getYCSS(verticalAlign, y) {\n // obtain yCSS\n switch (verticalAlign) {\n case ALIGN.TOP_EDGE:\n // this pins x to top edge\n return this._getCSSTop(null);\n\n case ALIGN.BOTTOM_EDGE:\n // this pins x to bottom edge\n return this._getCSSBottom(null);\n\n case ALIGN.BOTTOM:\n // this places hint text to the bottom of center, so set its top edge\n return this._getCSSTop(y);\n\n case ALIGN.TOP:\n default:\n // this places hint text to the top of center, so set its bottom edge\n // default case should not be possible but if it happens set to BOTTOM\n return this._getCSSBottom(y);\n }\n }\n }, {\n key: '_mapOrientationToAlign',\n value: function _mapOrientationToAlign(orientation) {\n // TODO: print warning that this feature is deprecated and support will be\n // removed in next major release.\n switch (orientation) {\n case ORIENTATION.BOTTOM_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.BOTTOM\n };\n\n case ORIENTATION.BOTTOM_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.BOTTOM\n };\n\n case ORIENTATION.TOP_LEFT:\n return {\n horizontal: ALIGN.LEFT,\n vertical: ALIGN.TOP\n };\n\n case ORIENTATION.TOP_RIGHT:\n return {\n horizontal: ALIGN.RIGHT,\n vertical: ALIGN.TOP\n };\n\n default:\n // fall back to horizontalAlign, verticalAlign that are either\n // provided or defaulted to AUTO. So, don't change things\n break;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props5 = this.props,\n value = _props5.value,\n format = _props5.format,\n children = _props5.children,\n style = _props5.style,\n className = _props5.className;\n\n var _getPositionInfo2 = this._getPositionInfo(),\n position = _getPositionInfo2.position,\n positionClassName = _getPositionInfo2.positionClassName;\n\n return React.createElement('div', {\n className: 'rv-hint ' + positionClassName + ' ' + className,\n style: _extends({}, style, position, {\n position: 'absolute'\n })\n }, children ? children : React.createElement('div', {\n className: 'rv-hint__content',\n style: style.content\n }, format(value).map(function (formattedProp, i) {\n return React.createElement('div', {\n key: 'rv-hint' + i,\n style: style.row\n }, React.createElement('span', {\n className: 'rv-hint__title',\n style: style.title\n }, formattedProp.title), ': ', React.createElement('span', {\n className: 'rv-hint__value',\n style: style.value\n }, formattedProp.value));\n })));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n format: defaultFormat,\n align: {\n horizontal: ALIGN.AUTO,\n vertical: ALIGN.AUTO\n },\n style: {}\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n marginTop: PropTypes.number,\n marginLeft: PropTypes.number,\n innerWidth: PropTypes.number,\n innerHeight: PropTypes.number,\n scales: PropTypes.object,\n value: PropTypes.object,\n format: PropTypes.func,\n style: PropTypes.object,\n className: PropTypes.string,\n align: PropTypes.shape({\n horizontal: PropTypes.oneOf([ALIGN.AUTO, ALIGN.LEFT, ALIGN.RIGHT, ALIGN.LEFT_EDGE, ALIGN.RIGHT_EDGE]),\n vertical: PropTypes.oneOf([ALIGN.AUTO, ALIGN.BOTTOM, ALIGN.TOP, ALIGN.BOTTOM_EDGE, ALIGN.TOP_EDGE])\n }),\n getAlignStyle: PropTypes.func,\n orientation: PropTypes.oneOf([ORIENTATION.BOTTOM_LEFT, ORIENTATION.BOTTOM_RIGHT, ORIENTATION.TOP_LEFT, ORIENTATION.TOP_RIGHT])\n };\n }\n }]);\n\n return Hint;\n}(PureComponent);\n\nHint.displayName = 'Hint';\nHint.ORIENTATION = ORIENTATION;\nHint.ALIGN = ALIGN;\nexport default Hint;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS, getStackParams } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--bar';\n\nvar BarSeries = function (_AbstractSeries) {\n _inherits(BarSeries, _AbstractSeries);\n\n function BarSeries() {\n _classCallCheck(this, BarSeries);\n\n return _possibleConstructorReturn(this, (BarSeries.__proto__ || Object.getPrototypeOf(BarSeries)).apply(this, arguments));\n }\n\n _createClass(BarSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n linePosAttr = _props.linePosAttr,\n lineSizeAttr = _props.lineSizeAttr,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n valuePosAttr = _props.valuePosAttr,\n valueSizeAttr = _props.valueSizeAttr,\n barWidth = _props.barWidth;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(BarSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var _getStackParams = getStackParams(this.props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n\n var distance = this._getScaleDistance(linePosAttr);\n\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\n var halfSpace = distance / 2 * barWidth;\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var _attrs; // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n\n\n var totalSpaceAvailable = halfSpace * 2;\n var totalSpaceCenter = lineFunctor(d); // totalSpaceStartingPoint is the first pixel were we can start drawing\n\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace; // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal; // spacePerBar is the space we have available to draw sameTypeIndex bar\n\n var spacePerBar = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels; // barStartingPoint is the first pixel were we can start drawing sameTypeIndex bar\n\n var barStartingPoint = totalSpaceStartingPoint + spacePerBar * sameTypeIndex + sameTypeIndex;\n var attrs = (_attrs = {\n style: _extends({\n opacity: opacityFunctor && opacityFunctor(d),\n stroke: strokeFunctor && strokeFunctor(d),\n fill: fillFunctor && fillFunctor(d)\n }, style)\n }, _defineProperty(_attrs, linePosAttr, barStartingPoint), _defineProperty(_attrs, lineSizeAttr, spacePerBar), _defineProperty(_attrs, valuePosAttr, Math.min(value0Functor(d), valueFunctor(d))), _defineProperty(_attrs, valueSizeAttr, Math.abs(-value0Functor(d) + valueFunctor(d))), _defineProperty(_attrs, 'onClick', function onClick(e) {\n return _this2._valueClickHandler(d, e);\n }), _defineProperty(_attrs, 'onContextMenu', function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOver', function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOut', function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }), _defineProperty(_attrs, 'key', i), _attrs);\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes, {\n linePosAttr: PropTypes.string,\n valuePosAttr: PropTypes.string,\n lineSizeAttr: PropTypes.string,\n valueSizeAttr: PropTypes.string,\n cluster: PropTypes.string,\n barWidth: PropTypes.number\n });\n }\n }, {\n key: 'defaultProps',\n get: function get() {\n return {\n barWidth: 0.85\n };\n }\n }]);\n\n return BarSeries;\n}(AbstractSeries);\n\nBarSeries.displayName = 'BarSeries';\nexport default BarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\n\nvar HorizontalBarSeries = function (_AbstractSeries) {\n _inherits(HorizontalBarSeries, _AbstractSeries);\n\n function HorizontalBarSeries() {\n _classCallCheck(this, HorizontalBarSeries);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeries.__proto__ || Object.getPrototypeOf(HorizontalBarSeries)).apply(this, arguments));\n }\n\n _createClass(HorizontalBarSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(BarSeries, _extends({}, this.props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'y';\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n\n return HorizontalBarSeries;\n}(AbstractSeries);\n\nHorizontalBarSeries.displayName = 'HorizontalBarSeries';\nexport default HorizontalBarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getScaleObjectFromProps, getAttr0Functor } from '../../utils/scales-utils';\nimport { getStackParams } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\n\nfunction getScaleDistance(props, attr) {\n var scaleObject = getScaleObjectFromProps(props, attr);\n return scaleObject ? scaleObject.distance : 0;\n}\n\nvar BarSeriesCanvas = function (_AbstractSeries) {\n _inherits(BarSeriesCanvas, _AbstractSeries);\n\n function BarSeriesCanvas() {\n _classCallCheck(this, BarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (BarSeriesCanvas.__proto__ || Object.getPrototypeOf(BarSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(BarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n linePosAttr = props.linePosAttr,\n lineSizeAttr = props.lineSizeAttr,\n valuePosAttr = props.valuePosAttr,\n marginTop = props.marginTop,\n marginBottom = props.marginBottom;\n\n if (!data || data.length === 0) {\n return;\n }\n\n var distance = getScaleDistance(props, linePosAttr);\n var line = getAttributeFunctor(props, linePosAttr);\n var value = getAttributeFunctor(props, valuePosAttr);\n var value0 = getAttr0Functor(props, valuePosAttr);\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n var halfSpace = distance / 2 * 0.85; // totalSpaceAvailable is the space we have available to draw all the\n // bars of a same 'linePosAttr' value (a.k.a. sameTypeTotal)\n\n var totalSpaceAvailable = halfSpace * 2;\n\n var _getStackParams = getStackParams(props),\n sameTypeTotal = _getStackParams.sameTypeTotal,\n sameTypeIndex = _getStackParams.sameTypeIndex;\n\n data.forEach(function (row) {\n var totalSpaceCenter = line(row); // totalSpaceStartingPoint is the first pixel were we can start drawing\n\n var totalSpaceStartingPoint = totalSpaceCenter - halfSpace; // spaceTakenByInterBarsPixels has the overhead space consumed by each bar of sameTypeTotal\n\n var spaceTakenByInterBarsPixels = (sameTypeTotal - 1) / sameTypeTotal; // lineSize is the space we have available to draw sameTypeIndex bar\n\n var lineSize = totalSpaceAvailable / sameTypeTotal - spaceTakenByInterBarsPixels;\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY; // linePos is the first pixel were we can start drawing sameTypeIndex bar\n\n var linePos = totalSpaceStartingPoint + lineSize * sameTypeIndex + sameTypeIndex;\n var valuePos = Math.min(value0(row), value(row));\n var x = valuePosAttr === 'x' ? valuePos : linePos;\n var y = valuePosAttr === 'y' ? valuePos : linePos;\n var valueSize = Math.abs(-value0(row) + value(row));\n var height = lineSizeAttr === 'height' ? lineSize : valueSize;\n var width = lineSizeAttr === 'width' ? lineSize : valueSize;\n ctx.beginPath();\n ctx.rect(x + marginBottom, y + marginTop, width, height);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return BarSeriesCanvas;\n}(AbstractSeries);\n\nBarSeriesCanvas.displayName = 'BarSeriesCanvas';\nBarSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n linePosAttr: PropTypes.string.isRequired,\n valuePosAttr: PropTypes.string.isRequired,\n lineSizeAttr: PropTypes.string.isRequired,\n valueSizeAttr: PropTypes.string.isRequired\n});\nBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default BarSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\n\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(HorizontalBarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'y';\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n BarSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalBarSeriesCanvas.displayName = 'HorizontalBarSeriesCanvas';\nHorizontalBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalBarSeriesCanvas;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport { DIRECTION } from '../utils/axis-utils';\nimport GridLines from './grid-lines';\nvar HORIZONTAL = DIRECTION.HORIZONTAL;\nvar defaultProps = {\n direction: HORIZONTAL,\n attr: 'y'\n};\n\nfunction HorizontalGridLines(props) {\n return React.createElement(GridLines, props);\n}\n\nHorizontalGridLines.displayName = 'HorizontalGridLines';\nHorizontalGridLines.defaultProps = defaultProps;\nHorizontalGridLines.requiresSVG = true;\nexport default HorizontalGridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--rect';\n\nvar RectSeries = function (_AbstractSeries) {\n _inherits(RectSeries, _AbstractSeries);\n\n function RectSeries() {\n _classCallCheck(this, RectSeries);\n\n return _possibleConstructorReturn(this, (RectSeries.__proto__ || Object.getPrototypeOf(RectSeries)).apply(this, arguments));\n }\n\n _createClass(RectSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n linePosAttr = _props.linePosAttr,\n lineSizeAttr = _props.lineSizeAttr,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style,\n valuePosAttr = _props.valuePosAttr,\n valueSizeAttr = _props.valueSizeAttr;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(RectSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var lineFunctor = this._getAttributeFunctor(linePosAttr);\n\n var line0Functor = this._getAttr0Functor(linePosAttr);\n\n var valueFunctor = this._getAttributeFunctor(valuePosAttr);\n\n var value0Functor = this._getAttr0Functor(valuePosAttr);\n\n var fillFunctor = this._getAttributeFunctor('fill') || this._getAttributeFunctor('color');\n\n var strokeFunctor = this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color');\n\n var opacityFunctor = this._getAttributeFunctor('opacity');\n\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n var _attrs;\n\n var attrs = (_attrs = {\n style: _extends({\n opacity: opacityFunctor && opacityFunctor(d),\n stroke: strokeFunctor && strokeFunctor(d),\n fill: fillFunctor && fillFunctor(d)\n }, style)\n }, _defineProperty(_attrs, linePosAttr, line0Functor(d)), _defineProperty(_attrs, lineSizeAttr, Math.abs(lineFunctor(d) - line0Functor(d))), _defineProperty(_attrs, valuePosAttr, Math.min(value0Functor(d), valueFunctor(d))), _defineProperty(_attrs, valueSizeAttr, Math.abs(-value0Functor(d) + valueFunctor(d))), _defineProperty(_attrs, 'onClick', function onClick(e) {\n return _this2._valueClickHandler(d, e);\n }), _defineProperty(_attrs, 'onContextMenu', function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOver', function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n }), _defineProperty(_attrs, 'onMouseOut', function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }), _defineProperty(_attrs, 'key', i), _attrs);\n return React.createElement('rect', attrs);\n }));\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes, {\n linePosAttr: PropTypes.string,\n valuePosAttr: PropTypes.string,\n lineSizeAttr: PropTypes.string,\n valueSizeAttr: PropTypes.string\n });\n }\n }]);\n\n return RectSeries;\n}(AbstractSeries);\n\nRectSeries.displayName = 'RectSeries';\nexport default RectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\n\nvar HorizontalRectSeries = function (_AbstractSeries) {\n _inherits(HorizontalRectSeries, _AbstractSeries);\n\n function HorizontalRectSeries() {\n _classCallCheck(this, HorizontalRectSeries);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeries.__proto__ || Object.getPrototypeOf(HorizontalRectSeries)).apply(this, arguments));\n }\n\n _createClass(HorizontalRectSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(RectSeries, _extends({}, this.props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n\n return HorizontalRectSeries;\n}(AbstractSeries);\n\nHorizontalRectSeries.displayName = 'HorizontalRectSeries';\nexport default HorizontalRectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport PropTypes from 'prop-types';\nimport { rgb } from 'd3-color';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getAttr0Functor } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\n\nvar RectSeriesCanvas = function (_AbstractSeries) {\n _inherits(RectSeriesCanvas, _AbstractSeries);\n\n function RectSeriesCanvas() {\n _classCallCheck(this, RectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (RectSeriesCanvas.__proto__ || Object.getPrototypeOf(RectSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(RectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n linePosAttr = props.linePosAttr,\n lineSizeAttr = props.lineSizeAttr,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n valuePosAttr = props.valuePosAttr;\n\n if (!data || data.length === 0) {\n return;\n }\n\n var line = getAttributeFunctor(props, linePosAttr);\n var line0 = getAttr0Functor(props, linePosAttr);\n var value = getAttributeFunctor(props, valuePosAttr);\n var value0 = getAttr0Functor(props, valuePosAttr);\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n data.forEach(function (row) {\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n var linePos = line0(row);\n var valuePos = Math.min(value0(row), value(row));\n var x = valuePosAttr === 'x' ? valuePos : linePos;\n var y = valuePosAttr === 'y' ? valuePos : linePos;\n var lineSize = Math.abs(line(row) - line0(row));\n var valueSize = Math.abs(-value0(row) + value(row));\n var height = lineSizeAttr === 'height' ? lineSize : valueSize;\n var width = lineSizeAttr === 'width' ? lineSize : valueSize;\n ctx.beginPath();\n ctx.rect(x + marginLeft, y + marginTop, width, height);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return RectSeriesCanvas;\n}(AbstractSeries);\n\nRectSeriesCanvas.displayName = 'RectSeriesCanvas';\nRectSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n linePosAttr: PropTypes.string.isRequired,\n valuePosAttr: PropTypes.string.isRequired,\n lineSizeAttr: PropTypes.string.isRequired,\n valueSizeAttr: PropTypes.string.isRequired\n});\nRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default RectSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\n\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(HorizontalRectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'x';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n RectSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'y',\n valuePosAttr: 'x',\n lineSizeAttr: 'height',\n valueSizeAttr: 'width'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--label';\n\nvar getTextAnchor = function getTextAnchor(labelAnchorX, leftOfMiddle) {\n return labelAnchorX ? labelAnchorX : leftOfMiddle ? 'start' : 'end';\n};\n\nvar getDominantBaseline = function getDominantBaseline(labelAnchorY, aboveMiddle) {\n return labelAnchorY ? labelAnchorY : aboveMiddle ? 'text-before-edge' : 'text-after-edge';\n};\n\nvar LabelSeries = function (_AbstractSeries) {\n _inherits(LabelSeries, _AbstractSeries);\n\n function LabelSeries() {\n _classCallCheck(this, LabelSeries);\n\n return _possibleConstructorReturn(this, (LabelSeries.__proto__ || Object.getPrototypeOf(LabelSeries)).apply(this, arguments));\n }\n\n _createClass(LabelSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n allowOffsetToBeReversed = _props.allowOffsetToBeReversed,\n className = _props.className,\n data = _props.data,\n _data = _props._data,\n getLabel = _props.getLabel,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n rotation = _props.rotation,\n style = _props.style,\n xRange = _props.xRange,\n yRange = _props.yRange,\n labelAnchorX = _props.labelAnchorX,\n labelAnchorY = _props.labelAnchorY;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(LabelSeries, _extends({}, this.props, {\n animation: null,\n _data: data\n })));\n }\n\n var xFunctor = this._getAttributeFunctor('x');\n\n var yFunctor = this._getAttributeFunctor('y');\n\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n style: style\n }, data.reduce(function (res, d, i) {\n var markStyle = d.style,\n xOffset = d.xOffset,\n yOffset = d.yOffset;\n\n if (!getLabel(d)) {\n return res;\n }\n\n var xVal = xFunctor(d);\n var yVal = yFunctor(d);\n var leftOfMiddle = xVal < (xRange[1] - xRange[0]) / 2;\n var aboveMiddle = yVal < Math.abs(yRange[1] - yRange[0]) / 2;\n var x = xVal + (allowOffsetToBeReversed && leftOfMiddle ? -1 : 1) * (xOffset || 0);\n var y = yVal + (allowOffsetToBeReversed && aboveMiddle ? -1 : 1) * (yOffset || 0);\n var hasRotationValueSet = d.rotation === 0 || d.rotation;\n var labelRotation = hasRotationValueSet ? d.rotation : rotation;\n\n var attrs = _extends({\n dominantBaseline: getDominantBaseline(labelAnchorY, aboveMiddle),\n className: 'rv-xy-plot__series--label-text',\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n },\n textAnchor: getTextAnchor(labelAnchorX, leftOfMiddle),\n x: x,\n y: y,\n transform: 'rotate(' + labelRotation + ',' + x + ',' + y + ')'\n }, markStyle);\n\n var textContent = getLabel(_data ? _data[i] : d);\n return res.concat([React.createElement('text', attrs, textContent)]);\n }, []));\n }\n }]);\n\n return LabelSeries;\n}(AbstractSeries);\n\nLabelSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n animation: false,\n rotation: 0,\n getLabel: function getLabel(d) {\n return d.label;\n }\n});\nLabelSeries.displayName = 'LabelSeries';\nexport default LabelSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport * as d3Shape from 'd3-shape';\nimport Animation from '../../animation';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--line';\nvar STROKE_STYLES = {\n dashed: '6, 2',\n solid: null\n};\n\nvar LineSeries = function (_AbstractSeries) {\n _inherits(LineSeries, _AbstractSeries);\n\n function LineSeries() {\n _classCallCheck(this, LineSeries);\n\n return _possibleConstructorReturn(this, (LineSeries.__proto__ || Object.getPrototypeOf(LineSeries)).apply(this, arguments));\n }\n\n _createClass(LineSeries, [{\n key: '_renderLine',\n value: function _renderLine(data, x, y, curve, getNull) {\n var line = d3Shape.line();\n\n if (curve !== null) {\n if (typeof curve === 'string' && d3Shape[curve]) {\n line = line.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n line = line.curve(curve);\n }\n }\n\n line = line.defined(getNull);\n line = line.x(x).y(y);\n return line(data);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data;\n\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(LineSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var _props2 = this.props,\n curve = _props2.curve,\n marginLeft = _props2.marginLeft,\n marginTop = _props2.marginTop,\n strokeDasharray = _props2.strokeDasharray,\n strokeStyle = _props2.strokeStyle,\n strokeWidth = _props2.strokeWidth,\n style = _props2.style;\n\n var x = this._getAttributeFunctor('x');\n\n var y = this._getAttributeFunctor('y');\n\n var stroke = this._getAttributeValue('stroke') || this._getAttributeValue('color');\n\n var newOpacity = this._getAttributeValue('opacity');\n\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n var d = this._renderLine(data, x, y, curve, getNull);\n\n return React.createElement('path', {\n d: d,\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')',\n onMouseOver: this._seriesMouseOverHandler,\n onMouseOut: this._seriesMouseOutHandler,\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n style: _extends({\n opacity: opacity,\n strokeDasharray: STROKE_STYLES[strokeStyle] || strokeDasharray,\n strokeWidth: strokeWidth,\n stroke: stroke\n }, style)\n });\n }\n }]);\n\n return LineSeries;\n}(AbstractSeries);\n\nLineSeries.displayName = 'LineSeries';\nLineSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeStyle: 'solid',\n style: {},\n opacity: 1,\n curve: null,\n className: '',\n getNull: function getNull() {\n return true;\n }\n});\nexport default LineSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { warning } from '../../utils/react-utils';\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--mark';\nvar DEFAULT_STROKE_WIDTH = 1;\n\nvar MarkSeries = function (_AbstractSeries) {\n _inherits(MarkSeries, _AbstractSeries);\n\n function MarkSeries() {\n _classCallCheck(this, MarkSeries);\n\n return _possibleConstructorReturn(this, (MarkSeries.__proto__ || Object.getPrototypeOf(MarkSeries)).apply(this, arguments));\n }\n\n _createClass(MarkSeries, [{\n key: '_renderCircle',\n value: function _renderCircle(d, i, strokeWidth, style, scalingFunctions) {\n var _this2 = this;\n\n var fill = scalingFunctions.fill,\n opacity = scalingFunctions.opacity,\n size = scalingFunctions.size,\n stroke = scalingFunctions.stroke,\n x = scalingFunctions.x,\n y = scalingFunctions.y;\n var attrs = {\n r: size ? size(d) : DEFAULT_SIZE,\n cx: x(d),\n cy: y(d),\n style: _extends({\n opacity: opacity ? opacity(d) : DEFAULT_OPACITY,\n stroke: stroke && stroke(d),\n fill: fill && fill(d),\n strokeWidth: strokeWidth || DEFAULT_STROKE_WIDTH\n }, style),\n key: i,\n onClick: function onClick(e) {\n return _this2._valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return _this2._valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return _this2._valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._valueMouseOutHandler(d, e);\n }\n };\n return React.createElement('circle', attrs);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n strokeWidth = _props.strokeWidth,\n style = _props.style;\n\n if (this.props.nullAccessor) {\n warning('nullAccessor has been renamed to getNull', true);\n }\n\n var getNull = this.props.nullAccessor || this.props.getNull;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(MarkSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var scalingFunctions = {\n fill: this._getAttributeFunctor('fill') || this._getAttributeFunctor('color'),\n opacity: this._getAttributeFunctor('opacity'),\n size: this._getAttributeFunctor('size'),\n stroke: this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color'),\n x: this._getAttributeFunctor('x'),\n y: this._getAttributeFunctor('y')\n };\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(function (d, i) {\n return getNull(d) && _this3._renderCircle(d, i, strokeWidth, style, scalingFunctions);\n }));\n }\n }]);\n\n return MarkSeries;\n}(AbstractSeries);\n\nMarkSeries.displayName = 'MarkSeries';\nMarkSeries.defaultProps = {\n getNull: function getNull() {\n return true;\n }\n};\nexport default MarkSeries;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport LineSeries from './line-series';\nimport MarkSeries from './mark-series';\n\nvar LineMarkSeries = function (_AbstractSeries) {\n _inherits(LineMarkSeries, _AbstractSeries);\n\n function LineMarkSeries() {\n _classCallCheck(this, LineMarkSeries);\n\n return _possibleConstructorReturn(this, (LineMarkSeries.__proto__ || Object.getPrototypeOf(LineMarkSeries)).apply(this, arguments));\n }\n\n _createClass(LineMarkSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n lineStyle = _props.lineStyle,\n markStyle = _props.markStyle,\n style = _props.style;\n return React.createElement('g', {\n className: 'rv-xy-plot__series rv-xy-plot__series--linemark'\n }, React.createElement(LineSeries, _extends({}, this.props, {\n style: _extends({}, style, lineStyle)\n })), React.createElement(MarkSeries, _extends({}, this.props, {\n style: _extends({}, style, markStyle)\n })));\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return _extends({}, LineSeries.defaultProps, {\n lineStyle: {},\n markStyle: {}\n });\n }\n }]);\n\n return LineMarkSeries;\n}(AbstractSeries);\n\nLineMarkSeries.displayName = 'LineMarkSeries';\nexport default LineMarkSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport { rgb } from 'd3-color';\nimport { DEFAULT_SIZE, DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\n\nvar MarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(MarkSeriesCanvas, _AbstractSeries);\n\n function MarkSeriesCanvas() {\n _classCallCheck(this, MarkSeriesCanvas);\n\n return _possibleConstructorReturn(this, (MarkSeriesCanvas.__proto__ || Object.getPrototypeOf(MarkSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(MarkSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var data = props.data,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop;\n var x = getAttributeFunctor(props, 'x');\n var y = getAttributeFunctor(props, 'y');\n\n var size = getAttributeFunctor(props, 'size') || function (p) {\n return DEFAULT_SIZE;\n };\n\n var fill = getAttributeFunctor(props, 'fill') || getAttributeFunctor(props, 'color');\n var stroke = getAttributeFunctor(props, 'stroke') || getAttributeFunctor(props, 'color');\n var opacity = getAttributeFunctor(props, 'opacity');\n data.forEach(function (row) {\n var fillColor = rgb(fill(row));\n var strokeColor = rgb(stroke(row));\n var rowOpacity = opacity(row) || DEFAULT_OPACITY;\n ctx.beginPath();\n ctx.arc(x(row) + marginLeft, y(row) + marginTop, size(row), 0, 2 * Math.PI);\n ctx.fillStyle = 'rgba(' + fillColor.r + ', ' + fillColor.g + ', ' + fillColor.b + ', ' + rowOpacity + ')';\n ctx.fill();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + rowOpacity + ')';\n ctx.stroke();\n });\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return MarkSeriesCanvas;\n}(AbstractSeries);\n\nMarkSeriesCanvas.displayName = 'MarkSeriesCanvas';\nMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default MarkSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport { rgb } from 'd3-color';\nimport * as d3Shape from 'd3-shape';\nimport React from 'react';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport { getAttributeFunctor, getAttributeValue } from '../../utils/scales-utils';\nimport AbstractSeries from './abstract-series';\n\nvar LineSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineSeriesCanvas, _AbstractSeries);\n\n function LineSeriesCanvas() {\n _classCallCheck(this, LineSeriesCanvas);\n\n return _possibleConstructorReturn(this, (LineSeriesCanvas.__proto__ || Object.getPrototypeOf(LineSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(LineSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return React.createElement('div', null);\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n var curve = props.curve,\n data = props.data,\n marginLeft = props.marginLeft,\n marginTop = props.marginTop,\n strokeWidth = props.strokeWidth,\n strokeDasharray = props.strokeDasharray;\n\n if (!data || data.length === 0) {\n return;\n }\n\n var x = getAttributeFunctor(props, 'x');\n var y = getAttributeFunctor(props, 'y');\n var stroke = getAttributeValue(props, 'stroke') || getAttributeValue(props, 'color');\n var strokeColor = rgb(stroke);\n var newOpacity = getAttributeValue(props, 'opacity');\n var opacity = Number.isFinite(newOpacity) ? newOpacity : DEFAULT_OPACITY;\n var line = d3Shape.line().x(function (row) {\n return x(row) + marginLeft;\n }).y(function (row) {\n return y(row) + marginTop;\n });\n\n if (typeof curve === 'string' && d3Shape[curve]) {\n line = line.curve(d3Shape[curve]);\n } else if (typeof curve === 'function') {\n line = line.curve(curve);\n }\n\n ctx.beginPath();\n ctx.strokeStyle = 'rgba(' + strokeColor.r + ', ' + strokeColor.g + ', ' + strokeColor.b + ', ' + opacity + ')';\n ctx.lineWidth = strokeWidth;\n\n if (strokeDasharray) {\n ctx.setLineDash(strokeDasharray);\n }\n\n line.context(ctx)(data);\n ctx.stroke();\n ctx.closePath(); // set back to default\n\n ctx.lineWidth = 1;\n ctx.setLineDash([]);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return LineSeriesCanvas;\n}(AbstractSeries);\n\nLineSeriesCanvas.displayName = 'LineSeriesCanvas';\nLineSeriesCanvas.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n strokeWidth: 2\n});\nexport default LineSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport AbstractSeries from './abstract-series';\nimport MarkSeriesCanvas from './mark-series-canvas';\nimport LineSeriesCanvas from './line-series-canvas';\n\nvar LineMarkSeriesCanvas = function (_AbstractSeries) {\n _inherits(LineMarkSeriesCanvas, _AbstractSeries);\n\n function LineMarkSeriesCanvas() {\n _classCallCheck(this, LineMarkSeriesCanvas);\n\n return _possibleConstructorReturn(this, (LineMarkSeriesCanvas.__proto__ || Object.getPrototypeOf(LineMarkSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(LineMarkSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n LineSeriesCanvas.renderLayer(props, ctx);\n MarkSeriesCanvas.renderLayer(props, ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return LineMarkSeriesCanvas;\n}(AbstractSeries);\n\nLineMarkSeriesCanvas.displayName = 'LineMarkSeriesCanvas';\nLineMarkSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default LineMarkSeriesCanvas;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--polygon';\nvar DEFAULT_COLOR = '#12939A';\n\nvar generatePath = function generatePath(data, xFunctor, yFunctor) {\n return data.reduce(function (res, row, i) {\n return res + ' ' + (i ? 'L' : 'M') + xFunctor(row) + ' ' + yFunctor(row);\n }, '') + ' Z';\n};\n\nvar PolygonSeries = function (_AbstractSeries) {\n _inherits(PolygonSeries, _AbstractSeries);\n\n function PolygonSeries() {\n _classCallCheck(this, PolygonSeries);\n\n return _possibleConstructorReturn(this, (PolygonSeries.__proto__ || Object.getPrototypeOf(PolygonSeries)).apply(this, arguments));\n }\n\n _createClass(PolygonSeries, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n animation = _props.animation,\n color = _props.color,\n className = _props.className,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n style = _props.style;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(PolygonSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var xFunctor = this._getAttributeFunctor('x');\n\n var yFunctor = this._getAttributeFunctor('y');\n\n return React.createElement('path', {\n className: predefinedClassName + ' ' + className,\n onMouseOver: function onMouseOver(e) {\n return _this2._seriesMouseOverHandler(data, e);\n },\n onMouseOut: function onMouseOut(e) {\n return _this2._seriesMouseOutHandler(data, e);\n },\n onClick: this._seriesClickHandler,\n onContextMenu: this._seriesRightClickHandler,\n fill: color || DEFAULT_COLOR,\n style: style,\n d: generatePath(data, xFunctor, yFunctor),\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n });\n }\n }], [{\n key: 'propTypes',\n get: function get() {\n return _extends({}, AbstractSeries.propTypes);\n }\n }]);\n\n return PolygonSeries;\n}(AbstractSeries);\n\nPolygonSeries.displayName = 'PolygonSeries';\nexport default PolygonSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series';\n\nvar VerticalBarSeries = function (_AbstractSeries) {\n _inherits(VerticalBarSeries, _AbstractSeries);\n\n function VerticalBarSeries() {\n _classCallCheck(this, VerticalBarSeries);\n\n return _possibleConstructorReturn(this, (VerticalBarSeries.__proto__ || Object.getPrototypeOf(VerticalBarSeries)).apply(this, arguments));\n }\n\n _createClass(VerticalBarSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(BarSeries, _extends({}, this.props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x';\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n\n return VerticalBarSeries;\n}(AbstractSeries);\n\nVerticalBarSeries.displayName = 'VerticalBarSeries';\nexport default VerticalBarSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport AbstractSeries from './abstract-series';\nimport BarSeries from './bar-series-canvas';\n\nvar HorizontalBarSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalBarSeriesCanvas, _AbstractSeries);\n\n function HorizontalBarSeriesCanvas() {\n _classCallCheck(this, HorizontalBarSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalBarSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalBarSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(HorizontalBarSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = attr === 'x';\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n BarSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return HorizontalBarSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalBarSeriesCanvas.displayName = 'HorizontalBarSeriesCanvas';\nHorizontalBarSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalBarSeriesCanvas;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport GridLines from './grid-lines';\nimport { DIRECTION } from '../utils/axis-utils';\nvar VERTICAL = DIRECTION.VERTICAL;\nvar defaultProps = {\n direction: VERTICAL,\n attr: 'x'\n};\n\nfunction VerticalGridLines(props) {\n return React.createElement(GridLines, props);\n}\n\nVerticalGridLines.displayName = 'VerticalGridLines';\nVerticalGridLines.defaultProps = defaultProps;\nVerticalGridLines.requiresSVG = true;\nexport default VerticalGridLines;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series';\n\nvar VerticalRectSeries = function (_AbstractSeries) {\n _inherits(VerticalRectSeries, _AbstractSeries);\n\n function VerticalRectSeries() {\n _classCallCheck(this, VerticalRectSeries);\n\n return _possibleConstructorReturn(this, (VerticalRectSeries.__proto__ || Object.getPrototypeOf(VerticalRectSeries)).apply(this, arguments));\n }\n\n _createClass(VerticalRectSeries, [{\n key: 'render',\n value: function render() {\n return React.createElement(RectSeries, _extends({}, this.props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }));\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }]);\n\n return VerticalRectSeries;\n}(AbstractSeries);\n\nVerticalRectSeries.displayName = 'VerticalRectSeries';\nexport default VerticalRectSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport AbstractSeries from './abstract-series';\nimport RectSeries from './rect-series-canvas';\n\nvar HorizontalRectSeriesCanvas = function (_AbstractSeries) {\n _inherits(HorizontalRectSeriesCanvas, _AbstractSeries);\n\n function HorizontalRectSeriesCanvas() {\n _classCallCheck(this, HorizontalRectSeriesCanvas);\n\n return _possibleConstructorReturn(this, (HorizontalRectSeriesCanvas.__proto__ || Object.getPrototypeOf(HorizontalRectSeriesCanvas)).apply(this, arguments));\n }\n\n _createClass(HorizontalRectSeriesCanvas, [{\n key: 'render',\n value: function render() {\n return null;\n }\n }], [{\n key: 'getParentConfig',\n value: function getParentConfig(attr) {\n var isDomainAdjustmentNeeded = false;\n var zeroBaseValue = attr === 'y';\n return {\n isDomainAdjustmentNeeded: isDomainAdjustmentNeeded,\n zeroBaseValue: zeroBaseValue\n };\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer(props, ctx) {\n RectSeries.renderLayer(_extends({}, props, {\n linePosAttr: 'x',\n valuePosAttr: 'y',\n lineSizeAttr: 'width',\n valueSizeAttr: 'height'\n }), ctx);\n }\n }, {\n key: 'requiresSVG',\n get: function get() {\n return false;\n }\n }, {\n key: 'isCanvas',\n get: function get() {\n return true;\n }\n }]);\n\n return HorizontalRectSeriesCanvas;\n}(AbstractSeries);\n\nHorizontalRectSeriesCanvas.displayName = 'HorizontalRectSeriesCanvas';\nHorizontalRectSeriesCanvas.propTypes = _extends({}, AbstractSeries.propTypes);\nexport default HorizontalRectSeriesCanvas;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nimport React from 'react';\nimport { voronoi } from 'd3-voronoi';\nimport { getAttributeFunctor } from '../utils/scales-utils';\n\nvar NOOP = function NOOP(f) {\n return f;\n}; // Find the index of the node at coordinates of a touch point\n\n\nfunction getNodeIndex(evt) {\n var _evt$nativeEvent = evt.nativeEvent,\n pageX = _evt$nativeEvent.pageX,\n pageY = _evt$nativeEvent.pageY;\n var target = document.elementFromPoint(pageX, pageY);\n\n if (!target) {\n return -1;\n }\n\n var parentNode = target.parentNode;\n return Array.prototype.indexOf.call(parentNode.childNodes, target);\n}\n\nfunction getExtent(_ref) {\n var innerWidth = _ref.innerWidth,\n innerHeight = _ref.innerHeight,\n marginLeft = _ref.marginLeft,\n marginTop = _ref.marginTop;\n return [[marginLeft, marginTop], [innerWidth + marginLeft, innerHeight + marginTop]];\n}\n\nfunction Voronoi(props) {\n var className = props.className,\n extent = props.extent,\n nodes = props.nodes,\n onBlur = props.onBlur,\n _onClick = props.onClick,\n _onMouseUp = props.onMouseUp,\n _onMouseDown = props.onMouseDown,\n onHover = props.onHover,\n polygonStyle = props.polygonStyle,\n style = props.style,\n x = props.x,\n y = props.y; // Create a voronoi with each node center points\n\n var voronoiInstance = voronoi().x(x || getAttributeFunctor(props, 'x')).y(y || getAttributeFunctor(props, 'y')).extent(extent || getExtent(props)); // Create an array of polygons corresponding to the cells in voronoi\n\n var polygons = voronoiInstance.polygons(nodes); // Create helper function to handle special logic for touch events\n\n var handleTouchEvent = function handleTouchEvent(handler) {\n return function (evt) {\n evt.preventDefault();\n var index = getNodeIndex(evt);\n\n if (index > -1 && index < polygons.length) {\n var d = polygons[index];\n handler(d.data);\n }\n };\n };\n\n return React.createElement('g', {\n className: className + ' rv-voronoi',\n style: style // Because of the nature of how touch events, and more specifically touchmove\n // and how it differs from mouseover, we must manage touch events on the parent\n ,\n onTouchEnd: handleTouchEvent(_onMouseUp),\n onTouchStart: handleTouchEvent(_onMouseDown),\n onTouchMove: handleTouchEvent(onHover),\n onTouchCancel: handleTouchEvent(onBlur)\n }, polygons.map(function (d, i) {\n return React.createElement('path', {\n className: 'rv-voronoi__cell ' + (d.data && d.data.className || ''),\n d: 'M' + d.join('L') + 'Z',\n onClick: function onClick() {\n return _onClick(d.data);\n },\n onMouseUp: function onMouseUp() {\n return _onMouseUp(d.data);\n },\n onMouseDown: function onMouseDown() {\n return _onMouseDown(d.data);\n },\n onMouseOver: function onMouseOver() {\n return onHover(d.data);\n },\n onMouseOut: function onMouseOut() {\n return onBlur(d.data);\n },\n fill: 'none',\n style: _extends({\n pointerEvents: 'all'\n }, polygonStyle, d.data && d.data.style),\n key: i\n });\n }));\n}\n\nVoronoi.requiresSVG = true;\nVoronoi.displayName = 'Voronoi';\nVoronoi.defaultProps = {\n className: '',\n onBlur: NOOP,\n onClick: NOOP,\n onHover: NOOP,\n onMouseDown: NOOP,\n onMouseUp: NOOP\n};\nexport default Voronoi;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nimport { DEFAULT_OPACITY } from '../../theme';\nimport AbstractSeries from './abstract-series';\nvar predefinedClassName = 'rv-xy-plot__series rv-xy-plot__series--whisker';\nvar DEFAULT_STROKE_WIDTH = 1;\nvar DEFAULT_CROSS_BAR_WIDTH = 6;\n/**\n * Render whisker lines for a data point.\n * @param {Object} whiskerMarkProps All the properties of the whisker mark.\n * @private\n */\n\nvar renderWhiskerMark = function renderWhiskerMark(whiskerMarkProps) {\n return function (d, i) {\n var crossBarWidth = whiskerMarkProps.crossBarWidth,\n opacityFunctor = whiskerMarkProps.opacityFunctor,\n sizeFunctor = whiskerMarkProps.sizeFunctor,\n strokeFunctor = whiskerMarkProps.strokeFunctor,\n strokeWidth = whiskerMarkProps.strokeWidth,\n style = whiskerMarkProps.style,\n valueClickHandler = whiskerMarkProps.valueClickHandler,\n valueMouseOutHandler = whiskerMarkProps.valueMouseOutHandler,\n valueMouseOverHandler = whiskerMarkProps.valueMouseOverHandler,\n valueRightClickHandler = whiskerMarkProps.valueRightClickHandler,\n xFunctor = whiskerMarkProps.xFunctor,\n yFunctor = whiskerMarkProps.yFunctor;\n var r = sizeFunctor ? sizeFunctor(d) : 0;\n var cx = xFunctor(d);\n var cy = yFunctor(d);\n var positiveXVariance = xFunctor({\n x: d.x + d.xVariance / 2\n });\n var negativeXVariance = xFunctor({\n x: d.x - d.xVariance / 2\n });\n var positiveYVariance = yFunctor({\n y: d.y + d.yVariance / 2\n });\n var negativeYVariance = yFunctor({\n y: d.y - d.yVariance / 2\n });\n /**\n * Determine whether on not we should draw whiskers in each direction.\n * We need to see an actual variance value, and also have that value extend past the\n * radius \"buffer\" region in which we won't be drawing (if any).\n */\n\n var hasXWhiskers = positiveXVariance && cx + r < positiveXVariance;\n var hasYWhiskers = positiveYVariance && cy - r > positiveYVariance;\n\n if (!hasXWhiskers && !hasYWhiskers) {\n return null;\n }\n\n var styleAttr = _extends({\n opacity: opacityFunctor ? opacityFunctor(d) : DEFAULT_OPACITY,\n stroke: strokeFunctor && strokeFunctor(d),\n strokeWidth: strokeWidth || DEFAULT_STROKE_WIDTH\n }, style);\n\n var crossBarExtension = crossBarWidth / 2;\n var rightLineAttrs = {\n x1: cx + r,\n y1: cy,\n x2: positiveXVariance,\n y2: cy,\n style: styleAttr\n };\n var leftLineAttrs = {\n x1: cx - r,\n y1: cy,\n x2: negativeXVariance,\n y2: cy,\n style: styleAttr\n };\n var rightCrossBarAttrs = {\n x1: positiveXVariance,\n y1: cy - crossBarExtension,\n x2: positiveXVariance,\n y2: cy + crossBarExtension,\n style: styleAttr\n };\n var leftCrossBarAttrs = {\n x1: negativeXVariance,\n y1: cy - crossBarExtension,\n x2: negativeXVariance,\n y2: cy + crossBarExtension,\n style: styleAttr\n };\n var upperLineAttrs = {\n x1: cx,\n y1: cy - r,\n x2: cx,\n y2: positiveYVariance,\n style: styleAttr\n };\n var lowerLineAttrs = {\n x1: cx,\n y1: cy + r,\n x2: cx,\n y2: negativeYVariance,\n style: styleAttr\n };\n var upperCrossBarAttrs = {\n x1: cx - crossBarExtension,\n y1: positiveYVariance,\n x2: cx + crossBarExtension,\n y2: positiveYVariance,\n style: styleAttr\n };\n var lowerCrossBarAttrs = {\n x1: cx - crossBarExtension,\n y1: negativeYVariance,\n x2: cx + crossBarExtension,\n y2: negativeYVariance,\n style: styleAttr\n };\n return React.createElement('g', {\n className: 'mark-whiskers',\n key: i,\n onClick: function onClick(e) {\n return valueClickHandler(d, e);\n },\n onContextMenu: function onContextMenu(e) {\n return valueRightClickHandler(d, e);\n },\n onMouseOver: function onMouseOver(e) {\n return valueMouseOverHandler(d, e);\n },\n onMouseOut: function onMouseOut(e) {\n return valueMouseOutHandler(d, e);\n }\n }, hasXWhiskers ? React.createElement('g', {\n className: 'x-whiskers'\n }, React.createElement('line', rightLineAttrs), React.createElement('line', leftLineAttrs), React.createElement('line', rightCrossBarAttrs), React.createElement('line', leftCrossBarAttrs)) : null, hasYWhiskers ? React.createElement('g', {\n className: 'y-whiskers'\n }, React.createElement('line', upperLineAttrs), React.createElement('line', lowerLineAttrs), React.createElement('line', upperCrossBarAttrs), React.createElement('line', lowerCrossBarAttrs)) : null);\n };\n};\n\nvar WhiskerSeries = function (_AbstractSeries) {\n _inherits(WhiskerSeries, _AbstractSeries);\n\n function WhiskerSeries() {\n _classCallCheck(this, WhiskerSeries);\n\n return _possibleConstructorReturn(this, (WhiskerSeries.__proto__ || Object.getPrototypeOf(WhiskerSeries)).apply(this, arguments));\n }\n\n _createClass(WhiskerSeries, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n animation = _props.animation,\n className = _props.className,\n crossBarWidth = _props.crossBarWidth,\n data = _props.data,\n marginLeft = _props.marginLeft,\n marginTop = _props.marginTop,\n strokeWidth = _props.strokeWidth,\n style = _props.style;\n\n if (!data) {\n return null;\n }\n\n if (animation) {\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(WhiskerSeries, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var whiskerMarkProps = {\n crossBarWidth: crossBarWidth,\n opacityFunctor: this._getAttributeFunctor('opacity'),\n sizeFunctor: this._getAttributeFunctor('size'),\n strokeFunctor: this._getAttributeFunctor('stroke') || this._getAttributeFunctor('color'),\n strokeWidth: strokeWidth,\n style: style,\n xFunctor: this._getAttributeFunctor('x'),\n yFunctor: this._getAttributeFunctor('y'),\n valueClickHandler: this._valueClickHandler,\n valueRightClickHandler: this._valueRightClickHandler,\n valueMouseOverHandler: this._valueMouseOverHandler,\n valueMouseOutHandler: this._valueMouseOutHandler\n };\n return React.createElement('g', {\n className: predefinedClassName + ' ' + className,\n transform: 'translate(' + marginLeft + ',' + marginTop + ')'\n }, data.map(renderWhiskerMark(whiskerMarkProps)));\n }\n }]);\n\n return WhiskerSeries;\n}(AbstractSeries);\n\nWhiskerSeries.displayName = 'WhiskerSeries';\nWhiskerSeries.defaultProps = _extends({}, AbstractSeries.defaultProps, {\n crossBarWidth: DEFAULT_CROSS_BAR_WIDTH,\n size: 0,\n strokeWidth: DEFAULT_STROKE_WIDTH\n});\nexport default WhiskerSeries;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport PropTypes from 'prop-types';\n/**\n * Get the dimensions of the component for the future use.\n * @param {Object} props Props.\n * @param {Object} defaultMargins Object with default margins.\n * @returns {Object} Dimensions of the component.\n */\n\nexport function getInnerDimensions(props, defaultMargins) {\n var margin = props.margin,\n width = props.width,\n height = props.height;\n\n var marginProps = _extends({}, defaultMargins, typeof margin === 'number' ? {\n left: margin,\n right: margin,\n top: margin,\n bottom: margin\n } : margin);\n\n var _marginProps$left = marginProps.left,\n marginLeft = _marginProps$left === undefined ? 0 : _marginProps$left,\n _marginProps$top = marginProps.top,\n marginTop = _marginProps$top === undefined ? 0 : _marginProps$top,\n _marginProps$right = marginProps.right,\n marginRight = _marginProps$right === undefined ? 0 : _marginProps$right,\n _marginProps$bottom = marginProps.bottom,\n marginBottom = _marginProps$bottom === undefined ? 0 : _marginProps$bottom;\n return {\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginRight: marginRight,\n marginBottom: marginBottom,\n innerHeight: height - marginBottom - marginTop,\n innerWidth: width - marginLeft - marginRight\n };\n}\n/**\n * Calculate the margin of the sunburst,\n * so it can be at the center of the container\n * @param {Number} width - the width of the container\n * @param {Number} height - the height of the container\n * @param {Number} radius - the max radius of the sunburst\n * @return {Object} an object includes {bottom, left, right, top}\n */\n\nexport function getRadialLayoutMargin(width, height, radius) {\n var marginX = width / 2 - radius;\n var marginY = height / 2 - radius;\n return {\n bottom: marginY,\n left: marginX,\n right: marginX,\n top: marginY\n };\n}\nexport var MarginPropType = PropTypes.oneOfType([PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number\n}), PropTypes.number]);\nexport var DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { Component } from 'react';\nimport { interpolate } from 'd3-interpolate';\nimport { extractAnimatedPropValues } from '../../animation';\nimport { ANIMATED_SERIES_PROPS } from '../../utils/series-utils';\nvar MAX_DRAWS = 30;\n/**\n * Draw loop draws each of the layers until it should draw more\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n */\n\nfunction engageDrawLoop(ctx, height, width, layers) {\n var drawIteration = 0; // using setInterval because request animation frame goes too fast\n\n var drawCycle = setInterval(function () {\n if (!ctx) {\n clearInterval(drawCycle);\n return;\n }\n\n drawLayers(ctx, height, width, layers, drawIteration);\n\n if (drawIteration > MAX_DRAWS) {\n clearInterval(drawCycle);\n }\n\n drawIteration += 1;\n }, 1);\n}\n/**\n * Loops across each of the layers to be drawn and draws them\n * @param {CanvasContext} ctx - the context where the drawing will take place\n * @param {Number} height - height of the canvas\n * @param {Number} width - width of the canvas\n * @param {Array} layers - the layer objects to render\n * @param {Number} drawIteration - width of the canvas\n */\n\n\nfunction drawLayers(ctx, height, width, layers, drawIteration) {\n ctx.clearRect(0, 0, width, height);\n layers.forEach(function (layer) {\n var interpolator = layer.interpolator,\n newProps = layer.newProps,\n animation = layer.animation; // return an empty object if dont need to be animating\n\n var interpolatedProps = animation ? interpolator ? interpolator(drawIteration / MAX_DRAWS) : interpolator : function () {\n return {};\n };\n layer.renderLayer(_extends({}, newProps, interpolatedProps), ctx);\n });\n}\n/**\n * Build an array of layer of objects the contain the method for drawing each series\n * as well as an interpolar (specifically a d3-interpolate interpolator)\n * @param {Object} newChildren the new children to be rendered.\n * @param {Object} oldChildren the old children to be rendered.\n * @returns {Array} Object for rendering\n */\n\n\nfunction buildLayers(newChildren, oldChildren) {\n return newChildren.map(function (child, index) {\n var oldProps = oldChildren[index] ? oldChildren[index].props : {};\n var newProps = child.props;\n var oldAnimatedProps = extractAnimatedPropValues(_extends({}, oldProps, {\n animatedProps: ANIMATED_SERIES_PROPS\n }));\n var newAnimatedProps = newProps ? extractAnimatedPropValues(_extends({}, newProps, {\n animatedProps: ANIMATED_SERIES_PROPS\n })) : null;\n var interpolator = interpolate(oldAnimatedProps, newAnimatedProps);\n return {\n renderLayer: child.type.renderLayer,\n newProps: child.props,\n animation: child.props.animation,\n interpolator: interpolator\n };\n });\n}\n\nvar CanvasWrapper = function (_Component) {\n _inherits(CanvasWrapper, _Component);\n\n function CanvasWrapper() {\n _classCallCheck(this, CanvasWrapper);\n\n return _possibleConstructorReturn(this, (CanvasWrapper.__proto__ || Object.getPrototypeOf(CanvasWrapper)).apply(this, arguments));\n }\n\n _createClass(CanvasWrapper, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var ctx = this.canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n var pixelRatio = this.props.pixelRatio;\n\n if (!ctx) {\n return;\n }\n\n ctx.scale(pixelRatio, pixelRatio);\n this.drawChildren(null, this.props, ctx);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(oldProps) {\n this.drawChildren(oldProps, this.props, this.canvas.getContext('2d'));\n }\n /**\n * Check that we can and should be animating, then kick off animations as apporpriate\n * @param {Object} newProps the new props to be interpolated to\n * @param {Object} oldProps the old props to be interpolated against\n * @param {DomRef} ctx the canvas context to be drawn on.\n * @returns {Array} Object for rendering\n */\n\n }, {\n key: 'drawChildren',\n value: function drawChildren(oldProps, newProps, ctx) {\n var children = newProps.children,\n innerHeight = newProps.innerHeight,\n innerWidth = newProps.innerWidth,\n marginBottom = newProps.marginBottom,\n marginLeft = newProps.marginLeft,\n marginRight = newProps.marginRight,\n marginTop = newProps.marginTop;\n\n if (!ctx) {\n return;\n }\n\n var childrenShouldAnimate = children.find(function (child) {\n return child.props.animation;\n });\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n var layers = buildLayers(newProps.children, oldProps ? oldProps.children : []); // if we don't need to be animating, dont! cut short\n\n if (!childrenShouldAnimate) {\n drawLayers(ctx, height, width, layers);\n return;\n }\n\n engageDrawLoop(ctx, height, width, layers);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n innerHeight = _props.innerHeight,\n innerWidth = _props.innerWidth,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n marginTop = _props.marginTop,\n pixelRatio = _props.pixelRatio;\n var height = innerHeight + marginTop + marginBottom;\n var width = innerWidth + marginLeft + marginRight;\n return React.createElement('div', {\n style: {\n left: 0,\n top: 0\n },\n className: 'rv-xy-canvas'\n }, React.createElement('canvas', {\n className: 'rv-xy-canvas-element',\n height: height * pixelRatio,\n width: width * pixelRatio,\n style: {\n height: height + 'px',\n width: width + 'px'\n },\n ref: function ref(_ref) {\n return _this2.canvas = _ref;\n }\n }), this.props.children);\n }\n }], [{\n key: 'defaultProps',\n get: function get() {\n return {\n pixelRatio: window && window.devicePixelRatio || 1\n };\n }\n }]);\n\n return CanvasWrapper;\n}(Component);\n\nCanvasWrapper.displayName = 'CanvasWrapper';\nexport default CanvasWrapper;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport equal from 'deep-equal';\nimport { extractScalePropsFromProps, getMissingScaleProps, getOptionalScaleProps, getXYPlotValues } from '../utils/scales-utils';\nimport { getStackedData, getSeriesChildren, getSeriesPropsFromChildren } from '../utils/series-utils';\nimport { getInnerDimensions, MarginPropType, DEFAULT_MARGINS } from '../utils/chart-utils';\nimport { AnimationPropType } from '../animation';\nimport { CONTINUOUS_COLOR_RANGE, EXTENDED_DISCRETE_COLOR_RANGE, SIZE_RANGE, OPACITY_TYPE } from '../theme';\nimport CanvasWrapper from './series/canvas-wrapper';\nvar ATTRIBUTES = ['x', 'y', 'radius', 'angle', 'color', 'fill', 'stroke', 'opacity', 'size'];\n/**\n * Remove parents from tree formatted data. deep-equal doesnt play nice with data\n * that has circular structures, so we make every node single directional by pruning the parents.\n * @param {Array} data - the data object to have circular deps resolved in\n * @returns {Array} the sanitized data\n */\n\nfunction cleanseData(data) {\n return data.map(function (series) {\n if (!Array.isArray(series)) {\n return series;\n }\n\n return series.map(function (row) {\n return _extends({}, row, {\n parent: null\n });\n });\n });\n}\n/**\n * Wrapper on the deep-equal method for checking equality of next props vs current props\n * @param {Object} scaleMixins - Scale object.\n * @param {Object} nextScaleMixins - Scale object.\n * @param {Boolean} hasTreeStructure - Whether or not to cleanse the data of possible cyclic structures\n * @returns {Boolean} whether or not the two mixins objects are equal\n */\n\n\nfunction checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, hasTreeStructure) {\n var newMixins = _extends({}, nextScaleMixins, {\n _allData: hasTreeStructure ? cleanseData(nextScaleMixins._allData) : nextScaleMixins._allData\n });\n\n var oldMixins = _extends({}, scaleMixins, {\n _allData: hasTreeStructure ? cleanseData(scaleMixins._allData) : scaleMixins._allData\n }); // it's hard to say if this function is reasonable?\n\n\n return equal(newMixins, oldMixins);\n}\n\nvar XYPlot = function (_React$Component) {\n _inherits(XYPlot, _React$Component);\n\n _createClass(XYPlot, null, [{\n key: 'defaultProps',\n get: function get() {\n return {\n className: ''\n };\n }\n }, {\n key: 'propTypes',\n get: function get() {\n return {\n animation: AnimationPropType,\n className: PropTypes.string,\n dontCheckIfEmpty: PropTypes.bool,\n height: PropTypes.number.isRequired,\n margin: MarginPropType,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchCancel: PropTypes.func,\n onWheel: PropTypes.func,\n stackBy: PropTypes.oneOf(ATTRIBUTES),\n style: PropTypes.object,\n width: PropTypes.number.isRequired\n };\n }\n }]);\n\n function XYPlot(props) {\n _classCallCheck(this, XYPlot);\n\n var _this = _possibleConstructorReturn(this, (XYPlot.__proto__ || Object.getPrototypeOf(XYPlot)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var stackBy = props.stackBy;\n var children = getSeriesChildren(props.children);\n var data = getStackedData(children, stackBy);\n _this.state = {\n scaleMixins: _this._getScaleMixins(data, props),\n data: data\n };\n return _this;\n }\n\n _createClass(XYPlot, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var children = getSeriesChildren(nextProps.children);\n var nextData = getStackedData(children, nextProps.stackBy);\n var scaleMixins = this.state.scaleMixins;\n\n var nextScaleMixins = this._getScaleMixins(nextData, nextProps);\n\n if (!checkIfMixinsAreEqual(nextScaleMixins, scaleMixins, nextProps.hasTreeStructure)) {\n this.setState({\n scaleMixins: nextScaleMixins,\n data: nextData\n });\n }\n }\n /**\n * Trigger click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Click event.\n * @private\n */\n\n /**\n * Trigger doule-click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Double-click event.\n * @private\n */\n\n }, {\n key: '_getClonedChildComponents',\n\n /**\n * Prepare the child components (including series) for rendering.\n * @returns {Array} Array of child components.\n * @private\n */\n value: function _getClonedChildComponents() {\n var _this2 = this;\n\n var props = this.props;\n var animation = this.props.animation;\n var _state = this.state,\n scaleMixins = _state.scaleMixins,\n data = _state.data;\n var dimensions = getInnerDimensions(this.props, DEFAULT_MARGINS);\n var children = React.Children.toArray(this.props.children);\n var seriesProps = getSeriesPropsFromChildren(children);\n var XYPlotValues = getXYPlotValues(props, children);\n return children.map(function (child, index) {\n var dataProps = null;\n\n if (seriesProps[index]) {\n // Get the index of the series in the list of props and retrieve\n // the data property from it.\n var seriesIndex = seriesProps[index].seriesIndex;\n dataProps = {\n data: data[seriesIndex]\n };\n }\n\n return React.cloneElement(child, _extends({}, dimensions, {\n animation: animation\n }, dataProps && child.type.prototype && child.type.prototype.render ? {\n ref: function ref(_ref) {\n return _this2['series' + seriesProps[index].seriesIndex] = _ref;\n }\n } : {}, seriesProps[index], scaleMixins, child.props, XYPlotValues[index], dataProps));\n });\n }\n /**\n * Get the list of scale-related settings that should be applied by default.\n * @param {Object} props Object of props.\n * @returns {Object} Defaults.\n * @private\n */\n\n }, {\n key: '_getDefaultScaleProps',\n value: function _getDefaultScaleProps(props) {\n var _getInnerDimensions = getInnerDimensions(props, DEFAULT_MARGINS),\n innerWidth = _getInnerDimensions.innerWidth,\n innerHeight = _getInnerDimensions.innerHeight;\n\n var colorRanges = ['color', 'fill', 'stroke'].reduce(function (acc, attr) {\n var range = props[attr + 'Type'] === 'category' ? EXTENDED_DISCRETE_COLOR_RANGE : CONTINUOUS_COLOR_RANGE;\n return _extends({}, acc, _defineProperty({}, attr + 'Range', range));\n }, {});\n return _extends({\n xRange: [0, innerWidth],\n yRange: [innerHeight, 0]\n }, colorRanges, {\n opacityType: OPACITY_TYPE,\n sizeRange: SIZE_RANGE\n });\n }\n /**\n * Get the map of scales from the props, apply defaults to them and then pass\n * them further.\n * @param {Object} data Array of all data.\n * @param {Object} props Props of the component.\n * @returns {Object} Map of scale-related props.\n * @private\n */\n\n }, {\n key: '_getScaleMixins',\n value: function _getScaleMixins(data, props) {\n var _ref2;\n\n var filteredData = data.filter(function (d) {\n return d;\n });\n\n var allData = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(filteredData));\n\n var defaultScaleProps = this._getDefaultScaleProps(props);\n\n var optionalScaleProps = getOptionalScaleProps(props);\n var userScaleProps = extractScalePropsFromProps(props, ATTRIBUTES);\n var missingScaleProps = getMissingScaleProps(_extends({}, defaultScaleProps, optionalScaleProps, userScaleProps), allData, ATTRIBUTES);\n var children = getSeriesChildren(props.children);\n var zeroBaseProps = {};\n var adjustBy = new Set();\n var adjustWhat = new Set();\n children.forEach(function (child, index) {\n if (!child || !data[index]) {\n return;\n }\n\n ATTRIBUTES.forEach(function (attr) {\n var _child$type$getParent = child.type.getParentConfig(attr, child.props),\n isDomainAdjustmentNeeded = _child$type$getParent.isDomainAdjustmentNeeded,\n zeroBaseValue = _child$type$getParent.zeroBaseValue;\n\n if (isDomainAdjustmentNeeded) {\n adjustBy.add(attr);\n adjustWhat.add(index);\n }\n\n if (zeroBaseValue) {\n var specifiedDomain = props[attr + 'Domain'];\n zeroBaseProps[attr + 'BaseValue'] = specifiedDomain ? specifiedDomain[0] : 0;\n }\n });\n });\n return _extends({}, defaultScaleProps, zeroBaseProps, userScaleProps, missingScaleProps, {\n _allData: data,\n _adjustBy: Array.from(adjustBy),\n _adjustWhat: Array.from(adjustWhat),\n _stackBy: props.stackBy\n });\n }\n /**\n * Checks if the plot is empty or not.\n * Currently checks the data only.\n * @returns {boolean} True for empty.\n * @private\n */\n\n }, {\n key: '_isPlotEmpty',\n value: function _isPlotEmpty() {\n var data = this.state.data;\n return !data || !data.length || !data.some(function (series) {\n return series && series.some(function (d) {\n return d;\n });\n });\n }\n /**\n * Trigger mouse-down related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse down event.\n * @private\n */\n\n /**\n * Trigger onMouseEnter handler if it was passed in props.\n * @param {React.SyntheticEvent} event Mouse enter event.\n * @private\n */\n\n /**\n * Trigger onMouseLeave handler if it was passed in props.\n * @param {React.SyntheticEvent} event Mouse leave event.\n * @private\n */\n\n /**\n * Trigger movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse move event.\n * @private\n */\n\n /**\n * Trigger mouse-up related callbacks if they are available.\n * @param {React.SyntheticEvent} event Mouse up event.\n * @private\n */\n\n /**\n * Trigger onTouchCancel handler if it was passed in props.\n * @param {React.SyntheticEvent} event Touch Cancel event.\n * @private\n */\n\n /**\n * Trigger onTouchEnd handler if it was passed in props.\n * @param {React.SyntheticEvent} event Touch End event.\n * @private\n */\n\n /**\n * Trigger touch movement-related callbacks if they are available.\n * @param {React.SyntheticEvent} event Touch move event.\n * @private\n */\n\n /**\n * Trigger touch-start related callbacks if they are available.\n * @param {React.SyntheticEvent} event Touch start event.\n * @private\n */\n\n /**\n * Trigger doule-click related callbacks if they are available.\n * @param {React.SyntheticEvent} event Double-click event.\n * @private\n */\n\n }, {\n key: 'renderCanvasComponents',\n value: function renderCanvasComponents(components, props) {\n var componentsToRender = components.filter(function (c) {\n return c && !c.type.requiresSVG && c.type.isCanvas;\n });\n\n if (componentsToRender.length === 0) {\n return null;\n }\n\n var _componentsToRender$ = componentsToRender[0].props,\n marginLeft = _componentsToRender$.marginLeft,\n marginTop = _componentsToRender$.marginTop,\n marginBottom = _componentsToRender$.marginBottom,\n marginRight = _componentsToRender$.marginRight,\n innerHeight = _componentsToRender$.innerHeight,\n innerWidth = _componentsToRender$.innerWidth;\n return React.createElement(CanvasWrapper, {\n innerHeight: innerHeight,\n innerWidth: innerWidth,\n marginLeft: marginLeft,\n marginTop: marginTop,\n marginBottom: marginBottom,\n marginRight: marginRight\n }, componentsToRender);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n dontCheckIfEmpty = _props.dontCheckIfEmpty,\n style = _props.style,\n width = _props.width,\n height = _props.height;\n\n if (!dontCheckIfEmpty && this._isPlotEmpty()) {\n return React.createElement('div', {\n className: 'rv-xy-plot ' + className,\n style: _extends({\n width: width + 'px',\n height: height + 'px'\n }, this.props.style)\n });\n }\n\n var components = this._getClonedChildComponents();\n\n return React.createElement('div', {\n style: {\n width: width + 'px',\n height: height + 'px'\n },\n className: 'rv-xy-plot ' + className\n }, React.createElement('svg', {\n className: 'rv-xy-plot__inner',\n width: width,\n height: height,\n style: style,\n onClick: this._clickHandler,\n onDoubleClick: this._doubleClickHandler,\n onMouseDown: this._mouseDownHandler,\n onMouseUp: this._mouseUpHandler,\n onMouseMove: this._mouseMoveHandler,\n onMouseLeave: this._mouseLeaveHandler,\n onMouseEnter: this._mouseEnterHandler,\n onTouchStart: this._mouseDownHandler,\n onTouchMove: this._touchMoveHandler,\n onTouchEnd: this._touchEndHandler,\n onTouchCancel: this._touchCancelHandler,\n onWheel: this._wheelHandler\n }, components.filter(function (c) {\n return c && c.type.requiresSVG;\n })), this.renderCanvasComponents(components, this.props), components.filter(function (c) {\n return c && !c.type.requiresSVG && !c.type.isCanvas;\n }));\n }\n }]);\n\n return XYPlot;\n}(React.Component);\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this._clickHandler = function (event) {\n var onClick = _this3.props.onClick;\n\n if (onClick) {\n onClick(event);\n }\n };\n\n this._doubleClickHandler = function (event) {\n var onDoubleClick = _this3.props.onDoubleClick;\n\n if (onDoubleClick) {\n onDoubleClick(event);\n }\n };\n\n this._mouseDownHandler = function (event) {\n var _props2 = _this3.props,\n onMouseDown = _props2.onMouseDown,\n children = _props2.children;\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseDown) {\n component.onParentMouseDown(event);\n }\n });\n };\n\n this._mouseEnterHandler = function (event) {\n var _props3 = _this3.props,\n onMouseEnter = _props3.onMouseEnter,\n children = _props3.children;\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseEnter) {\n component.onParentMouseEnter(event);\n }\n });\n };\n\n this._mouseLeaveHandler = function (event) {\n var _props4 = _this3.props,\n onMouseLeave = _props4.onMouseLeave,\n children = _props4.children;\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseLeave) {\n component.onParentMouseLeave(event);\n }\n });\n };\n\n this._mouseMoveHandler = function (event) {\n var _props5 = _this3.props,\n onMouseMove = _props5.onMouseMove,\n children = _props5.children;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseMove) {\n component.onParentMouseMove(event);\n }\n });\n };\n\n this._mouseUpHandler = function (event) {\n var _props6 = _this3.props,\n onMouseUp = _props6.onMouseUp,\n children = _props6.children;\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentMouseUp) {\n component.onParentMouseUp(event);\n }\n });\n };\n\n this._touchCancelHandler = function (event) {\n var onTouchCancel = _this3.props.onTouchCancel;\n\n if (onTouchCancel) {\n onTouchCancel(event);\n }\n };\n\n this._touchEndHandler = function (event) {\n var onTouchEnd = _this3.props.onTouchEnd;\n\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n };\n\n this._touchMoveHandler = function (event) {\n var _props7 = _this3.props,\n onTouchMove = _props7.onTouchMove,\n children = _props7.children;\n\n if (onTouchMove) {\n onTouchMove(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentTouchMove) {\n component.onParentTouchMove(event);\n }\n });\n };\n\n this._touchStartHandler = function (event) {\n var _props8 = _this3.props,\n onTouchStart = _props8.onTouchStart,\n children = _props8.children;\n\n if (onTouchStart) {\n onTouchStart(event);\n }\n\n var seriesChildren = getSeriesChildren(children);\n seriesChildren.forEach(function (child, index) {\n var component = _this3['series' + index];\n\n if (component && component.onParentTouchStart) {\n component.onParentTouchStart(event);\n }\n });\n };\n\n this._wheelHandler = function (event) {\n var onWheel = _this3.props.onWheel;\n\n if (onWheel) {\n onWheel(event);\n }\n };\n};\n\nXYPlot.displayName = 'XYPlot';\nexport default XYPlot;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP;\nvar defaultProps = {\n style: {}\n};\n\nfunction AxisLine(_ref) {\n var orientation = _ref.orientation,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style;\n var lineProps = void 0;\n\n if (orientation === LEFT) {\n lineProps = {\n x1: width,\n x2: width,\n y1: 0,\n y2: height\n };\n } else if (orientation === RIGHT) {\n lineProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: height\n };\n } else if (orientation === TOP) {\n lineProps = {\n x1: 0,\n x2: width,\n y1: height,\n y2: height\n };\n } else {\n lineProps = {\n x1: 0,\n x2: width,\n y1: 0,\n y2: 0\n };\n }\n\n return React.createElement('line', _extends({}, lineProps, {\n className: 'rv-xy-plot__axis__line',\n style: style\n }));\n}\n\nAxisLine.defaultProps = defaultProps;\nAxisLine.displayName = 'AxisLine';\nexport default AxisLine;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { ORIENTATION, getTickValues } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n style: {}\n};\n\nfunction _getTickFormatFn(scale, tickTotal, tickFormat) {\n return !tickFormat ? scale.tickFormat ? scale.tickFormat(tickTotal) : function (v) {\n return v;\n } : tickFormat;\n}\n\nvar AxisTicks = function (_React$Component) {\n _inherits(AxisTicks, _React$Component);\n\n function AxisTicks() {\n _classCallCheck(this, AxisTicks);\n\n return _possibleConstructorReturn(this, (AxisTicks.__proto__ || Object.getPrototypeOf(AxisTicks)).apply(this, arguments));\n }\n\n _createClass(AxisTicks, [{\n key: '_areTicksWrapped',\n\n /**\n * Check if axis ticks should be mirrored (for the right and top positions.\n * @returns {boolean} True if mirrored.\n * @private\n */\n value: function _areTicksWrapped() {\n var orientation = this.props.orientation;\n return orientation === LEFT || orientation === TOP;\n }\n }, {\n key: '_getTickContainerPropsGetterFn',\n value: function _getTickContainerPropsGetterFn() {\n if (this._isAxisVertical()) {\n return function (pos) {\n return {\n transform: 'translate(0, ' + pos + ')'\n };\n };\n }\n\n return function (pos) {\n return {\n transform: 'translate(' + pos + ', 0)'\n };\n };\n }\n /**\n * Get attributes for the label of the tick.\n * @returns {Object} Object with properties.\n * @private\n */\n\n }, {\n key: '_getTickLabelProps',\n value: function _getTickLabelProps() {\n var _props = this.props,\n orientation = _props.orientation,\n tickLabelAngle = _props.tickLabelAngle,\n tickSize = _props.tickSize,\n _props$tickSizeOuter = _props.tickSizeOuter,\n tickSizeOuter = _props$tickSizeOuter === undefined ? tickSize : _props$tickSizeOuter,\n _props$tickPadding = _props.tickPadding,\n tickPadding = _props$tickPadding === undefined ? tickSize : _props$tickPadding; // Assign the text orientation inside the label of the tick mark.\n\n var textAnchor = void 0;\n\n if (orientation === LEFT || orientation === BOTTOM && tickLabelAngle) {\n textAnchor = 'end';\n } else if (orientation === RIGHT || orientation === TOP && tickLabelAngle) {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n } // The label's position is translated to the given padding and then the\n // label is rotated to the given angle.\n\n\n var isVertical = this._isAxisVertical();\n\n var wrap = this._areTicksWrapped() ? -1 : 1;\n var labelOffset = wrap * (tickSizeOuter + tickPadding);\n var transform = (isVertical ? 'translate(' + labelOffset + ', 0)' : 'translate(0, ' + labelOffset + ')') + (tickLabelAngle ? ' rotate(' + tickLabelAngle + ')' : ''); // Set the vertical offset of the label according to the position of\n // the axis.\n\n var dy = orientation === TOP || tickLabelAngle ? '0' : orientation === BOTTOM ? '0.72em' : '0.32em';\n return {\n textAnchor: textAnchor,\n dy: dy,\n transform: transform\n };\n }\n /**\n * Get the props of the tick line.\n * @returns {Object} Props.\n * @private\n */\n\n }, {\n key: '_getTickLineProps',\n value: function _getTickLineProps() {\n var _ref;\n\n var _props2 = this.props,\n tickSize = _props2.tickSize,\n _props2$tickSizeOuter = _props2.tickSizeOuter,\n tickSizeOuter = _props2$tickSizeOuter === undefined ? tickSize : _props2$tickSizeOuter,\n _props2$tickSizeInner = _props2.tickSizeInner,\n tickSizeInner = _props2$tickSizeInner === undefined ? tickSize : _props2$tickSizeInner;\n\n var isVertical = this._isAxisVertical();\n\n var tickXAttr = isVertical ? 'y' : 'x';\n var tickYAttr = isVertical ? 'x' : 'y';\n var wrap = this._areTicksWrapped() ? -1 : 1;\n return _ref = {}, _defineProperty(_ref, tickXAttr + '1', 0), _defineProperty(_ref, tickXAttr + '2', 0), _defineProperty(_ref, tickYAttr + '1', -wrap * tickSizeInner), _defineProperty(_ref, tickYAttr + '2', wrap * tickSizeOuter), _ref;\n }\n /**\n * Gets if the axis is vertical.\n * @returns {boolean} True if vertical.\n * @private\n */\n\n }, {\n key: '_isAxisVertical',\n value: function _isAxisVertical() {\n var orientation = this.props.orientation;\n return orientation === LEFT || orientation === RIGHT;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n attr = _props3.attr,\n orientation = _props3.orientation,\n width = _props3.width,\n height = _props3.height,\n style = _props3.style,\n tickFormat = _props3.tickFormat,\n tickTotal = _props3.tickTotal,\n tickValues = _props3.tickValues;\n var x = orientation === LEFT ? width : 0;\n var y = orientation === TOP ? height : 0;\n var scale = getAttributeScale(this.props, attr);\n var values = getTickValues(scale, tickTotal, tickValues);\n\n var tickFormatFn = _getTickFormatFn(scale, tickTotal, tickFormat);\n\n var translateFn = this._getTickContainerPropsGetterFn();\n\n var pathProps = this._getTickLineProps();\n\n var textProps = this._getTickLabelProps();\n\n var ticks = values.map(function (v, i) {\n var pos = scale(v);\n var labelNode = tickFormatFn(v, i, scale, tickTotal);\n var shouldRenderAsOwnNode = React.isValidElement(labelNode) && !['tspan', 'textPath'].includes(labelNode.type);\n var shouldAddProps = labelNode && typeof labelNode.type !== 'string';\n return React.createElement('g', _extends({\n key: i\n }, translateFn(pos, 0), {\n className: 'rv-xy-plot__axis__tick',\n style: style\n }), React.createElement('line', _extends({}, pathProps, {\n className: 'rv-xy-plot__axis__tick__line',\n style: _extends({}, style, style.line)\n })), shouldRenderAsOwnNode ? React.cloneElement(labelNode, shouldAddProps ? _extends({}, textProps, {\n containerWidth: width,\n tickCount: values.length\n }) : undefined) : React.createElement('text', _extends({}, textProps, {\n className: 'rv-xy-plot__axis__tick__text',\n style: _extends({}, style, style.text)\n }), labelNode));\n });\n return React.createElement('g', {\n transform: 'translate(' + x + ', ' + y + ')',\n className: 'rv-xy-plot__axis__ticks'\n }, ticks);\n }\n }]);\n\n return AxisTicks;\n}(React.Component);\n\nAxisTicks.defaultProps = defaultProps;\nAxisTicks.displayName = 'AxisTicks';\nAxisTicks.requiresSVG = true;\nexport default AxisTicks;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils'; // Assuming that 16px = 1em\n\nvar ADJUSTMENT_FOR_TEXT_SIZE = 16;\nvar MARGIN = 6;\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n position: 'end'\n};\n/**\n * Compute transformations, keyed by orientation\n * @param {number} width - width of axis\n * @param {number} height - height of axis\n * @returns {Object} Object of transformations, keyed by orientation\n */\n\nvar transformation = function transformation(width, height) {\n var _ref;\n\n return _ref = {}, _defineProperty(_ref, LEFT, {\n end: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: MARGIN,\n rotation: -90,\n textAnchor: 'end'\n },\n middle: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: height / 2 - MARGIN,\n rotation: -90,\n textAnchor: 'middle'\n },\n start: {\n x: ADJUSTMENT_FOR_TEXT_SIZE,\n y: height - MARGIN,\n rotation: -90,\n textAnchor: 'start'\n }\n }), _defineProperty(_ref, RIGHT, {\n end: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: MARGIN,\n rotation: -90,\n textAnchor: 'end'\n },\n middle: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: height / 2 - MARGIN,\n rotation: -90,\n textAnchor: 'middle'\n },\n start: {\n x: ADJUSTMENT_FOR_TEXT_SIZE * -0.5,\n y: height - MARGIN,\n rotation: -90,\n textAnchor: 'start'\n }\n }), _defineProperty(_ref, TOP, {\n start: {\n x: MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'start'\n },\n middle: {\n x: width / 2 - MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'middle'\n },\n end: {\n x: width - MARGIN,\n y: ADJUSTMENT_FOR_TEXT_SIZE,\n rotation: 0,\n textAnchor: 'end'\n }\n }), _defineProperty(_ref, BOTTOM, {\n start: {\n x: MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'start'\n },\n middle: {\n x: width / 2 - MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'middle'\n },\n end: {\n x: width - MARGIN,\n y: -MARGIN,\n rotation: 0,\n textAnchor: 'end'\n }\n }), _ref;\n};\n\nfunction AxisTitle(_ref2) {\n var orientation = _ref2.orientation,\n position = _ref2.position,\n width = _ref2.width,\n height = _ref2.height,\n style = _ref2.style,\n title = _ref2.title;\n var outerGroupTranslateX = orientation === LEFT ? width : 0;\n var outerGroupTranslateY = orientation === TOP ? height : 0;\n var outerGroupTransform = 'translate(' + outerGroupTranslateX + ', ' + outerGroupTranslateY + ')';\n var _transformation$orien = transformation(width, height)[orientation][position],\n x = _transformation$orien.x,\n y = _transformation$orien.y,\n rotation = _transformation$orien.rotation,\n textAnchor = _transformation$orien.textAnchor;\n var innerGroupTransform = 'translate(' + x + ', ' + y + ') rotate(' + rotation + ')';\n return React.createElement('g', {\n transform: outerGroupTransform,\n className: 'rv-xy-plot__axis__title'\n }, React.createElement('g', {\n style: _extends({\n textAnchor: textAnchor\n }, style),\n transform: innerGroupTransform\n }, React.createElement('text', {\n style: style\n }, title)));\n}\n\nAxisTitle.displayName = 'AxisTitle';\nAxisTitle.defaultProps = defaultProps;\nexport default AxisTitle;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { PureComponent } from 'react';\nimport Animation from '../../animation';\nimport { ORIENTATION, getTicksTotalFromSize } from '../../utils/axis-utils';\nimport { getAttributeScale } from '../../utils/scales-utils';\nimport AxisLine from './axis-line';\nimport AxisTicks from './axis-ticks';\nimport AxisTitle from './axis-title';\nvar defaultAnimatedProps = ['xRange', 'yRange', 'xDomain', 'yDomain', 'width', 'height', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'tickSize', 'tickTotal', 'tickSizeInner', 'tickSizeOuter'];\nvar LEFT = ORIENTATION.LEFT,\n RIGHT = ORIENTATION.RIGHT,\n TOP = ORIENTATION.TOP,\n BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n className: '',\n on0: false,\n style: {},\n tickSize: 6,\n tickPadding: 8,\n orientation: BOTTOM\n};\nvar predefinedClassName = 'rv-xy-plot__axis';\nvar VERTICAL_CLASS_NAME = 'rv-xy-plot__axis--vertical';\nvar HORIZONTAL_CLASS_NAME = 'rv-xy-plot__axis--horizontal';\n\nvar Axis = function (_PureComponent) {\n _inherits(Axis, _PureComponent);\n\n function Axis() {\n _classCallCheck(this, Axis);\n\n return _possibleConstructorReturn(this, (Axis.__proto__ || Object.getPrototypeOf(Axis)).apply(this, arguments));\n }\n\n _createClass(Axis, [{\n key: '_getDefaultAxisProps',\n\n /**\n * Define the default values depending on the data passed from the outside.\n * @returns {*} Object of default properties.\n * @private\n */\n value: function _getDefaultAxisProps() {\n var _props = this.props,\n innerWidth = _props.innerWidth,\n innerHeight = _props.innerHeight,\n marginTop = _props.marginTop,\n marginBottom = _props.marginBottom,\n marginLeft = _props.marginLeft,\n marginRight = _props.marginRight,\n orientation = _props.orientation;\n\n if (orientation === BOTTOM) {\n return {\n tickTotal: getTicksTotalFromSize(innerWidth),\n top: innerHeight + marginTop,\n left: marginLeft,\n width: innerWidth,\n height: marginBottom\n };\n } else if (orientation === TOP) {\n return {\n tickTotal: getTicksTotalFromSize(innerWidth),\n top: 0,\n left: marginLeft,\n width: innerWidth,\n height: marginTop\n };\n } else if (orientation === LEFT) {\n return {\n tickTotal: getTicksTotalFromSize(innerHeight),\n top: marginTop,\n left: 0,\n width: marginLeft,\n height: innerHeight\n };\n }\n\n return {\n tickTotal: getTicksTotalFromSize(innerHeight),\n top: marginTop,\n left: marginLeft + innerWidth,\n width: marginRight,\n height: innerHeight\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var animation = this.props.animation;\n\n if (animation) {\n var animatedProps = animation.nonAnimatedProps ? defaultAnimatedProps.filter(function (prop) {\n return animation.nonAnimatedProps.indexOf(prop) < 0;\n }) : defaultAnimatedProps;\n return React.createElement(Animation, _extends({}, this.props, {\n animatedProps: animatedProps\n }), React.createElement(Axis, _extends({}, this.props, {\n animation: null\n })));\n }\n\n var props = _extends({}, this._getDefaultAxisProps(), this.props);\n\n var attrAxis = props.attrAxis,\n className = props.className,\n height = props.height,\n hideLine = props.hideLine,\n hideTicks = props.hideTicks,\n left = props.left,\n marginTop = props.marginTop,\n on0 = props.on0,\n orientation = props.orientation,\n position = props.position,\n style = props.style,\n title = props.title,\n top = props.top,\n width = props.width;\n var isVertical = [LEFT, RIGHT].indexOf(orientation) > -1;\n var axisClassName = isVertical ? VERTICAL_CLASS_NAME : HORIZONTAL_CLASS_NAME;\n var leftPos = left;\n var topPos = top;\n\n if (on0) {\n var scale = getAttributeScale(props, attrAxis);\n\n if (isVertical) {\n leftPos = scale(0);\n } else {\n topPos = marginTop + scale(0);\n }\n }\n\n return React.createElement('g', {\n transform: 'translate(' + leftPos + ',' + topPos + ')',\n className: predefinedClassName + ' ' + axisClassName + ' ' + className,\n style: style\n }, !hideLine && React.createElement(AxisLine, {\n height: height,\n width: width,\n orientation: orientation,\n style: _extends({}, style, style.line)\n }), !hideTicks && React.createElement(AxisTicks, _extends({}, props, {\n style: _extends({}, style, style.ticks)\n })), title ? React.createElement(AxisTitle, {\n position: position,\n title: title,\n height: height,\n width: width,\n style: _extends({}, style, style.title),\n orientation: orientation\n }) : null);\n }\n }]);\n\n return Axis;\n}(PureComponent);\n\nAxis.displayName = 'Axis';\nAxis.defaultProps = defaultProps;\nAxis.requiresSVG = true;\nexport default Axis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nimport Axis from './axis';\nvar BOTTOM = ORIENTATION.BOTTOM;\nvar defaultProps = {\n orientation: BOTTOM,\n attr: 'x',\n attrAxis: 'y'\n};\n\nfunction XAxis(props) {\n return React.createElement(Axis, props);\n}\n\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = defaultProps;\nXAxis.requiresSVG = true;\nexport default XAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport { ORIENTATION } from '../../utils/axis-utils';\nimport Axis from './axis';\nvar LEFT = ORIENTATION.LEFT;\nvar defaultProps = {\n orientation: LEFT,\n attr: 'y',\n attrAxis: 'x'\n};\n\nfunction YAxis(props) {\n return React.createElement(Axis, props);\n}\n\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = defaultProps;\nYAxis.requiresSVG = true;\nexport default YAxis;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport { CONTINUOUS_COLOR_RANGE } from '../theme';\nvar defaultProps = {\n className: '',\n startColor: CONTINUOUS_COLOR_RANGE[0],\n endColor: CONTINUOUS_COLOR_RANGE[1]\n};\n\nfunction ContinuousColorLegend(_ref) {\n var startColor = _ref.startColor,\n midColor = _ref.midColor,\n endColor = _ref.endColor,\n startTitle = _ref.startTitle,\n midTitle = _ref.midTitle,\n endTitle = _ref.endTitle,\n height = _ref.height,\n width = _ref.width,\n className = _ref.className;\n var colors = [startColor];\n\n if (midColor) {\n colors.push(midColor);\n }\n\n colors.push(endColor);\n return React.createElement('div', {\n className: 'rv-continuous-color-legend ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('div', {\n className: 'rv-gradient',\n style: {\n background: 'linear-gradient(to right, ' + colors.join(',') + ')'\n }\n }), React.createElement('div', {\n className: 'rv-legend-titles'\n }, React.createElement('span', {\n className: 'rv-legend-titles__left'\n }, startTitle), React.createElement('span', {\n className: 'rv-legend-titles__right'\n }, endTitle), midTitle ? React.createElement('span', {\n className: 'rv-legend-titles__center'\n }, midTitle) : null));\n}\n\nContinuousColorLegend.displayName = 'ContinuousColorLegend';\nContinuousColorLegend.defaultProps = defaultProps;\nexport default ContinuousColorLegend;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nvar defaultProps = {\n circlesTotal: 10,\n className: '',\n endSize: 20,\n startSize: 2\n};\n\nfunction ContinuousSizeLegend(_ref) {\n var startTitle = _ref.startTitle,\n endTitle = _ref.endTitle,\n startSize = _ref.startSize,\n endSize = _ref.endSize,\n circlesTotal = _ref.circlesTotal,\n height = _ref.height,\n width = _ref.width,\n className = _ref.className;\n var circles = [];\n var step = (endSize - startSize) / (circlesTotal - 1);\n\n for (var i = 0; i < circlesTotal; i++) {\n var size = step * i + startSize;\n circles.push(React.createElement('div', {\n key: i,\n className: 'rv-bubble',\n style: {\n width: size,\n height: size,\n borderRadius: size / 2\n }\n })); // Add the separator in order to justify the content (otherwise the tags\n // will be stacked together without any margins around).\n\n circles.push(' ');\n }\n\n return React.createElement('div', {\n className: 'rv-continuous-size-legend ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('div', {\n className: 'rv-bubbles',\n style: {\n height: endSize\n }\n }, circles, React.createElement('div', {\n className: 'rv-spacer'\n })), React.createElement('div', {\n className: 'rv-legend-titles'\n }, React.createElement('span', {\n className: 'rv-legend-titles__left'\n }, startTitle), React.createElement('span', {\n className: 'rv-legend-titles__right'\n }, endTitle)));\n}\n\nContinuousSizeLegend.displayName = 'ContinuousSizeLegend';\nContinuousSizeLegend.defaultProps = defaultProps;\nexport default ContinuousSizeLegend;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nvar STROKE_STYLES = {\n dashed: '6, 2',\n solid: null\n};\n\nfunction DiscreteColorLegendItem(_ref) {\n var color = _ref.color,\n strokeDasharray = _ref.strokeDasharray,\n strokeStyle = _ref.strokeStyle,\n strokeWidth = _ref.strokeWidth,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n orientation = _ref.orientation,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n title = _ref.title;\n var className = 'rv-discrete-color-legend-item ' + orientation;\n\n if (disabled) {\n className += ' disabled';\n }\n\n if (onClick) {\n className += ' clickable';\n }\n\n var strokeDasharrayStyle = STROKE_STYLES[strokeStyle] || strokeDasharray;\n return React.createElement('div', {\n className: className,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, React.createElement('svg', {\n className: 'rv-discrete-color-legend-item__color',\n height: 2,\n width: 14\n }, React.createElement('path', {\n className: 'rv-discrete-color-legend-item__color__path',\n d: 'M 0, 1 L 14, 1',\n style: _extends({}, strokeWidth ? {\n strokeWidth: strokeWidth\n } : {}, strokeDasharrayStyle ? {\n strokeDasharray: strokeDasharrayStyle\n } : {}, {\n stroke: disabled ? null : color\n })\n })), React.createElement('span', {\n className: 'rv-discrete-color-legend-item__title'\n }, title));\n}\n\nDiscreteColorLegendItem.defaultProps = {\n disabled: false,\n strokeStyle: 'solid'\n};\nDiscreteColorLegendItem.displayName = 'DiscreteColorLegendItem';\nexport default DiscreteColorLegendItem;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport DiscreteColorLegendItem from './discrete-color-legend-item';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\n\nfunction DiscreteColorLegend(_ref) {\n var className = _ref.className,\n colors = _ref.colors,\n height = _ref.height,\n items = _ref.items,\n onItemClick = _ref.onItemClick,\n onItemMouseEnter = _ref.onItemMouseEnter,\n onItemMouseLeave = _ref.onItemMouseLeave,\n orientation = _ref.orientation,\n style = _ref.style,\n width = _ref.width;\n return React.createElement('div', {\n className: 'rv-discrete-color-legend ' + orientation + ' ' + className,\n style: _extends({\n width: width,\n height: height\n }, style)\n }, items.map(function (item, i) {\n return React.createElement(DiscreteColorLegendItem, {\n title: item.title ? item.title : item,\n color: item.color ? item.color : colors[i % colors.length],\n strokeDasharray: item.strokeDasharray,\n strokeStyle: item.strokeStyle,\n strokeWidth: item.strokeWidth,\n disabled: Boolean(item.disabled),\n orientation: orientation,\n key: i,\n onClick: onItemClick ? function (e) {\n return onItemClick(item, i, e);\n } : null,\n onMouseEnter: onItemMouseEnter ? function (e) {\n return onItemMouseEnter(item, i, e);\n } : null,\n onMouseLeave: onItemMouseEnter ? function (e) {\n return onItemMouseLeave(item, i, e);\n } : null\n });\n }));\n}\n\nDiscreteColorLegend.displayName = 'DiscreteColorLegendItem';\nDiscreteColorLegend.defaultProps = {\n className: '',\n colors: DISCRETE_COLOR_RANGE,\n orientation: 'vertical'\n};\nexport default DiscreteColorLegend;","// Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport React from 'react';\nimport DiscreteColorLegend from './discrete-color-legend';\nvar defaultProps = {\n className: '',\n searchText: '',\n searchFn: function searchFn(items, s) {\n return items.filter(function (item) {\n return String(item.title || item).toLowerCase().indexOf(s) !== -1;\n });\n }\n};\n\nfunction SearchableDiscreteColorLegend(props) {\n var className = props.className,\n colors = props.colors,\n height = props.height,\n items = props.items,\n onItemClick = props.onItemClick,\n onSearchChange = props.onSearchChange,\n orientation = props.orientation,\n searchFn = props.searchFn,\n searchPlaceholder = props.searchPlaceholder,\n searchText = props.searchText,\n width = props.width;\n var onChange = onSearchChange ? function (_ref) {\n var value = _ref.target.value;\n return onSearchChange(value);\n } : null;\n var filteredItems = searchFn(items, searchText);\n return React.createElement('div', {\n className: 'rv-search-wrapper ' + className,\n style: {\n width: width,\n height: height\n }\n }, React.createElement('form', {\n className: 'rv-search-wrapper__form'\n }, React.createElement('input', {\n type: 'search',\n placeholder: searchPlaceholder,\n className: 'rv-search-wrapper__form__input',\n value: searchText,\n onChange: onChange\n })), React.createElement('div', {\n className: 'rv-search-wrapper__contents'\n }, React.createElement(DiscreteColorLegend, {\n colors: colors,\n items: filteredItems,\n onItemClick: onItemClick,\n orientation: orientation\n })));\n}\n\nSearchableDiscreteColorLegend.defaultProps = defaultProps;\nSearchableDiscreteColorLegend.displayName = 'SearchableDiscreteColorLegend';\nexport default SearchableDiscreteColorLegend;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React, { Component } from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { AnimationPropType } from '../animation';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType, getInnerDimensions, DEFAULT_MARGINS } from '../utils/chart-utils';\nimport LineSeries from '../plot/series/line-series';\nimport LineMarkSeries from '../plot/series/line-mark-series';\nimport LabelSeries from '../plot/series/label-series';\nimport DecorativeAxis from '../plot/axis/decorative-axis';\nimport Highlight from '../plot/highlight';\nvar predefinedClassName = 'rv-parallel-coordinates-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n * @return {Array} the plotted axis components\n */\n\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n style = props.style,\n tickFormat = props.tickFormat;\n return domains.map(function (domain, index) {\n var sortedDomain = domain.domain;\n\n var domainTickFormat = function domainTickFormat(t) {\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\n\n return React.createElement(DecorativeAxis, {\n animation: animation,\n key: index + '-axis',\n axisStart: {\n x: domain.name,\n y: 0\n },\n axisEnd: {\n x: domain.name,\n y: 1\n },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\n\n\nfunction getLabels(props) {\n var domains = props.domains,\n style = props.style;\n return domains.map(function (domain, index) {\n return {\n x: domain.name,\n y: 1.1,\n label: domain.name,\n style: style\n };\n });\n}\n/**\n * Generate the actual lines to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.showMarks {Bool} whether or not to use the line mark series\n * @return {Array} the plotted axis components\n */\n\n\nfunction getLines(props) {\n var animation = props.animation,\n brushFilters = props.brushFilters,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n showMarks = props.showMarks;\n var scales = domains.reduce(function (acc, _ref) {\n var domain = _ref.domain,\n name = _ref.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {}); // const\n\n return data.map(function (row, rowIndex) {\n var withinFilteredRange = true;\n var mappedData = domains.map(function (domain, index) {\n var getValue = domain.getValue,\n name = domain.name; // watch out! Gotcha afoot\n // yVal after being scale is in [0, 1] range\n\n var yVal = scales[name](getValue ? getValue(row) : row[name]);\n var filter = brushFilters[name]; // filter value after being scale back from pixel space is also in [0, 1]\n\n if (filter && (yVal < filter.min || yVal > filter.max)) {\n withinFilteredRange = false;\n }\n\n return {\n x: name,\n y: yVal\n };\n });\n var selectedName = predefinedClassName + '-line';\n var unselectedName = selectedName + ' ' + predefinedClassName + '-line-unselected';\n var lineProps = {\n animation: animation,\n className: withinFilteredRange ? selectedName : unselectedName,\n key: rowIndex + '-polygon',\n data: mappedData,\n color: row.color || colorRange[rowIndex % colorRange.length],\n style: _extends({}, style.lines, row.style || {})\n };\n\n if (!withinFilteredRange) {\n lineProps.style = _extends({}, lineProps.style, style.deselectedLineStyle);\n }\n\n return showMarks ? React.createElement(LineMarkSeries, lineProps) : React.createElement(LineSeries, lineProps);\n });\n}\n\nvar ParallelCoordinates = function (_Component) {\n _inherits(ParallelCoordinates, _Component);\n\n function ParallelCoordinates() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ParallelCoordinates);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = ParallelCoordinates.__proto__ || Object.getPrototypeOf(ParallelCoordinates)).call.apply(_ref2, [this].concat(args))), _this), _this.state = {\n brushFilters: {}\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ParallelCoordinates, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var brushFilters = this.state.brushFilters;\n var _props = this.props,\n animation = _props.animation,\n brushing = _props.brushing,\n className = _props.className,\n children = _props.children,\n colorRange = _props.colorRange,\n data = _props.data,\n domains = _props.domains,\n height = _props.height,\n hideInnerMostValues = _props.hideInnerMostValues,\n margin = _props.margin,\n onMouseLeave = _props.onMouseLeave,\n onMouseEnter = _props.onMouseEnter,\n showMarks = _props.showMarks,\n style = _props.style,\n tickFormat = _props.tickFormat,\n width = _props.width;\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n style: style,\n tickFormat: tickFormat\n });\n var lines = getLines({\n animation: animation,\n brushFilters: brushFilters,\n colorRange: colorRange,\n domains: domains,\n data: data,\n showMarks: showMarks,\n style: style\n });\n var labelSeries = React.createElement(LabelSeries, {\n animation: true,\n key: className,\n className: predefinedClassName + '-label',\n data: getLabels({\n domains: domains,\n style: style.labels\n })\n });\n\n var _getInnerDimensions = getInnerDimensions(this.props, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginRight = _getInnerDimensions.marginRight;\n\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: margin,\n dontCheckIfEmpty: true,\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xType: 'ordinal',\n yDomain: [0, 1]\n }, children, axes.concat(lines).concat(labelSeries), brushing && domains.map(function (d) {\n var trigger = function trigger(row) {\n _this2.setState({\n brushFilters: _extends({}, brushFilters, _defineProperty({}, d.name, row ? {\n min: row.bottom,\n max: row.top\n } : null))\n });\n };\n\n return React.createElement(Highlight, {\n key: d.name,\n drag: true,\n highlightX: d.name,\n onBrushEnd: trigger,\n onDragEnd: trigger,\n highlightWidth: (width - marginLeft - marginRight) / domains.length,\n enableX: false\n });\n }));\n }\n }]);\n\n return ParallelCoordinates;\n}(Component);\n\nParallelCoordinates.displayName = 'ParallelCoordinates';\nParallelCoordinates.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n style: {\n axes: {\n line: {},\n ticks: {},\n text: {}\n },\n labels: {\n fontSize: 10,\n textAnchor: 'middle'\n },\n lines: {\n strokeWidth: 1,\n strokeOpacity: 1\n },\n deselectedLineStyle: {\n strokeOpacity: 0.1\n }\n },\n tickFormat: DEFAULT_FORMAT\n};\nexport default ParallelCoordinates;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { AnimationPropType } from '../animation';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType } from '../utils/chart-utils';\nimport MarkSeries from '../plot/series/mark-series';\nimport PolygonSeries from '../plot/series/polygon-series';\nimport LabelSeries from '../plot/series/label-series';\nimport DecorativeAxis from '../plot/axis/decorative-axis';\nvar predefinedClassName = 'rv-radar-chart';\nvar DEFAULT_FORMAT = format('.2r');\n/**\n * Generate axes for each of the domains\n * @param {Object} props\n - props.animation {Boolean}\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.style {object} style object for the whole chart\n - props.tickFormat {Function} formatting function for axes\n - props.startingAngle {number} the initial angle offset\n * @return {Array} the plotted axis components\n */\n\nfunction getAxes(props) {\n var animation = props.animation,\n domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style,\n tickFormat = props.tickFormat,\n hideInnerMostValues = props.hideInnerMostValues;\n return domains.map(function (domain, index) {\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n var sortedDomain = domain.domain;\n\n var domainTickFormat = function domainTickFormat(t) {\n if (hideInnerMostValues && t === sortedDomain[0]) {\n return '';\n }\n\n return domain.tickFormat ? domain.tickFormat(t) : tickFormat(t);\n };\n\n return React.createElement(DecorativeAxis, {\n animation: animation,\n key: index + '-axis',\n axisStart: {\n x: 0,\n y: 0\n },\n axisEnd: {\n x: getCoordinate(Math.cos(angle)),\n y: getCoordinate(Math.sin(angle))\n },\n axisDomain: sortedDomain,\n numberOfTicks: 5,\n tickValue: domainTickFormat,\n style: style.axes\n });\n });\n}\n/**\n * Generate x or y coordinate for axisEnd\n * @param {Number} axisEndPoint\n - epsilon is an arbitrarily chosen small number to approximate axisEndPoints\n - to true values resulting from trigonometry functions (sin, cos) on angles\n * @return {Number} the x or y coordinate accounting for exact trig values\n */\n\n\nfunction getCoordinate(axisEndPoint) {\n var epsilon = 10e-13;\n\n if (Math.abs(axisEndPoint) <= epsilon) {\n axisEndPoint = 0;\n } else if (axisEndPoint > 0) {\n if (Math.abs(axisEndPoint - 0.5) <= epsilon) {\n axisEndPoint = 0.5;\n }\n } else if (axisEndPoint < 0) {\n if (Math.abs(axisEndPoint + 0.5) <= epsilon) {\n axisEndPoint = -0.5;\n }\n }\n\n return axisEndPoint;\n}\n/**\n * Generate labels for the ends of the axes\n * @param {Object} props\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for just the labels\n * @return {Array} the prepped data for the labelSeries\n */\n\n\nfunction getLabels(props) {\n var domains = props.domains,\n startingAngle = props.startingAngle,\n style = props.style;\n return domains.map(function (_ref, index) {\n var name = _ref.name;\n var angle = index / domains.length * Math.PI * 2 + startingAngle;\n var radius = 1.2;\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n label: name,\n style: style\n };\n });\n}\n/**\n * Generate the actual polygons to be plotted\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n * @return {Array} the plotted axis components\n */\n\n\nfunction getPolygons(props) {\n var animation = props.animation,\n colorRange = props.colorRange,\n domains = props.domains,\n data = props.data,\n style = props.style,\n startingAngle = props.startingAngle,\n onSeriesMouseOver = props.onSeriesMouseOver,\n onSeriesMouseOut = props.onSeriesMouseOut;\n var scales = domains.reduce(function (acc, _ref2) {\n var domain = _ref2.domain,\n name = _ref2.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n return data.map(function (row, rowIndex) {\n var mappedData = domains.map(function (_ref3, index) {\n var name = _ref3.name,\n getValue = _ref3.getValue;\n var dataPoint = getValue ? getValue(row) : row[name]; // error handling if point doesn't exist\n\n var angle = index / domains.length * Math.PI * 2 + startingAngle; // dont let the radius become negative\n\n var radius = Math.max(scales[name](dataPoint), 0);\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n name: row.name\n };\n });\n return React.createElement(PolygonSeries, {\n animation: animation,\n className: predefinedClassName + '-polygon',\n key: rowIndex + '-polygon',\n data: mappedData,\n style: _extends({\n stroke: row.color || row.stroke || colorRange[rowIndex % colorRange.length],\n fill: row.color || row.fill || colorRange[rowIndex % colorRange.length]\n }, style.polygons),\n onSeriesMouseOver: onSeriesMouseOver,\n onSeriesMouseOut: onSeriesMouseOut\n });\n });\n}\n/**\n * Generate circles at the polygon points for Hover functionality\n * @param {Object} props\n - props.animation {Boolean}\n - props.data {Array} array of object specifying what values are to be plotted\n - props.domains {Array} array of object specifying the way each axis is to be plotted\n - props.startingAngle {number} the initial angle offset\n - props.style {object} style object for the whole chart\n - props.onValueMouseOver {function} function to call on mouse over a polygon point\n - props.onValueMouseOver {function} function to call when mouse leaves a polygon point\n * @return {Array} the plotted axis components\n */\n\n\nfunction getPolygonPoints(props) {\n var animation = props.animation,\n domains = props.domains,\n data = props.data,\n startingAngle = props.startingAngle,\n style = props.style,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut;\n\n if (!onValueMouseOver) {\n return;\n }\n\n var scales = domains.reduce(function (acc, _ref4) {\n var domain = _ref4.domain,\n name = _ref4.name;\n acc[name] = scaleLinear().domain(domain).range([0, 1]);\n return acc;\n }, {});\n return data.map(function (row, rowIndex) {\n var mappedData = domains.map(function (_ref5, index) {\n var name = _ref5.name,\n getValue = _ref5.getValue;\n var dataPoint = getValue ? getValue(row) : row[name]; // error handling if point doesn't exist\n\n var angle = index / domains.length * Math.PI * 2 + startingAngle; // dont let the radius become negative\n\n var radius = Math.max(scales[name](dataPoint), 0);\n return {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle),\n domain: name,\n value: dataPoint,\n dataName: row.name\n };\n });\n return React.createElement(MarkSeries, {\n animation: animation,\n className: predefinedClassName + '-polygonPoint',\n key: rowIndex + '-polygonPoint',\n data: mappedData,\n size: 10,\n style: _extends({}, style.polygons, {\n fill: 'transparent',\n stroke: 'transparent'\n }),\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut\n });\n });\n}\n\nfunction RadarChart(props) {\n var animation = props.animation,\n className = props.className,\n children = props.children,\n colorRange = props.colorRange,\n data = props.data,\n domains = props.domains,\n height = props.height,\n hideInnerMostValues = props.hideInnerMostValues,\n margin = props.margin,\n onMouseLeave = props.onMouseLeave,\n onMouseEnter = props.onMouseEnter,\n startingAngle = props.startingAngle,\n style = props.style,\n tickFormat = props.tickFormat,\n width = props.width,\n renderAxesOverPolygons = props.renderAxesOverPolygons,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut,\n onSeriesMouseOver = props.onSeriesMouseOver,\n onSeriesMouseOut = props.onSeriesMouseOut;\n var axes = getAxes({\n domains: domains,\n animation: animation,\n hideInnerMostValues: hideInnerMostValues,\n startingAngle: startingAngle,\n style: style,\n tickFormat: tickFormat\n });\n var polygons = getPolygons({\n animation: animation,\n colorRange: colorRange,\n domains: domains,\n data: data,\n startingAngle: startingAngle,\n style: style,\n onSeriesMouseOver: onSeriesMouseOver,\n onSeriesMouseOut: onSeriesMouseOut\n });\n var polygonPoints = getPolygonPoints({\n animation: animation,\n colorRange: colorRange,\n domains: domains,\n data: data,\n startingAngle: startingAngle,\n style: style,\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut\n });\n var labelSeries = React.createElement(LabelSeries, {\n animation: animation,\n key: className,\n className: predefinedClassName + '-label',\n data: getLabels({\n domains: domains,\n style: style.labels,\n startingAngle: startingAngle\n })\n });\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: margin,\n dontCheckIfEmpty: true,\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xDomain: [-1, 1],\n yDomain: [-1, 1]\n }, children, !renderAxesOverPolygons && axes.concat(polygons).concat(labelSeries).concat(polygonPoints), renderAxesOverPolygons && polygons.concat(labelSeries).concat(axes).concat(polygonPoints));\n}\n\nRadarChart.displayName = 'RadarChart';\nRadarChart.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n hideInnerMostValues: true,\n startingAngle: Math.PI / 2,\n style: {\n axes: {\n line: {},\n ticks: {},\n text: {}\n },\n labels: {\n fontSize: 10,\n textAnchor: 'middle'\n },\n polygons: {\n strokeWidth: 0.5,\n strokeOpacity: 1,\n fillOpacity: 0.1\n }\n },\n tickFormat: DEFAULT_FORMAT,\n renderAxesOverPolygons: false\n};\nexport default RadarChart;","import \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { pie as pieBuilder } from 'd3-shape';\nimport { AnimationPropType } from '../animation';\nimport ArcSeries from '../plot/series/arc-series';\nimport LabelSeries from '../plot/series/label-series';\nimport XYPlot from '../plot/xy-plot';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport { MarginPropType, getRadialLayoutMargin } from '../utils/chart-utils';\nimport { getRadialDomain } from '../utils/series-utils';\nvar predefinedClassName = 'rv-radial-chart';\nvar DEFAULT_RADIUS_MARGIN = 15;\n/**\n * Create the list of wedges to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n * @returns {Array} Array of nodes.\n */\n\nfunction getWedgesToRender(_ref) {\n var data = _ref.data,\n getAngle = _ref.getAngle;\n var pie = pieBuilder().sort(null).value(getAngle);\n var pieData = pie(data).reverse();\n return pieData.map(function (row, index) {\n return _extends({}, row.data, {\n angle0: row.startAngle,\n angle: row.endAngle,\n radius0: row.data.innerRadius || 0,\n radius: row.data.radius || 1,\n color: row.data.color || index\n });\n });\n}\n\nfunction generateLabels(mappedData, accessors) {\n var labelsRadiusMultiplier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1.1;\n var getLabel = accessors.getLabel,\n getSubLabel = accessors.getSubLabel;\n return mappedData.reduce(function (res, row) {\n var angle = row.angle,\n angle0 = row.angle0,\n radius = row.radius;\n var centeredAngle = (angle + angle0) / 2; // unfortunate, but true fact: d3 starts its radians at 12 oclock rather than 3\n // and move clockwise rather than counter clockwise. why why why!\n\n var updatedAngle = -1 * centeredAngle + Math.PI / 2;\n var newLabels = [];\n\n if (getLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getLabel(row)\n });\n }\n\n if (getSubLabel(row)) {\n newLabels.push({\n angle: updatedAngle,\n radius: radius * labelsRadiusMultiplier,\n label: getSubLabel(row),\n style: {\n fontSize: 10\n },\n yOffset: 12\n });\n }\n\n return res.concat(newLabels);\n }, []); // could add force direction here to make sure the labels dont overlap\n}\n/**\n * Get the max radius so the chart can extend to the margin.\n * @param {Number} width - container width\n * @param {Number} height - container height\n * @return {Number} radius\n */\n\n\nfunction getMaxRadius(width, height) {\n return Math.min(width, height) / 2 - DEFAULT_RADIUS_MARGIN;\n}\n\nfunction RadialChart(props) {\n var animation = props.animation,\n className = props.className,\n children = props.children,\n colorType = props.colorType,\n data = props.data,\n getAngle = props.getAngle,\n getLabel = props.getLabel,\n getSubLabel = props.getSubLabel,\n height = props.height,\n hideRootNode = props.hideRootNode,\n innerRadius = props.innerRadius,\n labelsAboveChildren = props.labelsAboveChildren,\n labelsRadiusMultiplier = props.labelsRadiusMultiplier,\n labelsStyle = props.labelsStyle,\n margin = props.margin,\n onMouseLeave = props.onMouseLeave,\n onMouseEnter = props.onMouseEnter,\n radius = props.radius,\n showLabels = props.showLabels,\n style = props.style,\n width = props.width;\n var mappedData = getWedgesToRender({\n data: data,\n height: height,\n hideRootNode: hideRootNode,\n width: width,\n getAngle: getAngle\n });\n var radialDomain = getRadialDomain(mappedData);\n\n var arcProps = _extends({\n colorType: colorType\n }, props, {\n animation: animation,\n radiusDomain: [0, radialDomain],\n data: mappedData,\n radiusNoFallBack: true,\n style: style,\n arcClassName: 'rv-radial-chart__series--pie__slice'\n });\n\n if (radius) {\n arcProps.radiusDomain = [0, 1];\n arcProps.radiusRange = [innerRadius || 0, radius];\n arcProps.radiusType = 'linear';\n }\n\n var maxRadius = radius ? radius : getMaxRadius(width, height);\n var defaultMargin = getRadialLayoutMargin(width, height, maxRadius);\n var labels = generateLabels(mappedData, {\n getLabel: getLabel,\n getSubLabel: getSubLabel\n }, labelsRadiusMultiplier);\n return React.createElement(XYPlot, {\n height: height,\n width: width,\n margin: _extends({}, margin, defaultMargin),\n className: className + ' ' + predefinedClassName,\n onMouseLeave: onMouseLeave,\n onMouseEnter: onMouseEnter,\n xDomain: [-radialDomain, radialDomain],\n yDomain: [-radialDomain, radialDomain]\n }, React.createElement(ArcSeries, _extends({}, arcProps, {\n getAngle: function getAngle(d) {\n return d.angle;\n }\n })), showLabels && !labelsAboveChildren && React.createElement(LabelSeries, {\n data: labels,\n style: labelsStyle\n }), children, showLabels && labelsAboveChildren && React.createElement(LabelSeries, {\n data: labels,\n style: labelsStyle\n }));\n}\n\nRadialChart.displayName = 'RadialChart';\nRadialChart.defaultProps = {\n className: '',\n colorType: 'category',\n colorRange: DISCRETE_COLOR_RANGE,\n padAngle: 0,\n getAngle: function getAngle(d) {\n return d.angle;\n },\n getAngle0: function getAngle0(d) {\n return d.angle0;\n },\n getRadius: function getRadius(d) {\n return d.radius;\n },\n getRadius0: function getRadius0(d) {\n return d.radius0;\n },\n getLabel: function getLabel(d) {\n return d.label;\n },\n getSubLabel: function getSubLabel(d) {\n return d.subLabel;\n }\n};\nexport default RadialChart;","import { min } from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\nexport function right(node, n) {\n return n - 1 - node.height;\n}\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\nexport function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1 : 0;\n}","export default function constant(x) {\n return function () {\n return x;\n };\n}","import \"core-js/modules/es.array.sort.js\";\nimport { ascending, min, sum } from \"d3-array\";\nimport { map, nest } from \"d3-collection\";\nimport { justify } from \"./align\";\nimport constant from \"./constant\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\n\nfunction weightedSource(link) {\n return nodeCenter(link.source) * link.value;\n}\n\nfunction weightedTarget(link) {\n return nodeCenter(link.target) * link.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n // extent\n dx = 24,\n // nodeWidth\n py = 8,\n // nodePadding\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32;\n\n function sankey() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n };\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeBreadths(graph, iterations);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function (graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankey) : py;\n };\n\n sankey.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function (_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n }; // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n\n\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function (node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = map(graph.nodes, id);\n graph.links.forEach(function (link, i) {\n link.index = i;\n var source = link.source,\n target = link.target;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n } // Compute the value (size) of each node by summing the associated links.\n\n\n function computeNodeValues(graph) {\n graph.nodes.forEach(function (node) {\n node.value = Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value));\n });\n } // Iteratively assign the depth (x-position) for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n\n\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.depth = x;\n node.sourceLinks.forEach(function (link) {\n if (next.indexOf(link.target) < 0) {\n next.push(link.target);\n }\n });\n });\n }\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.height = x;\n node.targetLinks.forEach(function (link) {\n if (next.indexOf(link.source) < 0) {\n next.push(link.source);\n }\n });\n });\n }\n\n var kx = (x1 - x0 - dx) / (x - 1);\n graph.nodes.forEach(function (node) {\n node.x1 = (node.x0 = x0 + Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x)))) * kx) + dx;\n });\n }\n\n function computeNodeBreadths(graph) {\n var columns = nest().key(function (d) {\n return d.x0;\n }).sortKeys(ascending).entries(graph.nodes).map(function (d) {\n return d.values;\n }); //\n\n initializeNodeBreadth();\n resolveCollisions();\n\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\n\n function initializeNodeBreadth() {\n var ky = min(columns, function (nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / sum(nodes, value);\n });\n columns.forEach(function (nodes) {\n nodes.forEach(function (node, i) {\n node.y1 = (node.y0 = i) + node.value * ky;\n });\n });\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n }\n\n function relaxLeftToRight(alpha) {\n columns.forEach(function (nodes) {\n nodes.forEach(function (node) {\n if (node.targetLinks.length) {\n var dy = (sum(node.targetLinks, weightedSource) / sum(node.targetLinks, value) - nodeCenter(node)) * alpha;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n\n function relaxRightToLeft(alpha) {\n columns.slice().reverse().forEach(function (nodes) {\n nodes.forEach(function (node) {\n if (node.sourceLinks.length) {\n var dy = (sum(node.sourceLinks, weightedTarget) / sum(node.sourceLinks, value) - nodeCenter(node)) * alpha;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i; // Push any overlapping nodes down.\n\n nodes.sort(ascendingBreadth);\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n if (dy > 0) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n } // If the bottommost node goes outside the bounds, push it back up.\n\n\n dy = y - py - y1;\n\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy; // Push any overlapping nodes back up.\n\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function (node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function (node) {\n var y0 = node.y0,\n y1 = y0;\n node.sourceLinks.forEach(function (link) {\n link.y0 = y0 + link.width / 2, y0 += link.width;\n });\n node.targetLinks.forEach(function (link) {\n link.y1 = y1 + link.width / 2, y1 += link.width;\n });\n });\n }\n\n return sankey;\n}","import { linkHorizontal } from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function () {\n return linkHorizontal().source(horizontalSource).target(horizontalTarget);\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport Animation from '../animation';\nimport { ANIMATED_SERIES_PROPS } from '../utils/series-utils';\nvar DEFAULT_LINK_COLOR = DISCRETE_COLOR_RANGE[1];\nvar DEFAULT_LINK_OPACITY = 0.7;\n\nfunction SankeyLink(props) {\n var animation = props.animation,\n data = props.data,\n node = props.node,\n opacity = props.opacity,\n color = props.color,\n strokeWidth = props.strokeWidth,\n style = props.style,\n onLinkClick = props.onLinkClick,\n onLinkMouseOver = props.onLinkMouseOver,\n onLinkMouseOut = props.onLinkMouseOut;\n\n if (animation) {\n return React.createElement(Animation, _extends({}, props, {\n animatedProps: ANIMATED_SERIES_PROPS\n }), React.createElement(SankeyLink, _extends({}, props, {\n animation: null\n })));\n }\n\n return React.createElement('path', _extends({\n d: data\n }, style, {\n className: 'rv-sankey__link',\n opacity: Number.isFinite(opacity) ? opacity : DEFAULT_LINK_OPACITY,\n stroke: color || DEFAULT_LINK_COLOR,\n onClick: function onClick(e) {\n return onLinkClick(node, e);\n },\n onMouseOver: function onMouseOver(e) {\n return onLinkMouseOver(node, e);\n },\n onMouseOut: function onMouseOut(e) {\n return onLinkMouseOut(node, e);\n },\n strokeWidth: strokeWidth,\n fill: 'none'\n }));\n}\n\nSankeyLink.displayName = 'SankeyLink';\nSankeyLink.requiresSVG = true;\nexport default SankeyLink;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nimport React from 'react';\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from 'd3-sankey';\nimport XYPlot from '../plot/xy-plot';\nimport { MarginPropType, getInnerDimensions } from '../utils/chart-utils';\nimport VerticalRectSeries from '../plot/series/vertical-rect-series';\nimport LabelSeries from '../plot/series/label-series';\nimport Voronoi from '../plot/voronoi';\nimport { DISCRETE_COLOR_RANGE } from '../theme';\nimport SankeyLink from './sankey-link';\n\nvar NOOP = function NOOP(f) {\n return f;\n};\n\nvar ALIGNMENTS = {\n justify: sankeyJustify,\n center: sankeyCenter,\n left: sankeyLeft,\n right: sankeyRight\n};\nvar DEFAULT_MARGINS = {\n top: 20,\n left: 20,\n right: 20,\n bottom: 20\n};\n\nfunction Sankey(props) {\n var align = props.align,\n animation = props.animation,\n children = props.children,\n className = props.className,\n hasVoronoi = props.hasVoronoi,\n height = props.height,\n hideLabels = props.hideLabels,\n labelRotation = props.labelRotation,\n layout = props.layout,\n links = props.links,\n linkOpacity = props.linkOpacity,\n margin = props.margin,\n nodePadding = props.nodePadding,\n nodes = props.nodes,\n nodeWidth = props.nodeWidth,\n onValueClick = props.onValueClick,\n onValueMouseOver = props.onValueMouseOver,\n onValueMouseOut = props.onValueMouseOut,\n onLinkClick = props.onLinkClick,\n onLinkMouseOver = props.onLinkMouseOver,\n onLinkMouseOut = props.onLinkMouseOut,\n style = props.style,\n width = props.width;\n var nodesCopy = [].concat(_toConsumableArray(new Array(nodes.length))).map(function (e, i) {\n return _extends({}, nodes[i]);\n });\n var linksCopy = [].concat(_toConsumableArray(new Array(links.length))).map(function (e, i) {\n return _extends({}, links[i]);\n });\n\n var _getInnerDimensions = getInnerDimensions({\n margin: margin,\n height: height,\n width: width\n }, DEFAULT_MARGINS),\n marginLeft = _getInnerDimensions.marginLeft,\n marginTop = _getInnerDimensions.marginTop,\n marginRight = _getInnerDimensions.marginRight,\n marginBottom = _getInnerDimensions.marginBottom;\n\n var sankeyInstance = sankey().extent([[marginLeft, marginTop], [width - marginRight, height - marginBottom - marginTop]]).nodeWidth(nodeWidth).nodePadding(nodePadding).nodes(nodesCopy).links(linksCopy).nodeAlign(ALIGNMENTS[align]).iterations(layout);\n sankeyInstance(nodesCopy);\n var nWidth = sankeyInstance.nodeWidth();\n var path = sankeyLinkHorizontal();\n return React.createElement(XYPlot, _extends({}, props, {\n yType: 'literal',\n className: 'rv-sankey ' + className\n }), linksCopy.map(function (link, i) {\n return React.createElement(SankeyLink, {\n style: style.links,\n data: path(link),\n opacity: link.opacity || linkOpacity,\n color: link.color,\n onLinkClick: onLinkClick,\n onLinkMouseOver: onLinkMouseOver,\n onLinkMouseOut: onLinkMouseOut,\n strokeWidth: Math.max(link.width, 1),\n node: link,\n nWidth: nWidth,\n key: 'link-' + i\n });\n }), React.createElement(VerticalRectSeries, {\n animation: animation,\n className: className + ' rv-sankey__node',\n data: nodesCopy.map(function (node) {\n return _extends({}, node, {\n y: node.y1 - marginTop,\n y0: node.y0 - marginTop,\n x: node.x1,\n x0: node.x0,\n color: node.color || DISCRETE_COLOR_RANGE[0],\n sourceLinks: null,\n targetLinks: null\n });\n }),\n style: style.rects,\n onValueClick: onValueClick,\n onValueMouseOver: onValueMouseOver,\n onValueMouseOut: onValueMouseOut,\n colorType: 'literal'\n }), !hideLabels && React.createElement(LabelSeries, {\n animation: animation,\n className: className,\n rotation: labelRotation,\n labelAnchorY: 'text-before-edge',\n data: nodesCopy.map(function (node, i) {\n return _extends({\n x: node.x0 + (node.x0 < width / 2 ? nWidth + 10 : -10),\n y: (node.y0 + node.y1) / 2 - marginTop,\n label: node.name,\n style: _extends({\n textAnchor: node.x0 < width / 2 ? 'start' : 'end',\n dy: '-.5em'\n }, style.labels)\n }, nodes[i]);\n })\n }), hasVoronoi && React.createElement(Voronoi, {\n className: 'rv-sankey__voronoi',\n extent: [[-marginLeft, -marginTop], [width + marginRight, height + marginBottom]],\n nodes: nodesCopy,\n onClick: onValueClick,\n onHover: onValueMouseOver,\n onBlur: onValueMouseOut,\n x: function x(d) {\n return d.x0 + (d.x1 - d.x0) / 2;\n },\n y: function y(d) {\n return d.y0 + (d.y1 - d.y0) / 2;\n }\n }), children);\n}\n\nSankey.defaultProps = {\n align: 'justify',\n className: '',\n hasVoronoi: false,\n hideLabels: false,\n labelRotation: 0,\n layout: 50,\n margin: DEFAULT_MARGINS,\n nodePadding: 10,\n nodeWidth: 10,\n onValueMouseOver: NOOP,\n onValueClick: NOOP,\n onValueMouseOut: NOOP,\n onLinkClick: NOOP,\n onLinkMouseOver: NOOP,\n onLinkMouseOut: NOOP,\n style: {\n links: {},\n rects: {},\n labels: {}\n }\n};\nexport default Sankey;","export default function (node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\nexport default function () {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 = root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function (node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function (x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function (x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;else while (--i >= 0) {\n sum += children[i].value;\n }\n node.value = sum;\n}\n\nexport default function () {\n return this.eachAfter(count);\n}","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n\n do {\n node.height = height;\n } while ((node = node.parent) && node.height < ++height);\n}\nexport function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n}\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};","export default function (callback) {\n var node = this,\n current,\n next = [node],\n children,\n i,\n n;\n\n do {\n current = next.reverse(), next = [];\n\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n next = [],\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n\n while (node = next.pop()) {\n callback(node);\n }\n\n return this;\n}","export default function (callback) {\n var node = this,\n nodes = [node],\n children,\n i;\n\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n\n return this;\n}","export default function (value) {\n return this.eachAfter(function (node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n\n while (--i >= 0) {\n sum += children[i].value;\n }\n\n node.value = sum;\n });\n}","import \"core-js/modules/es.array.sort.js\";\nexport default function (compare) {\n return this.eachBefore(function (node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}","export default function (end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n\n var k = nodes.length;\n\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n\n return c;\n}","export default function () {\n var node = this,\n nodes = [node];\n\n while (node = node.parent) {\n nodes.push(node);\n }\n\n return nodes;\n}","export default function () {\n var nodes = [];\n this.each(function (node) {\n nodes.push(node);\n });\n return nodes;\n}","export default function () {\n var leaves = [];\n this.eachBefore(function (node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}","export default function () {\n var root = this,\n links = [];\n root.each(function (node) {\n if (node !== root) {\n // Don’t include the root’s parent, if any.\n links.push({\n source: node.parent,\n target: node\n });\n }\n });\n return links;\n}","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { hierarchy, partition } from 'd3-hierarchy';\nimport { scaleLinear, scaleSqrt } from 'd3-scale';\nimport { AnimationPropType } from '../animation';\nimport LabelSeries from '../plot/series/label-series';\nimport ArcSeries from '../plot/series/arc-series';\nimport XYPlot from '../plot/xy-plot';\nimport { getRadialDomain } from '../utils/series-utils';\nimport { getRadialLayoutMargin } from '../utils/chart-utils';\nvar predefinedClassName = 'rv-sunburst';\nvar LISTENERS_TO_OVERWRITE = ['onValueMouseOver', 'onValueMouseOut', 'onValueClick', 'onValueRightClick', 'onSeriesMouseOver', 'onSeriesMouseOut', 'onSeriesClick', 'onSeriesRightClick'];\n/**\n * Create the list of nodes to render.\n * @param {Object} props\n props.data {Object} - tree structured data (each node has a name anc an array of children)\n props.height {number} - the height of the graphic to be rendered\n props.hideRootNode {boolean} - whether or not to hide the root node\n props.width {number} - the width of the graphic to be rendered\n props.getSize {function} - accessor for the size\n * @returns {Array} Array of nodes.\n */\n\nfunction getNodesToRender(_ref) {\n var data = _ref.data,\n height = _ref.height,\n hideRootNode = _ref.hideRootNode,\n width = _ref.width,\n getSize = _ref.getSize;\n var partitionFunction = partition();\n var structuredInput = hierarchy(data).sum(getSize);\n var radius = Math.min(width, height) / 2 - 10;\n var x = scaleLinear().range([0, 2 * Math.PI]);\n var y = scaleSqrt().range([0, radius]);\n return partitionFunction(structuredInput).descendants().reduce(function (res, cell, index) {\n if (hideRootNode && index === 0) {\n return res;\n }\n\n return res.concat([_extends({\n angle0: Math.max(0, Math.min(2 * Math.PI, x(cell.x0))),\n angle: Math.max(0, Math.min(2 * Math.PI, x(cell.x1))),\n radius0: Math.max(0, y(cell.y0)),\n radius: Math.max(0, y(cell.y1)),\n depth: cell.depth,\n parent: cell.parent\n }, cell.data)]);\n }, []);\n}\n/**\n * Convert arc nodes into label rows.\n * Important to use mappedData rather than regular data, bc it is already unrolled\n * @param {Array} mappedData - Array of nodes.\n * @param {Object} accessors - object of accessors\n * @returns {Array} array of node for rendering as labels\n */\n\n\nfunction buildLabels(mappedData, accessors) {\n var getAngle = accessors.getAngle,\n getAngle0 = accessors.getAngle0,\n getLabel = accessors.getLabel,\n getRadius0 = accessors.getRadius0;\n return mappedData.filter(getLabel).map(function (row) {\n var truedAngle = -1 * getAngle(row) + Math.PI / 2;\n var truedAngle0 = -1 * getAngle0(row) + Math.PI / 2;\n var angle = (truedAngle0 + truedAngle) / 2;\n var rotateLabels = !row.dontRotateLabel;\n var rotAngle = -angle / (2 * Math.PI) * 360;\n return _extends({}, row, {\n children: null,\n angle: null,\n radius: null,\n x: getRadius0(row) * Math.cos(angle),\n y: getRadius0(row) * Math.sin(angle),\n style: _extends({\n textAnchor: rotAngle > 90 ? 'end' : 'start'\n }, row.labelStyle),\n rotation: rotateLabels ? rotAngle > 90 ? rotAngle + 180 : rotAngle === 90 ? 90 : rotAngle : null\n });\n });\n}\n\nvar NOOP = function NOOP() {};\n\nfunction Sunburst(props) {\n var getAngle = props.getAngle,\n getAngle0 = props.getAngle0,\n animation = props.animation,\n className = props.className,\n children = props.children,\n data = props.data,\n height = props.height,\n hideRootNode = props.hideRootNode,\n getLabel = props.getLabel,\n width = props.width,\n getSize = props.getSize,\n colorType = props.colorType;\n var mappedData = getNodesToRender({\n data: data,\n height: height,\n hideRootNode: hideRootNode,\n width: width,\n getSize: getSize\n });\n var radialDomain = getRadialDomain(mappedData);\n var margin = getRadialLayoutMargin(width, height, radialDomain);\n var labelData = buildLabels(mappedData, {\n getAngle: getAngle,\n getAngle0: getAngle0,\n getLabel: getLabel,\n getRadius0: function getRadius0(d) {\n return d.radius0;\n }\n });\n\n var hofBuilder = function hofBuilder(f) {\n return function (e, i) {\n return f ? f(mappedData[e.index], i) : NOOP;\n };\n };\n\n return React.createElement(XYPlot, {\n height: height,\n hasTreeStructure: true,\n width: width,\n className: predefinedClassName + ' ' + className,\n margin: margin,\n xDomain: [-radialDomain, radialDomain],\n yDomain: [-radialDomain, radialDomain]\n }, React.createElement(ArcSeries, _extends({\n colorType: colorType\n }, props, {\n animation: animation,\n radiusDomain: [0, radialDomain],\n // need to present a stripped down version for interpolation\n data: animation ? mappedData.map(function (row, index) {\n return _extends({}, row, {\n parent: null,\n children: null,\n index: index\n });\n }) : mappedData,\n _data: animation ? mappedData : null,\n arcClassName: predefinedClassName + '__series--radial__arc'\n }, LISTENERS_TO_OVERWRITE.reduce(function (acc, propName) {\n var prop = props[propName];\n acc[propName] = animation ? hofBuilder(prop) : prop;\n return acc;\n }, {}))), labelData.length > 0 && React.createElement(LabelSeries, {\n data: labelData,\n getLabel: getLabel\n }), children);\n}\n\nSunburst.displayName = 'Sunburst';\nSunburst.defaultProps = {\n getAngle: function getAngle(d) {\n return d.angle;\n },\n getAngle0: function getAngle0(d) {\n return d.angle0;\n },\n className: '',\n colorType: 'literal',\n getColor: function getColor(d) {\n return d.color;\n },\n hideRootNode: false,\n getLabel: function getLabel(d) {\n return d.label;\n },\n getSize: function getSize(d) {\n return d.size;\n },\n padAngle: 0\n};\nexport default Sunburst;","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nexport var phi = (1 + Math.sqrt(5)) / 2;\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx,\n dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0; // Find the next non-empty node.\n\n do {\n sumValue = nodes[i1++].value;\n } while (!sumValue && i1 < n);\n\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue); // Keep adding nodes while the aspect ratio maintains or improves.\n\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n\n minRatio = newRatio;\n } // Position and record the row orientation.\n\n\n rows.push(row = {\n value: sumValue,\n dice: dx < dy,\n children: nodes.slice(i0, i1)\n });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\nexport default (function custom(ratio) {\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport { phi, squarifyRatio } from \"./squarify.js\";\nexport default (function custom(ratio) {\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n\n for (i = row.value = 0, n = nodes.length; i < n; ++i) {\n row.value += nodes[i].value;\n }\n\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function (x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);","export var slice = Array.prototype.slice;\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}","import { shuffle, slice } from \"../array.js\";\nexport default function (circles) {\n var i = 0,\n n = (circles = shuffle(slice.call(circles))).length,\n B = [],\n p,\n e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n if (enclosesWeakAll(p, B)) return [p]; // If we get here then B must have at least one element.\n\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i]) && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n } // If we get here then B must have at least two elements.\n\n\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p) && enclosesNot(encloseBasis2(B[i], p), B[j]) && enclosesNot(encloseBasis2(B[j], p), B[i]) && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n } // If we get here then something is very wrong.\n\n\n throw new Error();\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1:\n return encloseBasis1(B[0]);\n\n case 2:\n return encloseBasis2(B[0], B[1]);\n\n case 3:\n return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x,\n y1 = a.y,\n r1 = a.r,\n x2 = b.x,\n y2 = b.y,\n r2 = b.r,\n x21 = x2 - x1,\n y21 = y2 - y1,\n r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x,\n y1 = a.y,\n r1 = a.r,\n x2 = b.x,\n y2 = b.y,\n r2 = b.r,\n x3 = c.x,\n y3 = c.y,\n r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x,\n x,\n a2,\n dy = b.y - a.y,\n y,\n b2,\n d2 = dx * dx + dy * dy;\n\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6,\n dx = b.x - a.x,\n dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n var a, b, c, n, aa, ca, i, j, k, sj, sk; // Place the first circle.\n\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r; // Place the second circle.\n\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r; // Place the third circle.\n\n place(b, a, c = circles[2]); // Initialize the front-chain using the first three circles a, b and c.\n\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a; // Attempt to place each remaining circle…\n\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c); // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next); // Success! Insert the new circle c between a and b.\n\n\n c.previous = a, c.next = b, a.next = b.previous = b = c; // Compute the new closest circle pair to the centroid.\n\n aa = score(a);\n\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n\n b = a.next;\n } // Compute the enclosing circle of the front chain.\n\n\n a = [b._], c = b;\n\n while ((c = c.next) !== b) {\n a.push(c._);\n }\n\n c = enclose(a); // Translate the circles to put the enclosing circle around the origin.\n\n for (i = 0; i < n; ++i) {\n a = circles[i], a.x -= c.x, a.y -= c.y;\n }\n\n return c.r;\n}\nexport default function (circles) {\n packEnclose(circles);\n return circles;\n}","export function optional(f) {\n return f == null ? null : required(f);\n}\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error();\n return f;\n}","export function constantZero() {\n return 0;\n}\nexport default function (x) {\n return function () {\n return x;\n };\n}","import { packEnclose } from \"./siblings.js\";\nimport { optional } from \"../accessors.js\";\nimport constant, { constantZero } from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function () {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n\n if (radius) {\n root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren(constantZero, 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n\n return root;\n }\n\n pack.radius = function (x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function (x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function (node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function (node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n if (r) for (i = 0; i < n; ++i) {\n children[i].r += r;\n }\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) {\n children[i].r -= r;\n }\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function (node) {\n var parent = node.parent;\n node.r *= k;\n\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport { required } from \"../accessors.js\";\nimport constant, { constantZero } from \"../constant.js\";\nexport default function () {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 = root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function (x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function (x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function (x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function (x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function (x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function (x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function (x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function (x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function (x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function (x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport Animation, { AnimationPropType } from '../animation';\nimport { getFontColorFromBackground } from '../utils/scales-utils';\nvar ANIMATED_PROPS = ['colorRange', 'colorDomain', 'color', 'opacityRange', 'opacityDomain', 'opacity', 'x0', 'x1', 'y0', 'y1', 'r'];\n\nfunction TreemapLeaf(props) {\n var animation = props.animation,\n getLabel = props.getLabel,\n mode = props.mode,\n node = props.node,\n onLeafClick = props.onLeafClick,\n onLeafMouseOver = props.onLeafMouseOver,\n onLeafMouseOut = props.onLeafMouseOut,\n r = props.r,\n scales = props.scales,\n x0 = props.x0,\n x1 = props.x1,\n y0 = props.y0,\n y1 = props.y1,\n style = props.style;\n\n if (animation) {\n return React.createElement(Animation, _extends({}, props, {\n animatedProps: ANIMATED_PROPS\n }), React.createElement(TreemapLeaf, _extends({}, props, {\n animation: null\n })));\n }\n\n var useCirclePacking = mode === 'circlePack';\n var background = scales.color(node);\n var opacity = scales.opacity(node);\n var color = getFontColorFromBackground(background);\n var data = node.data;\n var title = getLabel(data);\n\n var leafStyle = _extends({\n top: useCirclePacking ? y0 - r : y0,\n left: useCirclePacking ? x0 - r : x0,\n width: useCirclePacking ? r * 2 : x1 - x0,\n height: useCirclePacking ? r * 2 : y1 - y0,\n background: background,\n opacity: opacity,\n color: color\n }, style, node.data.style);\n\n return React.createElement('div', {\n className: 'rv-treemap__leaf ' + (useCirclePacking ? 'rv-treemap__leaf--circle' : ''),\n onMouseEnter: function onMouseEnter(event) {\n return onLeafMouseOver(node, event);\n },\n onMouseLeave: function onMouseLeave(event) {\n return onLeafMouseOut(node, event);\n },\n onClick: function onClick(event) {\n return onLeafClick(node, event);\n },\n style: leafStyle\n }, React.createElement('div', {\n className: 'rv-treemap__leaf__content'\n }, title));\n}\n\nexport default TreemapLeaf;","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}; // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport TreemapLeaf from './treemap-leaf';\n\nfunction TreemapDOM(props) {\n var animation = props.animation,\n className = props.className,\n height = props.height,\n hideRootNode = props.hideRootNode,\n getLabel = props.getLabel,\n mode = props.mode,\n nodes = props.nodes,\n width = props.width,\n scales = props.scales,\n style = props.style;\n var useCirclePacking = mode === 'circlePack';\n return React.createElement('div', {\n className: 'rv-treemap ' + (useCirclePacking ? 'rv-treemap-circle-packed' : '') + ' ' + className,\n style: {\n height: height,\n width: width\n }\n }, nodes.map(function (node, index) {\n // throw out the rootest node\n if (hideRootNode && !index) {\n return null;\n }\n\n var nodeProps = _extends({\n animation: animation,\n node: node,\n getLabel: getLabel\n }, props, {\n x0: useCirclePacking ? node.x : node.x0,\n x1: useCirclePacking ? node.x : node.x1,\n y0: useCirclePacking ? node.y : node.y0,\n y1: useCirclePacking ? node.y : node.y1,\n r: useCirclePacking ? node.r : 1,\n scales: scales,\n style: style\n });\n\n return React.createElement(TreemapLeaf, _extends({}, nodeProps, {\n key: 'leaf-' + index\n }));\n }));\n}\n\nTreemapDOM.displayName = 'TreemapDOM';\nexport default TreemapDOM;","import \"core-js/modules/es.array.reduce.js\";\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport XYPlot from '../plot/xy-plot';\nimport PolygonSeries from '../plot/series/polygon-series';\nimport MarkSeries from '../plot/series/mark-series';\nimport LabelSeries from '../plot/series/label-series';\nvar MARGIN_ADJUST = 1.2;\n\nvar TreemapSVG = function (_React$Component) {\n _inherits(TreemapSVG, _React$Component);\n\n function TreemapSVG() {\n _classCallCheck(this, TreemapSVG);\n\n return _possibleConstructorReturn(this, (TreemapSVG.__proto__ || Object.getPrototypeOf(TreemapSVG)).apply(this, arguments));\n }\n\n _createClass(TreemapSVG, [{\n key: 'getCircularNodes',\n value: function getCircularNodes() {\n var _props = this.props,\n animation = _props.animation,\n hideRootNode = _props.hideRootNode,\n nodes = _props.nodes,\n onLeafMouseOver = _props.onLeafMouseOver,\n onLeafMouseOut = _props.onLeafMouseOut,\n onLeafClick = _props.onLeafClick,\n scales = _props.scales,\n style = _props.style;\n\n var _nodes$reduce = nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\n\n var x = node.x,\n y = node.y,\n r = node.r;\n return {\n maxY: Math.max(y + r, acc.maxY),\n minY: Math.min(y - r, acc.minY),\n maxX: Math.max(x + MARGIN_ADJUST * r, acc.maxX),\n minX: Math.min(x - MARGIN_ADJUST * r, acc.minX),\n rows: acc.rows.concat([{\n x: x,\n y: y,\n size: r,\n color: scales.color(node)\n }])\n };\n }, {\n rows: [],\n maxY: -Infinity,\n minY: Infinity,\n maxX: -Infinity,\n minX: Infinity\n }),\n rows = _nodes$reduce.rows,\n minY = _nodes$reduce.minY,\n maxY = _nodes$reduce.maxY,\n minX = _nodes$reduce.minX,\n maxX = _nodes$reduce.maxX;\n\n return {\n updatedNodes: React.createElement(MarkSeries, {\n animation: animation,\n className: 'rv-treemap__leaf rv-treemap__leaf--circle',\n onSeriesMouseEnter: onLeafMouseOver,\n onSeriesMouseLeave: onLeafMouseOut,\n onSeriesClick: onLeafClick,\n data: rows,\n colorType: 'literal',\n getColor: function getColor(d) {\n return d.color;\n },\n sizeType: 'literal',\n getSize: function getSize(d) {\n return d.size;\n },\n style: style\n }),\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX\n };\n }\n }, {\n key: 'getNonCircularNodes',\n value: function getNonCircularNodes() {\n var _props2 = this.props,\n animation = _props2.animation,\n hideRootNode = _props2.hideRootNode,\n nodes = _props2.nodes,\n onLeafMouseOver = _props2.onLeafMouseOver,\n onLeafMouseOut = _props2.onLeafMouseOut,\n onLeafClick = _props2.onLeafClick,\n scales = _props2.scales,\n style = _props2.style;\n var color = scales.color;\n return nodes.reduce(function (acc, node, index) {\n if (!index && hideRootNode) {\n return acc;\n }\n\n var x0 = node.x0,\n x1 = node.x1,\n y1 = node.y1,\n y0 = node.y0;\n var x = x0;\n var y = y0;\n var nodeHeight = y1 - y0;\n var nodeWidth = x1 - x0;\n acc.maxY = Math.max(y + nodeHeight, acc.maxY);\n acc.minY = Math.min(y, acc.minY);\n acc.maxX = Math.max(x + nodeWidth, acc.maxX);\n acc.minX = Math.min(x, acc.minX);\n var data = [{\n x: x,\n y: y\n }, {\n x: x,\n y: y + nodeHeight\n }, {\n x: x + nodeWidth,\n y: y + nodeHeight\n }, {\n x: x + nodeWidth,\n y: y\n }];\n acc.updatedNodes = acc.updatedNodes.concat([React.createElement(PolygonSeries, {\n animation: animation,\n className: 'rv-treemap__leaf',\n key: index,\n color: color(node),\n type: 'literal',\n onSeriesMouseEnter: onLeafMouseOver,\n onSeriesMouseLeave: onLeafMouseOut,\n onSeriesClick: onLeafClick,\n data: data,\n style: _extends({}, style, node.style)\n })]);\n return acc;\n }, {\n updatedNodes: [],\n maxY: -Infinity,\n minY: Infinity,\n maxX: -Infinity,\n minX: Infinity\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n className = _props3.className,\n height = _props3.height,\n mode = _props3.mode,\n nodes = _props3.nodes,\n width = _props3.width;\n var useCirclePacking = mode === 'circlePack';\n\n var _ref = useCirclePacking ? this.getCircularNodes() : this.getNonCircularNodes(),\n minY = _ref.minY,\n maxY = _ref.maxY,\n minX = _ref.minX,\n maxX = _ref.maxX,\n updatedNodes = _ref.updatedNodes;\n\n var labels = nodes.reduce(function (acc, node) {\n if (!node.data.title) {\n return acc;\n }\n\n return acc.concat(_extends({}, node.data, {\n x: node.x0 || node.x,\n y: node.y0 || node.y,\n label: '' + node.data.title\n }));\n }, []);\n return React.createElement(XYPlot, _extends({\n className: 'rv-treemap ' + (useCirclePacking ? 'rv-treemap-circle-packed' : '') + ' ' + className,\n width: width,\n height: height,\n yDomain: [maxY, minY],\n xDomain: [minX, maxX],\n colorType: 'literal',\n hasTreeStructure: true\n }, this.props), updatedNodes, React.createElement(LabelSeries, {\n data: labels\n }));\n }\n }]);\n\n return TreemapSVG;\n}(React.Component);\n\nTreemapSVG.displayName = 'TreemapSVG';\nexport default TreemapSVG;","import \"core-js/modules/es.array.sort.js\";\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport { hierarchy, pack, partition, treemapSquarify, treemapResquarify, treemapSlice, treemapDice, treemapSliceDice, treemapBinary, treemap } from 'd3-hierarchy';\nimport { CONTINUOUS_COLOR_RANGE, DEFAULT_COLOR, DEFAULT_OPACITY, OPACITY_TYPE } from '../theme';\nimport { AnimationPropType } from '../animation';\nimport { getAttributeFunctor, getMissingScaleProps } from '../utils/scales-utils';\nimport { MarginPropType, getInnerDimensions } from '../utils/chart-utils';\nimport TreemapDOM from './treemap-dom';\nimport TreemapSVG from './treemap-svg';\nvar TREEMAP_TILE_MODES = {\n squarify: treemapSquarify,\n resquarify: treemapResquarify,\n slice: treemapSlice,\n dice: treemapDice,\n slicedice: treemapSliceDice,\n binary: treemapBinary\n};\n\nvar NOOP = function NOOP(d) {\n return d;\n};\n\nvar ATTRIBUTES = ['opacity', 'color'];\nvar DEFAULT_MARGINS = {\n left: 40,\n right: 10,\n top: 10,\n bottom: 40\n};\n/**\n * Get the map of scale functions from the given props.\n * @param {Object} props Props for the component.\n * @returns {Object} Map of scale functions.\n * @private\n */\n\nfunction _getScaleFns(props) {\n var data = props.data;\n var allData = data.children || []; // Adding _allData property to the object to reuse the existing\n // getAttributeFunctor function.\n\n var compatibleProps = _extends({}, props, getMissingScaleProps(props, allData, ATTRIBUTES), {\n _allData: allData\n });\n\n return {\n opacity: getAttributeFunctor(compatibleProps, 'opacity'),\n color: getAttributeFunctor(compatibleProps, 'color')\n };\n}\n\nvar Treemap = function (_React$Component) {\n _inherits(Treemap, _React$Component);\n\n function Treemap(props) {\n _classCallCheck(this, Treemap);\n\n var _this = _possibleConstructorReturn(this, (Treemap.__proto__ || Object.getPrototypeOf(Treemap)).call(this, props));\n\n _this.state = _extends({\n scales: _getScaleFns(props)\n }, getInnerDimensions(props, props.margin));\n return _this;\n }\n\n _createClass(Treemap, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props) {\n this.setState(_extends({\n scales: _getScaleFns(props)\n }, getInnerDimensions(props, props.margin)));\n }\n /**\n * Create the list of nodes to render.\n * @returns {Array} Array of nodes.\n * @private\n */\n\n }, {\n key: '_getNodesToRender',\n value: function _getNodesToRender() {\n var _state = this.state,\n innerWidth = _state.innerWidth,\n innerHeight = _state.innerHeight;\n var _props = this.props,\n data = _props.data,\n mode = _props.mode,\n padding = _props.padding,\n sortFunction = _props.sortFunction,\n getSize = _props.getSize;\n\n if (!data) {\n return [];\n }\n\n if (mode === 'partition' || mode === 'partition-pivot') {\n var partitionFunction = partition().size(mode === 'partition-pivot' ? [innerHeight, innerWidth] : [innerWidth, innerHeight]).padding(padding);\n\n var _structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n\n var mappedNodes = partitionFunction(_structuredInput).descendants();\n\n if (mode === 'partition-pivot') {\n return mappedNodes.map(function (node) {\n return _extends({}, node, {\n x0: node.y0,\n x1: node.y1,\n y0: node.x0,\n y1: node.x1\n });\n });\n }\n\n return mappedNodes;\n }\n\n if (mode === 'circlePack') {\n var packingFunction = pack().size([innerWidth, innerHeight]).padding(padding);\n\n var _structuredInput2 = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n\n return packingFunction(_structuredInput2).descendants();\n }\n\n var tileFn = TREEMAP_TILE_MODES[mode];\n var treemapingFunction = treemap(tileFn).tile(tileFn).size([innerWidth, innerHeight]).padding(padding);\n var structuredInput = hierarchy(data).sum(getSize).sort(function (a, b) {\n return sortFunction(a, b, getSize);\n });\n return treemapingFunction(structuredInput).descendants();\n }\n }, {\n key: 'render',\n value: function render() {\n var renderMode = this.props.renderMode;\n var scales = this.state.scales;\n\n var nodes = this._getNodesToRender();\n\n var TreemapElement = renderMode === 'SVG' ? TreemapSVG : TreemapDOM;\n return React.createElement(TreemapElement, _extends({}, this.props, {\n nodes: nodes,\n scales: scales\n }));\n }\n }]);\n\n return Treemap;\n}(React.Component);\n\nTreemap.displayName = 'Treemap';\nTreemap.defaultProps = {\n className: '',\n colorRange: CONTINUOUS_COLOR_RANGE,\n _colorValue: DEFAULT_COLOR,\n data: {\n children: []\n },\n hideRootNode: false,\n margin: DEFAULT_MARGINS,\n mode: 'squarify',\n onLeafClick: NOOP,\n onLeafMouseOver: NOOP,\n onLeafMouseOut: NOOP,\n opacityType: OPACITY_TYPE,\n _opacityValue: DEFAULT_OPACITY,\n padding: 1,\n sortFunction: function sortFunction(a, b, accessor) {\n if (!accessor) {\n return 0;\n }\n\n return accessor(a) - accessor(b);\n },\n getSize: function getSize(d) {\n return d.size;\n },\n getColor: function getColor(d) {\n return d.color;\n },\n getLabel: function getLabel(d) {\n return d.title;\n }\n};\nexport default Treemap;","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\nexport default function (parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}","export default function (parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i,\n n = nodes.length,\n sum,\n sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = value / 2 + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;else hi = mid;\n }\n\n if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i + 1 < k) --k;\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if (x1 - x0 > y1 - y0) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Copyright (c) 2016 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\nimport React from 'react';\nimport window from 'global/window';\nimport XYPlot from './plot/xy-plot';\nimport { getDOMNode } from './utils/react-utils';\nvar CONTAINER_REF = 'container'; // As a performance enhancement, we want to only listen once\n\nvar resizeSubscribers = [];\nvar DEBOUNCE_DURATION = 100;\nvar timeoutId = null;\n/**\n * Calls each subscriber, debounced to the\n */\n\nfunction debounceEmitResize() {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(emitResize, DEBOUNCE_DURATION);\n}\n/**\n * Calls each subscriber once syncronously.\n */\n\n\nfunction emitResize() {\n resizeSubscribers.forEach(function (cb) {\n return cb();\n });\n}\n/**\n * Add the given callback to the list of subscribers to be caled when the\n * window resizes. Returns a function that, when called, removes the given\n * callback from the list of subscribers. This function is also resposible for\n * adding and removing the resize listener on `window`.\n *\n * @param {Function} cb - Subscriber callback function\n * @returns {Function} Unsubscribe function\n */\n\n\nfunction subscribeToDebouncedResize(cb) {\n resizeSubscribers.push(cb); // if we go from zero to one Flexible components instances, add the listener\n\n if (resizeSubscribers.length === 1) {\n window.addEventListener('resize', debounceEmitResize);\n }\n\n return function unsubscribe() {\n removeSubscriber(cb); // if we have no Flexible components, remove the listener\n\n if (resizeSubscribers.length === 0) {\n window.clearTimeout(timeoutId);\n window.removeEventListener('resize', debounceEmitResize);\n }\n };\n}\n/**\n * Helper for removing the given callback from the list of subscribers.\n *\n * @param {Function} cb - Subscriber callback function\n */\n\n\nfunction removeSubscriber(cb) {\n var index = resizeSubscribers.indexOf(cb);\n\n if (index > -1) {\n resizeSubscribers.splice(index, 1);\n }\n}\n/**\n * Helper for getting a display name for the child component\n * @param {*} Component React class for the child component.\n * @returns {String} The child components name\n */\n\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n/**\n * Add the ability to stretch the visualization on window resize.\n * @param {*} Component React class for the child component.\n * @returns {*} Flexible component.\n */\n\n\nfunction makeFlexible(Component, isWidthFlexible, isHeightFlexible) {\n var ResultClass = function (_React$Component) {\n _inherits(ResultClass, _React$Component);\n\n _createClass(ResultClass, null, [{\n key: 'propTypes',\n get: function get() {\n var _Component$propTypes = Component.propTypes,\n height = _Component$propTypes.height,\n width = _Component$propTypes.width,\n otherPropTypes = _objectWithoutProperties(_Component$propTypes, ['height', 'width']); // eslint-disable-line no-unused-vars\n\n\n return otherPropTypes;\n }\n }]);\n\n function ResultClass(props) {\n _classCallCheck(this, ResultClass);\n\n var _this = _possibleConstructorReturn(this, (ResultClass.__proto__ || Object.getPrototypeOf(ResultClass)).call(this, props));\n\n _this._onResize = function () {\n var containerElement = getDOMNode(_this[CONTAINER_REF]);\n var offsetHeight = containerElement.offsetHeight,\n offsetWidth = containerElement.offsetWidth;\n var newHeight = _this.state.height === offsetHeight ? {} : {\n height: offsetHeight\n };\n var newWidth = _this.state.width === offsetWidth ? {} : {\n width: offsetWidth\n };\n\n _this.setState(_extends({}, newHeight, newWidth));\n };\n\n _this.state = {\n height: 0,\n width: 0\n };\n return _this;\n }\n /**\n * Get the width of the container and assign the width.\n * @private\n */\n\n\n _createClass(ResultClass, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._onResize();\n\n this.cancelSubscription = subscribeToDebouncedResize(this._onResize);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n this._onResize();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.cancelSubscription();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n var props = _extends({}, this.props, {\n animation: height === 0 && width === 0 ? null : this.props.animation\n });\n\n var updatedDimensions = _extends({}, isHeightFlexible ? {\n height: height\n } : {}, isWidthFlexible ? {\n width: width\n } : {});\n\n return React.createElement('div', {\n ref: function ref(_ref) {\n return _this2[CONTAINER_REF] = _ref;\n },\n style: {\n width: '100%',\n height: '100%'\n }\n }, React.createElement(Component, _extends({}, updatedDimensions, props)));\n }\n }]);\n\n return ResultClass;\n }(React.Component);\n\n ResultClass.displayName = 'Flexible' + getDisplayName(Component);\n return ResultClass;\n}\n\nexport function makeHeightFlexible(component) {\n return makeFlexible(component, false, true);\n}\nexport function makeVisFlexible(component) {\n return makeFlexible(component, true, true);\n}\nexport function makeWidthFlexible(component) {\n return makeFlexible(component, true, false);\n}\nexport var FlexibleWidthXYPlot = makeWidthFlexible(XYPlot);\nexport var FlexibleHeightXYPlot = makeHeightFlexible(XYPlot);\nexport var FlexibleXYPlot = makeVisFlexible(XYPlot);","import React, {Component} from 'react';\nimport {FlexibleXYPlot,\n FlexibleWidthXYPlot,\n FlexibleHeightXYPlot, LineSeries, VerticalGridLines,HorizontalGridLines,XAxis, YAxis,VerticalBarSeries,HorizontalBarSeries, Hint, DiscreteColorLegend, Crosshair, RadialChart, LabelSeries} from 'react-vis';\nimport _ from \"lodash\"\nimport ReactMarkdown from \"react-markdown\"\n\n\nclass Graph extends Component {\n constructor(props) {\n super(props);\n this.state = {\n crosshairValues: [],\n crosshairItems: [],\n value: false,\n barvalue:false\n };\n }\n GetCrosshairItems(){\n let Items =[]\n let i = 0\n for (let items of this.props.data){\n Items.push({title: items.title, item: items.Data[i].y})\n i++\n }\n\n }\n\n componentDidMount(){\n \n }\n\n _onMouseLeave = () => {\n this.setState({crosshairValues: []});\n };\n _onNearestX = (value, {index}) => {\nlet Crossdata = this.props.data.Data.map(d => d.Data[index])\nlet CrostitleData = []\nthis.props.data.Data.map((document, index) => (\n CrostitleData.push({title: document.title, value: Crossdata[index].y})\n))\n\n this.setState({crosshairItems: CrostitleData});\n this.setState({crosshairValues: this.props.data.Data.map(d => d.Data[index])});\n\n};\n\n\n\nrender() {\n\nswitch(this.props.data.Type){\ncase \"Bar_line\":\ncase \"Bar\":\ncase \"Line\":\n\n// let GraphData\n\n\nfor (let data of this.props.data.Data){\n // if(typeof data.Json_data !== undefined){\n // data.Data = Object.keys(data.Json_data)\n // }\n if(data.Json_data !== null){\n // console.log(\"json\", data.Json_data)\n if (data.Json_data !== undefined){\n //console.log(\"jsonData\",data.Json_data[0].Data)\n data.Data = data.Json_data[0].Data\n }\n }\n\n}\n\n// return(

test

)\nreturn (\n
\n
{this.props.data.title}
\n \n \n \n \n {this.props.data.Data[0].Data.length> 15 ? ( {\n if ((i + 1) % Math.round(this.props.data.Data[0].Data.length/10) === 0) {\n\n return t.split(',')[0];\n } else {\n return;\n }\n }}/>)\n :()\n }\n\n \n\n {this.props.data.Data.map((document, index) => (\n\n document.Type === \"bar\" ? (\n \n\n\n ):(\n \n\n \n )\n\n\n ))}\n ({value: this.state.crosshairValues[0].x})}\n itemsFormat={(d) => this.state.crosshairItems}\n\n />\n\n\n \n d.title)} colors={this.props.data.Data.map(d => d.Color)} orientation=\"horizontal\"/>\n
\n
\n)\n\n\n\n break;\n case \"Horizontal_bar\":\n\n//console.log(this.props.data.Data)\n let swappedArray =[]\n let swappedLabel =[]\n\n let barHeight = 300/((this.props.data.Data.length*this.props.data.Data[0].Data.length)+this.props.data.Data.length)\n\n\n let offset = 0\n let i = 0\nfor(let item of this.props.data.Data) {\n let swappedData = []\n if(i === 0){\n offset = -barHeight/this.props.data.Data.length\n }else{\n offset = barHeight/this.props.data.Data.length\n }\n\n for (let swap of item.Data){\n swappedData.push({y:swap.x, x:swap.y,label:swap.y})\n // swappedLabel.push({y:swap.x, x:swap.y,label:Math.round( swap.y * 10) / 10,yOffset:offset,xOffset:3})\n swappedLabel.push({y:swap.x, x:swap.y,label:Math.round( swap.y * 10) / 10,yOffset:0,xOffset:3})\n\n\n\n }\n i++\n swappedArray.push(swappedData)\n\n}\n\n\nlet range = _.range(0, _.maxBy(swappedLabel, 'x').x).length\nconst {barvalue} = this.state;\n\n\n\n\n//console.log(swappedArray)\n// swappedArray = [[{y: 5, x: 10}, {y: 10, x: 5}, {y: 20, x: 15}],[{y: 5, x: 12}, {y: 10, x: 2}, {y: 20, x: 11}]]\n return (\n
\n
{this.props.data.title}
\n \n\n \n \n {range > 1000 ? ( {\n if ((i + 1) % 5 === 0) {\n return t;\n } else {\n return;\n }\n }}/>)\n :()\n }\n \n\n {this.props.data.Data.map((document, index) => (\n\n\n \n\n \n ))}\n\n\n\n \n d.title)} colors={this.props.data.Data.map(d => d.Color)} orientation=\"horizontal\"/>\n
\n
\n )\n\n\n\n break;\n case \"Pie\":\n case \"Radial\":\nconst {value} = this.state;\nlet Data = []\n\nif(this.props.data.Data[0].pie_data === null || this.props.data.Data[0].pie_data === undefined){\n for(let slice of this.props.data.Data){\n Data.push({angle:slice.angle,color:slice.color,name:slice.Label,sub:slice.sublabel})\n }\n\n}else{\n\n \n this.props.data.Data.filter(a=>{\n if(a.pie_data){\n a.pie_data.forEach(b=>{\n Data.push({angle:b.angle,color:b.color,name:b.Label,sub:b.sublabel})\n })\n }\n })\n}\n\n\n let inner = 0\n let outer = 140\nif(this.props.data.Type === \"Radial\"){\n inner = 100\n outer = 140\n}\n\n//console.log(outer)\n\n //console.log(Data)\n return (\n
\n
{this.props.data.title}
\n d.name}\n data={Data}\n labelsRadiusMultiplier={1.4}\n labelsStyle={{fontSize: 16, fill: '#222'}}\n showLabels={false}\n style={{stroke: '#fff', strokeWidth: 2}}\n onValueMouseOver={v => this.setState({value: v})}\n onSeriesMouseOut={v => this.setState({value: false})}\n width={300}\n height={300}\n padAngle={0.04}\n >\n\n {value !== false &&
\n

{value.name}

\n

{value.sub}

\n
}\n\n\n\n d.name)} colors={Data.map(d => d.color)} orientation=\"horizontal\"/>\n
\n\n
\n )\n\n\n\n break;\n\n default:\n\nreturn(<>)\n}\n\n\n\n }\n\n}\nexport default Graph;\n","import React from 'react';\n\n\n\n\n\nconst CTA = ({data,...props}) => {\n\n // {data.map((document, index) => (\n\n\n return(\n
\n
\n {data.title !== null &&\n
{data.title}
\n }\n
\n {data.link_object.map((document, index) => (\n
\n {\n document.download !== null ? \n \n \n\n :\n \n\n }\n
\n ))\n }\n \n
\n
\n
\n \n )\n \n }\n \n\n\n\nexport default CTA;\n","import React from 'react';\n\nimport ReactMarkdown from \"react-markdown\"\nimport StrapiImage from \"../components/StrapiImage.js\"\nimport SectionGrid from \"./sectiongrid.js\"\nimport BackgroundImage from 'gatsby-background-image'\nimport AccordianSection from './accordiansection.js'\nimport ColumnSection from './columnsection.js'\nimport {returnImage} from '../actions/utils.js'\nimport AudioPlayer from 'react-h5-audio-player';\nimport 'react-h5-audio-player/lib/styles.css';\nimport Graph from \"../components/graph.js\"\nimport Video from \"./WistiaEmbed.js\"\nimport CTA from \"./cta.js\"\nimport \"../css/article_image.css\"\n\n\n\n\nconst ArticleContent = props => {\n if(props.data.Content !== null){\n\n\n if(props.data.Type === \"pullout\"){\n return(
)\n }else if(props.data.Type === \"emphasis\"){\n return(
)\n }else if(props.data.Type === \"quote\"){\n return(\n
\n
\n \n
\n
\n
\n \n
\n
\n )\n }\n else{\n return()\n }\n\n\n\n }else if(props.data.Image !== null){\n return(\n
\n
\n \n
{props.data.caption}
\n
\n
\n )\n }else if(props.data.graph !== null){\n\n return()\n\n }else if(props.data.wistia_id !== null){\n return(